This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, next has been updated via 72edefcf8a04d5ee9404cccd33090dd0d2025005 (commit) via 0bdf24548b2059d9e11520f2de492b4847aefb8f (commit) via 0f381ad5218758aadf92bbd4e5d68347a06cc3ab (commit) from b7f1ba1691b6b49947eaba55bf506ffc63eafa70 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=72edefcf8a04d5ee9404cccd33090dd0d2025005 commit 72edefcf8a04d5ee9404cccd33090dd0d2025005 Merge: b7f1ba1 0bdf245 Author: Daniele E. Domenichelli <daniele.domeniche...@gmail.com> AuthorDate: Thu Dec 4 05:28:53 2014 -0500 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Thu Dec 4 05:28:53 2014 -0500 Merge topic 'ExternalProject_TEST_EXCLUDE_FROM_MAIN' into next 0bdf2454 ExternalProject: Add TEST_EXCLUDE_FROM_MAIN option 0f381ad5 CMake Nightly Date Stamp http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0bdf24548b2059d9e11520f2de492b4847aefb8f commit 0bdf24548b2059d9e11520f2de492b4847aefb8f Author: Daniele E. Domenichelli <daniele.domeniche...@iit.it> AuthorDate: Sun Nov 30 22:28:43 2014 +0100 Commit: Daniele E. Domenichelli <daniele.domeniche...@iit.it> CommitDate: Thu Dec 4 11:27:19 2014 +0100 ExternalProject: Add TEST_EXCLUDE_FROM_MAIN option If this option is enabled, the test step is created with the EXCLUDE_FROM_MAIN option, and if TEST_BEFORE_INSTALL is enabled, the install step does not depend on the test step. This means that the test step is never executed, unless the test target is explicitly created by calling ExternalProject_Add_StepTarget, or by passing it with the STEP_TARGETS option, or with the EP_STEP_TARGETS directory property. diff --git a/Help/release/dev/ExternalProject_TEST_EXCLUDE_FROM_MAIN.rst b/Help/release/dev/ExternalProject_TEST_EXCLUDE_FROM_MAIN.rst new file mode 100644 index 0000000..dfbf108 --- /dev/null +++ b/Help/release/dev/ExternalProject_TEST_EXCLUDE_FROM_MAIN.rst @@ -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. 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() diff --git a/Tests/ExternalProjectLocal/CMakeLists.txt b/Tests/ExternalProjectLocal/CMakeLists.txt index cbbb555..a71c869 100644 --- a/Tests/ExternalProjectLocal/CMakeLists.txt +++ b/Tests/ExternalProjectLocal/CMakeLists.txt @@ -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 -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 -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() ----------------------------------------------------------------------- Summary of changes: .../dev/ExternalProject_TEST_EXCLUDE_FROM_MAIN.rst | 6 +++++ Modules/ExternalProject.cmake | 25 ++++++++++++++++---- Source/CMakeVersion.cmake | 2 +- Tests/ExternalProjectLocal/CMakeLists.txt | 25 ++++++++++++++++++++ 4 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 Help/release/dev/ExternalProject_TEST_EXCLUDE_FROM_MAIN.rst hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits