Merge topic 'ExternalProject_TEST_EXCLUDE_FROM_MAIN'
636f0c1d
ExternalProject: Add TEST_EXCLUDE_FROM_MAIN option
This commit is contained in:
commit
413ce02895
|
@ -0,0 +1,6 @@
|
||||||
|
ExternalProject_TEST_EXCLUDE_FROM_MAIN
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
* The :module:`ExternalProject` module :command:`ExternalProject_Add`
|
||||||
|
command learned a ``TEST_EXCLUDE_FROM_MAIN`` option to exclude tests
|
||||||
|
from the main build.
|
|
@ -149,6 +149,8 @@ Create custom targets to build projects in external trees
|
||||||
Add test step executed before install step
|
Add test step executed before install step
|
||||||
``TEST_AFTER_INSTALL 1``
|
``TEST_AFTER_INSTALL 1``
|
||||||
Add test step executed after install step
|
Add test step executed after install step
|
||||||
|
``TEST_EXCLUDE_FROM_MAIN 1``
|
||||||
|
Main target does not depend on the test step
|
||||||
``TEST_COMMAND <cmd>...``
|
``TEST_COMMAND <cmd>...``
|
||||||
Command to drive test
|
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(before TARGET ${name} PROPERTY _EP_TEST_BEFORE_INSTALL)
|
||||||
get_property(after TARGET ${name} PROPERTY _EP_TEST_AFTER_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)
|
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
|
# 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...)
|
# 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)
|
if(cmd_set)
|
||||||
get_property(cmd TARGET ${name} PROPERTY _EP_TEST_COMMAND)
|
get_property(cmd TARGET ${name} PROPERTY _EP_TEST_COMMAND)
|
||||||
else()
|
else()
|
||||||
|
@ -2206,9 +2209,21 @@ function(_ep_add_test_command name)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(before)
|
if(before)
|
||||||
set(dep_args DEPENDEES build DEPENDERS install)
|
set(dependees_args DEPENDEES build)
|
||||||
else()
|
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()
|
endif()
|
||||||
|
|
||||||
get_property(log TARGET ${name} PROPERTY _EP_LOG_TEST)
|
get_property(log TARGET ${name} PROPERTY _EP_LOG_TEST)
|
||||||
|
@ -2221,7 +2236,9 @@ function(_ep_add_test_command name)
|
||||||
ExternalProject_Add_Step(${name} test
|
ExternalProject_Add_Step(${name} test
|
||||||
COMMAND ${cmd}
|
COMMAND ${cmd}
|
||||||
WORKING_DIRECTORY ${binary_dir}
|
WORKING_DIRECTORY ${binary_dir}
|
||||||
${dep_args}
|
${dependees_args}
|
||||||
|
${dependers_args}
|
||||||
|
${exclude_args}
|
||||||
${log}
|
${log}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -71,6 +71,31 @@ if(can_build_tutorial_step5)
|
||||||
LOG_TEST 1
|
LOG_TEST 1
|
||||||
)
|
)
|
||||||
set_property(TARGET ${proj} PROPERTY FOLDER "Local")
|
set_property(TARGET ${proj} PROPERTY FOLDER "Local")
|
||||||
|
|
||||||
|
set(proj TutorialStep5-Local-TestExcludeFromMainBefore)
|
||||||
|
ExternalProject_Add(${proj}
|
||||||
|
URL "${CMAKE_CURRENT_SOURCE_DIR}/../Tutorial/Step5"
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -G ${CMAKE_GENERATOR} <SOURCE_DIR>
|
||||||
|
CMAKE_CACHE_DEFAULT_ARGS -DUSE_MYMATH:BOOL=OFF
|
||||||
|
TEST_BEFORE_INSTALL 1
|
||||||
|
TEST_EXCLUDE_FROM_MAIN 1
|
||||||
|
STEP_TARGETS test
|
||||||
|
LOG_TEST 1
|
||||||
|
)
|
||||||
|
set_property(TARGET ${proj} PROPERTY FOLDER "Local")
|
||||||
|
|
||||||
|
set(proj TutorialStep5-Local-TestExcludeFromMainAfter)
|
||||||
|
ExternalProject_Add(${proj}
|
||||||
|
URL "${CMAKE_CURRENT_SOURCE_DIR}/../Tutorial/Step5"
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -G ${CMAKE_GENERATOR} <SOURCE_DIR>
|
||||||
|
CMAKE_CACHE_DEFAULT_ARGS -DUSE_MYMATH:BOOL=OFF
|
||||||
|
TEST_AFTER_INSTALL 1
|
||||||
|
TEST_EXCLUDE_FROM_MAIN 1
|
||||||
|
STEP_TARGETS test
|
||||||
|
LOG_TEST 1
|
||||||
|
)
|
||||||
|
set_property(TARGET ${proj} PROPERTY FOLDER "Local")
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue