[Cmake-commits] CMake branch, next, updated. v2.8.12.1-6776-g291bee0

Nils Gladitz nilsgladitz at gmail.com
Mon Jan 6 14:33:34 EST 2014


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  291bee00e77675e790d59acef9ac459eb57e58fd (commit)
       via  063725275e0b7c628aeb9127c7621a0161e5ce6b (commit)
      from  1de8a23819ea56849f3567e3a637f8f0a4186ab7 (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=291bee00e77675e790d59acef9ac459eb57e58fd
commit 291bee00e77675e790d59acef9ac459eb57e58fd
Merge: 1de8a23 0637252
Author:     Nils Gladitz <nilsgladitz at gmail.com>
AuthorDate: Mon Jan 6 14:33:33 2014 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Jan 6 14:33:33 2014 -0500

    Merge topic 'optional-install' into next
    
    0637252 InstallRules: added tests and renamed variable to CMAKE_SKIP_INSTALL_RULES


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=063725275e0b7c628aeb9127c7621a0161e5ce6b
commit 063725275e0b7c628aeb9127c7621a0161e5ce6b
Author:     Nils Gladitz <nilsgladitz at gmail.com>
AuthorDate: Mon Jan 6 20:31:57 2014 +0100
Commit:     Nils Gladitz <nilsgladitz at gmail.com>
CommitDate: Mon Jan 6 20:31:57 2014 +0100

    InstallRules: added tests and renamed variable to CMAKE_SKIP_INSTALL_RULES

diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst
index 2753bdd..7848489 100644
--- a/Help/manual/cmake-variables.7.rst
+++ b/Help/manual/cmake-variables.7.rst
@@ -31,7 +31,6 @@ Variables that Provide Information
    /variable/CMAKE_CURRENT_LIST_FILE
    /variable/CMAKE_CURRENT_LIST_LINE
    /variable/CMAKE_CURRENT_SOURCE_DIR
-   /variable/CMAKE_DISABLE_INSTALL_RULES
    /variable/CMAKE_DL_LIBS
    /variable/CMAKE_EDIT_COMMAND
    /variable/CMAKE_EXECUTABLE_SUFFIX
@@ -60,6 +59,7 @@ Variables that Provide Information
    /variable/CMAKE_SHARED_MODULE_PREFIX
    /variable/CMAKE_SHARED_MODULE_SUFFIX
    /variable/CMAKE_SIZEOF_VOID_P
+   /variable/CMAKE_SKIP_INSTALL_RULES
    /variable/CMAKE_SKIP_RPATH
    /variable/CMAKE_SOURCE_DIR
    /variable/CMAKE_STANDARD_LIBRARIES
diff --git a/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst b/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst
new file mode 100644
index 0000000..5eda254
--- /dev/null
+++ b/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst
@@ -0,0 +1,7 @@
+CMAKE_SKIP_INSTALL_RULES
+------------------------
+
+Whether to disable generation of installation rules.
+
+If TRUE, cmake will neither generate installaton rules nor
+will it generate cmake_install.cmake files. This variable is FALSE by default.
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 1cbdf8e..2dcb5bc 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1173,7 +1173,7 @@ void cmGlobalGenerator::Generate()
     this->SetCurrentLocalGenerator(this->LocalGenerators[i]);
     this->LocalGenerators[i]->Generate();
     if(!this->LocalGenerators[i]->GetMakefile()->IsOn(
-      "CMAKE_DISABLE_INSTALL_RULES"))
+      "CMAKE_SKIP_INSTALL_RULES"))
       {
       this->LocalGenerators[i]->GenerateInstallRules();
       }
@@ -2244,14 +2244,14 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
     }
 
   //Install
-  bool disableInstallRules = mf->IsOn("CMAKE_DISABLE_INSTALL_RULES");
-  if(this->InstallTargetEnabled && disableInstallRules)
+  bool skipInstallRules = mf->IsOn("CMAKE_SKIP_INSTALL_RULES");
+  if(this->InstallTargetEnabled && skipInstallRules)
     {
     mf->IssueMessage(cmake::WARNING,
-      "CMAKE_DISABLE_INSTALL_RULES was enabled even though "
+      "CMAKE_SKIP_INSTALL_RULES was enabled even though "
       "installation rules have been specified");
     }
-  else if(this->InstallTargetEnabled && !disableInstallRules)
+  else if(this->InstallTargetEnabled && !skipInstallRules)
     {
     if(!cmakeCfgIntDir || !*cmakeCfgIntDir || cmakeCfgIntDir[0] == '.')
       {
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 5ea604f..c992d1d 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -742,6 +742,19 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
     --test-command   ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstExeS2)
   list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/SimpleInstallS2")
 
+  set(MissingInstallInstallDir
+    "${CMake_BINARY_DIR}/Tests/MissingInstall/InstallDirectory")
+  add_test(MissingInstall ${CMAKE_CTEST_COMMAND}
+    --build-and-test
+    "${CMake_SOURCE_DIR}/Tests/MissingInstall"
+    "${CMake_BINARY_DIR}/Tests/MissingInstall"
+    ${build_generator_args}
+    --build-project TestMissingInstall
+    --build-two-config
+    --build-options ${build_options}
+    "-DCMAKE_INSTALL_PREFIX:PATH=${MissingInstallInstallDir}")
+  list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/MissingInstall")
+
   # By default, run the CPackComponents test if the CTEST_TEST_CPACK
   # option is ON:
   #
diff --git a/Tests/MissingInstall/CMakeLists.txt b/Tests/MissingInstall/CMakeLists.txt
new file mode 100644
index 0000000..98fbc61
--- /dev/null
+++ b/Tests/MissingInstall/CMakeLists.txt
@@ -0,0 +1,25 @@
+cmake_minimum_required (VERSION 2.8.12)
+project(TestMissingInstall)
+
+set(CMAKE_SKIP_INSTALL_RULES ON)
+
+# Skip the dependency that causes a build when installing.  This
+# avoids infinite loops when the post-build rule below installs.
+set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY 1)
+set(CMAKE_SKIP_PACKAGE_ALL_DEPENDENCY 1)
+
+if(CMAKE_CONFIGURATION_TYPES)
+  set(SI_CONFIG --config $<CONFIGURATION>)
+else()
+  set(SI_CONFIG)
+endif()
+
+add_executable(mybin mybin.cpp)
+install(TARGETS mybin RUNTIME DESTINATION bin)
+
+add_custom_command(TARGET mybin
+  POST_BUILD
+  COMMAND ${CMAKE_COMMAND} "-DSI_CONFIG=${SI_CONFIG}"
+    -P ${CMAKE_CURRENT_SOURCE_DIR}/ExpectInstallFail.cmake
+  COMMENT "Install Project"
+)
diff --git a/Tests/MissingInstall/ExpectInstallFail.cmake b/Tests/MissingInstall/ExpectInstallFail.cmake
new file mode 100644
index 0000000..198eb72
--- /dev/null
+++ b/Tests/MissingInstall/ExpectInstallFail.cmake
@@ -0,0 +1,12 @@
+execute_process(
+  COMMAND ${CMAKE_COMMAND}
+    --build .
+    --target install ${SI_CONFIG}
+  RESULT_VARIABLE RESULT
+  OUTPUT_VARIABLE OUTPUT
+  ERROR_VARIABLE ERROR
+)
+
+if(NOT "${RESULT}" GREATER "0")
+  message(FATAL_ERROR "install should have failed")
+endif()
diff --git a/Tests/MissingInstall/mybin.cpp b/Tests/MissingInstall/mybin.cpp
new file mode 100644
index 0000000..237c8ce
--- /dev/null
+++ b/Tests/MissingInstall/mybin.cpp
@@ -0,0 +1 @@
+int main() {}
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index 96b0543..e091155 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -140,3 +140,5 @@ add_RunCMake_test(File_Generate)
 add_RunCMake_test(ExportWithoutLanguage)
 add_RunCMake_test(target_link_libraries)
 add_RunCMake_test(CheckModules)
+
+add_RunCMake_test(install)
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt.orig
similarity index 100%
copy from Tests/RunCMake/CMakeLists.txt
copy to Tests/RunCMake/CMakeLists.txt.orig
diff --git a/Tests/RunCMake/install/CMakeLists.txt b/Tests/RunCMake/install/CMakeLists.txt
new file mode 100644
index 0000000..4b3de84
--- /dev/null
+++ b/Tests/RunCMake/install/CMakeLists.txt
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 2.8.12)
+project(${RunCMake_TEST} NONE)
+include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/install/RunCMakeTest.cmake b/Tests/RunCMake/install/RunCMakeTest.cmake
new file mode 100644
index 0000000..c8dc379
--- /dev/null
+++ b/Tests/RunCMake/install/RunCMakeTest.cmake
@@ -0,0 +1,4 @@
+include(RunCMake)
+run_cmake(SkipInstallRulesWarning)
+run_cmake(SkipInstallRulesNoWarning1)
+run_cmake(SkipInstallRulesNoWarning2)
diff --git a/Tests/RunCMake/install/SkipInstallRulesNoWarning1-check.cmake b/Tests/RunCMake/install/SkipInstallRulesNoWarning1-check.cmake
new file mode 100644
index 0000000..2807698
--- /dev/null
+++ b/Tests/RunCMake/install/SkipInstallRulesNoWarning1-check.cmake
@@ -0,0 +1,9 @@
+if(NOT EXISTS "${RunCMake_TEST_BINARY_DIR}/CMakeCache.txt")
+  message(FATAL_ERROR "missing test prerequisite CMakeCache.txt")
+endif()
+
+set(CMAKE_INSTALL_CMAKE "${RunCMake_TEST_BINARY_DIR}/cmake_install.cmake")
+
+if(EXISTS ${CMAKE_INSTALL_CMAKE})
+  message(FATAL_ERROR "${CMAKE_INSTALL_CMAKE} should not exist")
+endif()
diff --git a/Tests/RunCMake/install/SkipInstallRulesNoWarning1-stderr.txt b/Tests/RunCMake/install/SkipInstallRulesNoWarning1-stderr.txt
new file mode 100644
index 0000000..10f3293
--- /dev/null
+++ b/Tests/RunCMake/install/SkipInstallRulesNoWarning1-stderr.txt
@@ -0,0 +1 @@
+^$
diff --git a/Tests/RunCMake/install/SkipInstallRulesNoWarning1.cmake b/Tests/RunCMake/install/SkipInstallRulesNoWarning1.cmake
new file mode 100644
index 0000000..22c7f8c
--- /dev/null
+++ b/Tests/RunCMake/install/SkipInstallRulesNoWarning1.cmake
@@ -0,0 +1 @@
+set(CMAKE_SKIP_INSTALL_RULES ON)
diff --git a/Tests/RunCMake/install/SkipInstallRulesNoWarning2-check.cmake b/Tests/RunCMake/install/SkipInstallRulesNoWarning2-check.cmake
new file mode 100644
index 0000000..4372b77
--- /dev/null
+++ b/Tests/RunCMake/install/SkipInstallRulesNoWarning2-check.cmake
@@ -0,0 +1,9 @@
+if(NOT EXISTS "${RunCMake_TEST_BINARY_DIR}/CMakeCache.txt")
+  message(FATAL_ERROR "missing test prerequisite CMakeCache.txt")
+endif()
+
+set(CMAKE_INSTALL_CMAKE "${RunCMake_TEST_BINARY_DIR}/cmake_install.cmake")
+
+if(NOT EXISTS ${CMAKE_INSTALL_CMAKE})
+  message(FATAL_ERROR "${CMAKE_INSTALL_CMAKE} should exist")
+endif()
diff --git a/Tests/RunCMake/install/SkipInstallRulesNoWarning2-stderr.txt b/Tests/RunCMake/install/SkipInstallRulesNoWarning2-stderr.txt
new file mode 100644
index 0000000..10f3293
--- /dev/null
+++ b/Tests/RunCMake/install/SkipInstallRulesNoWarning2-stderr.txt
@@ -0,0 +1 @@
+^$
diff --git a/Tests/RunCMake/install/SkipInstallRulesNoWarning2.cmake b/Tests/RunCMake/install/SkipInstallRulesNoWarning2.cmake
new file mode 100644
index 0000000..2f5f03a
--- /dev/null
+++ b/Tests/RunCMake/install/SkipInstallRulesNoWarning2.cmake
@@ -0,0 +1 @@
+install(FILES CMakeLists.txt DESTINATION src)
diff --git a/Tests/RunCMake/install/SkipInstallRulesWarning-check.cmake b/Tests/RunCMake/install/SkipInstallRulesWarning-check.cmake
new file mode 100644
index 0000000..2807698
--- /dev/null
+++ b/Tests/RunCMake/install/SkipInstallRulesWarning-check.cmake
@@ -0,0 +1,9 @@
+if(NOT EXISTS "${RunCMake_TEST_BINARY_DIR}/CMakeCache.txt")
+  message(FATAL_ERROR "missing test prerequisite CMakeCache.txt")
+endif()
+
+set(CMAKE_INSTALL_CMAKE "${RunCMake_TEST_BINARY_DIR}/cmake_install.cmake")
+
+if(EXISTS ${CMAKE_INSTALL_CMAKE})
+  message(FATAL_ERROR "${CMAKE_INSTALL_CMAKE} should not exist")
+endif()
diff --git a/Tests/RunCMake/install/SkipInstallRulesWarning-stderr.txt b/Tests/RunCMake/install/SkipInstallRulesWarning-stderr.txt
new file mode 100644
index 0000000..9130526
--- /dev/null
+++ b/Tests/RunCMake/install/SkipInstallRulesWarning-stderr.txt
@@ -0,0 +1,3 @@
+CMake Warning in CMakeLists.txt:
+  CMAKE_SKIP_INSTALL_RULES was enabled even though installation rules have
+  been specified
diff --git a/Tests/RunCMake/install/SkipInstallRulesWarning.cmake b/Tests/RunCMake/install/SkipInstallRulesWarning.cmake
new file mode 100644
index 0000000..b621d9b
--- /dev/null
+++ b/Tests/RunCMake/install/SkipInstallRulesWarning.cmake
@@ -0,0 +1,2 @@
+set(CMAKE_SKIP_INSTALL_RULES ON)
+install(FILES CMakeLists.txt DESTINATION src)

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

Summary of changes:
 Help/manual/cmake-variables.7.rst                  |    2 +-
 Help/variable/CMAKE_SKIP_INSTALL_RULES.rst         |    7 +
 Source/cmGlobalGenerator.cxx                       |   10 +-
 Tests/CMakeLists.txt                               |   13 ++
 Tests/MissingInstall/CMakeLists.txt                |   25 ++++
 Tests/MissingInstall/ExpectInstallFail.cmake       |   12 ++
 Tests/MissingInstall/mybin.cpp                     |    1 +
 Tests/RunCMake/CMakeLists.txt                      |    2 +
 Tests/RunCMake/CMakeLists.txt.orig                 |  142 ++++++++++++++++++++
 Tests/RunCMake/{set => install}/CMakeLists.txt     |    0
 Tests/RunCMake/install/RunCMakeTest.cmake          |    4 +
 .../install/SkipInstallRulesNoWarning1-check.cmake |    9 ++
 .../SkipInstallRulesNoWarning1-stderr.txt}         |    0
 .../install/SkipInstallRulesNoWarning1.cmake       |    1 +
 .../install/SkipInstallRulesNoWarning2-check.cmake |    9 ++
 .../SkipInstallRulesNoWarning2-stderr.txt}         |    0
 .../install/SkipInstallRulesNoWarning2.cmake       |    1 +
 .../install/SkipInstallRulesWarning-check.cmake    |    9 ++
 .../install/SkipInstallRulesWarning-stderr.txt     |    3 +
 .../RunCMake/install/SkipInstallRulesWarning.cmake |    2 +
 20 files changed, 246 insertions(+), 6 deletions(-)
 create mode 100644 Help/variable/CMAKE_SKIP_INSTALL_RULES.rst
 create mode 100644 Tests/MissingInstall/CMakeLists.txt
 create mode 100644 Tests/MissingInstall/ExpectInstallFail.cmake
 create mode 100644 Tests/MissingInstall/mybin.cpp
 create mode 100644 Tests/RunCMake/CMakeLists.txt.orig
 copy Tests/RunCMake/{set => install}/CMakeLists.txt (100%)
 create mode 100644 Tests/RunCMake/install/RunCMakeTest.cmake
 create mode 100644 Tests/RunCMake/install/SkipInstallRulesNoWarning1-check.cmake
 copy Tests/RunCMake/{CMP0022/CMP0022-NOWARN-exe-stderr.txt => install/SkipInstallRulesNoWarning1-stderr.txt} (100%)
 create mode 100644 Tests/RunCMake/install/SkipInstallRulesNoWarning1.cmake
 create mode 100644 Tests/RunCMake/install/SkipInstallRulesNoWarning2-check.cmake
 copy Tests/RunCMake/{CMP0022/CMP0022-NOWARN-exe-stderr.txt => install/SkipInstallRulesNoWarning2-stderr.txt} (100%)
 create mode 100644 Tests/RunCMake/install/SkipInstallRulesNoWarning2.cmake
 create mode 100644 Tests/RunCMake/install/SkipInstallRulesWarning-check.cmake
 create mode 100644 Tests/RunCMake/install/SkipInstallRulesWarning-stderr.txt
 create mode 100644 Tests/RunCMake/install/SkipInstallRulesWarning.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list