
function(ADD_EXAMPLE NAME SOURCE)
    add_executable(${NAME} ${SOURCE})
    target_link_libraries(${NAME} flux-internal)
    if(${${NAME}_SKIP_TEST})
      #pass
    else()
      add_test(NAME ${NAME} COMMAND ${NAME} ${${NAME}_ARGS})
    endif()
endfunction()

add_example(example-config-parser config_parser.cpp)
add_example(example-calendar calendar.cpp)
add_example(example-merge-intervals merge_intervals.cpp)
add_example(example-histogram histogram.cpp)
set(example-word-count_SKIP_TEST ON)
add_example(example-word-count word_count.cpp)
add_example(example-prime-numbers prime_numbers.cpp)
add_example(example-shortest-path shortest_path.cpp)
add_example(example-moving-average moving_average.cpp)

add_example(example-docs-adjacent docs/adjacent.cpp)
add_example(example-docs-adjacent-filter docs/adjacent_filter.cpp)
add_example(example-docs-all docs/all.cpp)
add_example(example-docs-any docs/any.cpp)
add_example(example-docs-compare docs/compare.cpp)
add_example(example-docs-contains docs/contains.cpp)
add_example(example-docs-count docs/count.cpp)
add_example(example-docs-cursors docs/cursors.cpp)
add_example(example-docs-cycle docs/cycle.cpp)
add_example(example-docs-drop docs/drop.cpp)
add_example(example-docs-ends-with docs/ends_with.cpp)
add_example(example-docs-find-max docs/find_max.cpp)
add_example(example-docs-find-min docs/find_min.cpp)
add_example(example-docs-find-minmax docs/find_minmax.cpp)
add_example(example-docs-mask docs/mask.cpp)
add_example(example-docs-prescan docs/prescan.cpp)
add_example(example-docs-read-only docs/read_only.cpp)
add_example(example-docs-repeat docs/repeat.cpp)
add_example(example-docs-scan docs/scan.cpp)
add_example(example-docs-set-difference docs/set_difference.cpp)
add_example(example-docs-set-intersection docs/set_intersection.cpp)
add_example(example-docs-set-symmetric-difference docs/set_symmetric_difference.cpp)
add_example(example-docs-set-union docs/set_union.cpp)
add_example(example-docs-scan-first docs/scan_first.cpp)
add_example(example-docs-split docs/split.cpp)
add_example(example-docs-starts-with docs/starts_with.cpp)
add_example(example-docs-unfold docs/unfold.cpp)

add_example(example-top10-rain-water top10/01_trapping_rain_water.cpp)
add_example(example-top10-mco top10/02_max_consecutive_ones.cpp)
add_example(example-top10-lcis top10/03_longest_continuous_increasing_subsequence.cpp)
add_example(example-top10-kadanes top10/04_maximum_subarray_sum.cpp)
add_example(example-top10-sushi top10/05_sushi_for_two.cpp)
add_example(example-top10-max-gap top10/06_max_gap.cpp)
add_example(example-top10-max-gap-count top10/07_max_gap_count.cpp)
add_example(example-top10-tco top10/08_three_consecutive_odds.cpp)
add_example(example-top10-skyline top10/09_skyline.cpp)
add_example(example-top10-ocean-view top10/10_ocean_view.cpp)

