@@ -7,8 +7,10 @@ function(setup_example_target target_name)
77 target_include_directories (${target_name} PRIVATE ${PROJECT_SOURCE_DIR } )
88endfunction ()
99
10+ set (EXAMPLES_EXEC_LIST "adaptiveprecision-blockjacobi;custom-logger;ginkgo-overhead;ginkgo-ranges;ilu-preconditioned-solver;ir-ilu-preconditioned-solver;inverse-iteration;iterative-refinement;mixed-precision-ir;nine-pt-stencil-solver;poisson-solver;preconditioned-solver;simple-solver;three-pt-stencil-solver;" )
11+
12+ set (EXAMPLES_LIST "${EXAMPLES_EXEC_LIST} ;custom-matrix-format;custom-stopping-criterion;minimal-cuda-solver;papi-logging;performance-debugging;preconditioner-export;simple-solver-logging" )
1013
11- set (EXAMPLES_LIST "custom-logger;custom-matrix-format;custom-stopping-criterion;adaptiveprecision-blockjacobi;ginkgo-overhead;ginkgo-ranges;ilu-preconditioned-solver;ir-ilu-preconditioned-solver;inverse-iteration;iterative-refinement;minimal-cuda-solver;mixed-precision-ir;nine-pt-stencil-solver;papi-logging;performance-debugging;poisson-solver;preconditioned-solver;preconditioner-export;simple-solver;simple-solver-logging;three-pt-stencil-solver;" )
1214if (GINKGO_BUILD_EXTLIB_EXAMPLE)
1315 set (EXAMPLES_LIST "${EXAMPLES_LIST} ;external-lib-interfacing" )
1416endif ()
@@ -24,4 +26,39 @@ if(GINKGO_RUN_EXAMPLES)
2426 COMMAND ${CMAKE_CURRENT_BINARY_DIR } /${example}/${example} > ${CMAKE_CURRENT_BINARY_DIR } /${example}/${example}.out
2527 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR } /${example} )
2628 endforeach ()
29+ foreach (example ${EXAMPLES_LIST} )
30+ file (WRITE ${CMAKE_CURRENT_BINARY_DIR } /${example}/diff-command "#!/bin/bash
31+ diff <(sed -n '7,$p' ${CMAKE_CURRENT_BINARY_DIR } /${example} /${example} .out | sed -E 's/([0-9]+.)//g') <(sed -n '6,$p' ${CMAKE_SOURCE_DIR } /examples/${example} /doc/results.dox | head -n -4 | sed -E 's/([0-9]+.)//g')" )
32+ add_custom_target ("diff-${example} "
33+ COMMAND chmod +x ${CMAKE_CURRENT_BINARY_DIR } /${example}/diff-command && ${CMAKE_CURRENT_BINARY_DIR } /${example}/diff-command
34+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR } /${example} )
35+ endforeach ()
36+ file (WRITE ${CMAKE_CURRENT_BINARY_DIR } /run_all_examples.sh
37+ "NUM_EXAMPLES=$(wc -l < example-targets.txt)\n "
38+ "for i in $(seq 1 $NUM_EXAMPLES)\n "
39+ "do\n "
40+ " target_name=$(head -n $i example-targets.txt | tail -1)\n "
41+ " ex_target=run-\$\{ target_name\}\n "
42+ " cmake --build ${CMAKE_BINARY_DIR } --target $ex_target\n "
43+ "done\n " )
44+ add_custom_target ("run_all_examples"
45+ COMMAND chmod +x ${CMAKE_CURRENT_BINARY_DIR } /run_all_examples.sh && ${CMAKE_CURRENT_BINARY_DIR } /run_all_examples.sh
46+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR } )
47+ file (WRITE ${CMAKE_CURRENT_BINARY_DIR } /validate_all_examples.sh
48+ "NUM_EXAMPLES=$(wc -l < example-targets.txt)\n "
49+ "for i in $(seq 1 $NUM_EXAMPLES)\n "
50+ "do\n "
51+ " target_name=$(head -n $i example-targets.txt | tail -1)\n "
52+ " ex_target=diff-\$\{ target_name\}\n "
53+ " cmake --build ${CMAKE_BINARY_DIR } --target $ex_target\n "
54+ "done\n " )
55+ add_custom_target ("validate_all_examples"
56+ COMMAND chmod +x ${CMAKE_CURRENT_BINARY_DIR } /validate_all_examples.sh && ${CMAKE_CURRENT_BINARY_DIR } /validate_all_examples.sh
57+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR } )
2758endif ()
59+
60+ set (OUT_FILE "${CMAKE_BINARY_DIR } /examples/example-targets.txt" )
61+ file (WRITE ${OUT_FILE} "" )
62+ foreach (example ${EXAMPLES_EXEC_LIST} )
63+ file (APPEND ${OUT_FILE} "${example} \n " )
64+ endforeach ()
0 commit comments