diff options
Diffstat (limited to 'Modules/ExternalProject.cmake')
-rw-r--r-- | Modules/ExternalProject.cmake | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index e5616b1..7e4cc37 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -149,6 +149,8 @@ Create custom targets to build projects in external trees Add test step executed before install step ``TEST_AFTER_INSTALL 1`` Add test step executed after install step + ``TEST_EXCLUDE_FROM_MAIN 1`` + Main target does not depend on the test step ``TEST_COMMAND <cmd>...`` Command to drive test @@ -2193,12 +2195,13 @@ function(_ep_add_test_command name) get_property(before TARGET ${name} PROPERTY _EP_TEST_BEFORE_INSTALL) get_property(after TARGET ${name} PROPERTY _EP_TEST_AFTER_INSTALL) + get_property(exclude TARGET ${name} PROPERTY _EP_TEST_EXCLUDE_FROM_MAIN) get_property(cmd_set TARGET ${name} PROPERTY _EP_TEST_COMMAND SET) # Only actually add the test step if one of the test related properties is # explicitly set. (i.e. the test step is omitted unless requested...) # - if(cmd_set OR before OR after) + if(cmd_set OR before OR after OR exclude) if(cmd_set) get_property(cmd TARGET ${name} PROPERTY _EP_TEST_COMMAND) else() @@ -2206,9 +2209,21 @@ function(_ep_add_test_command name) endif() if(before) - set(dep_args DEPENDEES build DEPENDERS install) + set(dependees_args DEPENDEES build) else() - set(dep_args DEPENDEES install) + set(dependees_args DEPENDEES install) + endif() + + if(exclude) + set(dependers_args "") + set(exclude_args EXCLUDE_FROM_MAIN 1) + else() + if(before) + set(dependers_args DEPENDERS install) + else() + set(dependers_args "") + endif() + set(exclude_args "") endif() get_property(log TARGET ${name} PROPERTY _EP_LOG_TEST) @@ -2221,7 +2236,9 @@ function(_ep_add_test_command name) ExternalProject_Add_Step(${name} test COMMAND ${cmd} WORKING_DIRECTORY ${binary_dir} - ${dep_args} + ${dependees_args} + ${dependers_args} + ${exclude_args} ${log} ) endif() |