mirror of
https://github.com/reactos/CMake.git
synced 2024-11-25 12:40:06 +00:00
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
|
||||
``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()
|
||||
|
@ -71,6 +71,31 @@ if(can_build_tutorial_step5)
|
||||
LOG_TEST 1
|
||||
)
|
||||
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()
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user