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  677d66d06472560a5c9dedfec73e093ee40db2c6 (commit)
       via  636f0c1d4fa3f003fff406b27306cd6883bcec75 (commit)
       via  c90633df9eacb3063669ac0aad9506cea1885582 (commit)
      from  6fe28452898c3fea0bf021cacfe0885686e517dd (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=677d66d06472560a5c9dedfec73e093ee40db2c6
commit 677d66d06472560a5c9dedfec73e093ee40db2c6
Merge: 6fe2845 636f0c1
Author:     Daniele E. Domenichelli <daniele.domeniche...@gmail.com>
AuthorDate: Fri Dec 5 04:29:03 2014 -0500
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Fri Dec 5 04:29:03 2014 -0500

    Merge topic 'ExternalProject_TEST_EXCLUDE_FROM_MAIN' into next
    
    636f0c1d ExternalProject: Add TEST_EXCLUDE_FROM_MAIN option
    c90633df CMake Nightly Date Stamp


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=636f0c1d4fa3f003fff406b27306cd6883bcec75
commit 636f0c1d4fa3f003fff406b27306cd6883bcec75
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: Fri Dec 5 10:24:16 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..9476ab4 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 -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()
 
 

-----------------------------------------------------------------------

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

Reply via email to