include_guard() include(GetAllTargets) # get the list of applications (aka binaries in bin/) # function(jpp_get_list_of_applications apps) get_all_targets(OUTVAR targets DIRECTORY ${PROJECT_SOURCE_DIR} SORTED) set(bins) foreach(target ${targets}) get_property(target_type TARGET ${target} PROPERTY TYPE) if(${target_type} STREQUAL "EXECUTABLE") get_property(is_example TARGET ${target} PROPERTY KM3NET_JPP_EXAMPLE) get_property(is_test TARGET ${target} PROPERTY KM3NET_JPP_TEST) if(NOT is_example AND NOT is_test) list(APPEND bins ${target}) endif() endif() endforeach() set(${apps} ${bins} PARENT_SCOPE) endfunction() # get the list of documents # function(jpp_get_list_of_documents documents) get_all_targets(OUTVAR targets DIRECTORY ${PROJECT_SOURCE_DIR} SORTED) set(docs) foreach(target ${targets}) get_property(is_document TARGET ${target} PROPERTY KM3NET_JPP_DOCUMENT) if(is_document) list(APPEND docs ${target}) endif() endforeach() set(${documents} ${docs} PARENT_SCOPE) endfunction() # get the list of examples (aka binaries in bin/examples) # function(jpp_get_list_of_examples examples) get_all_targets(OUTVAR targets DIRECTORY ${PROJECT_SOURCE_DIR} SORTED) set(exa) foreach(target ${targets}) get_property(is_example TARGET ${target} PROPERTY KM3NET_JPP_EXAMPLE) if(is_example) list(APPEND exa ${target}) endif() endforeach() set(${examples} ${exa} PARENT_SCOPE) endfunction() # get the list of scripts # function(jpp_get_list_of_scripts scripts) cmake_parse_arguments(PARSE_ARGV 1 A "INCLUDE_EXAMPLES;ONLY_EXAMPLES" "" "") if(A_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Got trailing arguments ${A_UNPARSED_ARGUMENTS}") endif() get_all_targets(OUTVAR targets DIRECTORY ${PROJECT_SOURCE_DIR} SORTED) set(scr) foreach(target ${targets}) get_property(is_script TARGET ${target} PROPERTY KM3NET_JPP_SCRIPT) get_property(is_example TARGET ${target} PROPERTY KM3NET_JPP_EXAMPLE) if(is_script) if(is_example) if(A_INCLUDE_EXAMPLES OR A_ONLY_EXAMPLES) list(APPEND scr ${target}) endif() else() if(NOT A_ONLY_EXAMPLES) list(APPEND scr ${target}) endif() endif() endif() endforeach() set(${scripts} ${scr} PARENT_SCOPE) endfunction()