[Cmake-commits] CMake branch, next, updated. v2.8.3-803-g9323fed

Eric Noulard eric.noulard at gmail.com
Sat Dec 11 06:05:26 EST 2010


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  9323fedf89a7bac078c684220e47c237fba360cd (commit)
       via  6d64a7e3512ba1f6e52b18d65fd8bd8b137de876 (commit)
       via  f20e727e74227c4a506c13c8903e258e749ca8fe (commit)
      from  b7ea1c5879ce1025828f7b4ecc153a4aed67604d (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=9323fedf89a7bac078c684220e47c237fba360cd
commit 9323fedf89a7bac078c684220e47c237fba360cd
Merge: b7ea1c5 6d64a7e
Author:     Eric Noulard <eric.noulard at gmail.com>
AuthorDate: Sat Dec 11 06:05:18 2010 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Sat Dec 11 06:05:18 2010 -0500

    Merge topic 'CPack-AddMoreTests' into next
    
    6d64a7e CPack  Default component test for ZIP should be OK
    f20e727 CPack new tests for component install


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6d64a7e3512ba1f6e52b18d65fd8bd8b137de876
commit 6d64a7e3512ba1f6e52b18d65fd8bd8b137de876
Author:     Eric NOULARD <eric.noulard at gmail.com>
AuthorDate: Sat Dec 11 11:59:02 2010 +0100
Commit:     Eric NOULARD <eric.noulard at gmail.com>
CommitDate: Sat Dec 11 11:59:02 2010 +0100

    CPack  Default component test for ZIP should be OK

diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 3538e44..2e88bcf 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -540,8 +540,9 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
 
     set(CPackRun_CPackGen  "-DCPackGen=ZIP")
     set(CPackRun_CPackCommand "-DCPackCommand=${CMAKE_CPACK_COMMAND}")
+    set(CPackRun_CPackComponentWay "-DCPackComponentWay=default")
 
-    ADD_TEST(CPackComponentsForAll-ZIP-NoComponent ${CMAKE_CTEST_COMMAND}
+    ADD_TEST(CPackComponentsForAll-ZIP-default ${CMAKE_CTEST_COMMAND}
       --build-and-test
       "${CMake_SOURCE_DIR}/Tests/CPackComponentsForAll"
       "${CMake_BINARY_DIR}/Tests/CPackComponentsForAll/buildZIP-NoComponent"
@@ -556,6 +557,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
         "-DCPackComponentsForAll_BINARY_DIR:PATH=${CMake_BINARY_DIR}/Tests/CPackComponentsForAll/buildZIP-NoComponent"
         "${CPackRun_CPackCommand}"
         "${CPackRun_CPackGen}"
+        "${CPackRun_CPackComponentWay}"
         -P "${CMake_SOURCE_DIR}/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake")
 
     LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CPackComponentsForAll")
diff --git a/Tests/CPackComponentsForAll/CMakeLists.txt b/Tests/CPackComponentsForAll/CMakeLists.txt
index 4153ac9..971b2dc 100644
--- a/Tests/CPackComponentsForAll/CMakeLists.txt
+++ b/Tests/CPackComponentsForAll/CMakeLists.txt
@@ -7,7 +7,7 @@
 # Depending on the CPack generator and on some CPACK_xxx var values
 # the generator may produce a single (NSIS, PackageMaker)
 # or several package files (Archive Generators, RPM, DEB)
-cmake_minimum_required(VERSION 2.8.3 FATAL_ERROR)
+cmake_minimum_required(VERSION 2.8.3.20101130 FATAL_ERROR)
 project(CPackComponentsForAll)
 
 # Create the mylib library
diff --git a/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake b/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake
index 6b471ca..b24ae5a 100644
--- a/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake
+++ b/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake
@@ -13,7 +13,14 @@ endif(NOT CPackGen)
 if(NOT CPackCommand)
   message(FATAL_ERROR "CPackCommand not set")
 endif(NOT CPackCommand)
+
+if(NOT CPackComponentWay)
+  message(FATAL_ERROR "CPackComponentWay not set")
+endif(NOT CPackComponentWay)
+
 set(expected_file_mask "")
+# The usual default behavior is to expect a single file
+set(expected_count 1)
 
 execute_process(COMMAND ${CPackCommand} -G ${CPackGen}
     RESULT_VARIABLE result
@@ -23,10 +30,14 @@ execute_process(COMMAND ${CPackCommand} -G ${CPackGen}
 
 if(CPackGen MATCHES "ZIP")
     set(expected_file_mask "${CPackComponentsForAll_BINARY_DIR}/MyLib-*.zip")
-    set(expected_count 2)
+    if (${CPackComponentWay} STREQUAL "default")
+        set(expected_count 1)
+    endif(${CPackComponentWay} STREQUAL "default")
 endif(CPackGen MATCHES "ZIP")
 
-
+# Now verify if the number of expected file is OK
+# - using expected_file_mask and
+# - expected_count
 if(expected_file_mask)
   file(GLOB expected_file "${expected_file_mask}")
 
@@ -35,12 +46,12 @@ if(expected_file_mask)
   message(STATUS "expected_file_mask='${expected_file_mask}'")
 
   if(NOT expected_file)
-    message(FATAL_ERROR "error: expected_file does not exist: CPackComponentsForAll test fails.")
+    message(FATAL_ERROR "error: expected_file=${expected_file} does not exist: CPackComponentsForAll test fails.")
   endif(NOT expected_file)
 
   list(LENGTH expected_file actual_count)
   message(STATUS "actual_count='${actual_count}'")
   if(NOT actual_count EQUAL expected_count)
-    message(FATAL_ERROR "error: expected_count does not match actual_count: CPackComponents test fails.")
+    message(FATAL_ERROR "error: expected_count=${expected_count} does not match actual_count=${actual_count}: CPackComponents test fails.")
   endif(NOT actual_count EQUAL expected_count)
 endif(expected_file_mask)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f20e727e74227c4a506c13c8903e258e749ca8fe
commit f20e727e74227c4a506c13c8903e258e749ca8fe
Author:     Eric NOULARD <eric.noulard at gmail.com>
AuthorDate: Thu Dec 2 22:56:26 2010 +0100
Commit:     Eric NOULARD <eric.noulard at gmail.com>
CommitDate: Thu Dec 2 22:59:05 2010 +0100

    CPack new tests for component install

diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 04f0774..3538e44 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -486,6 +486,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
   #
   set(CTEST_RUN_CPackComponents ${CTEST_TEST_CPACK})
   set(CTEST_package_X11_TEST ${CTEST_TEST_CPACK})
+  set(CTEST_RUN_CPackComponentsForAll ${CTEST_TEST_CPACK})
 
   find_program(NSIS_MAKENSIS_EXECUTABLE NAMES makensis
     PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\NSIS]
@@ -534,6 +535,32 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
     LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CPackComponents")
   ENDIF(CTEST_RUN_CPackComponents)
 
+  IF(CTEST_RUN_CPackComponentsForAll)
+    set(CPackComponentsForAll_EXTRA_OPTIONS)
+
+    set(CPackRun_CPackGen  "-DCPackGen=ZIP")
+    set(CPackRun_CPackCommand "-DCPackCommand=${CMAKE_CPACK_COMMAND}")
+
+    ADD_TEST(CPackComponentsForAll-ZIP-NoComponent ${CMAKE_CTEST_COMMAND}
+      --build-and-test
+      "${CMake_SOURCE_DIR}/Tests/CPackComponentsForAll"
+      "${CMake_BINARY_DIR}/Tests/CPackComponentsForAll/buildZIP-NoComponent"
+      --build-generator ${CMAKE_TEST_GENERATOR}
+      --build-project CPackComponentsForAll
+      --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
+      --build-options
+        -DCPACK_BINARY_ZIP:BOOL=ON
+        ${CPackComponentsForAll_EXTRA_OPTIONS}
+        --graphviz=CPackComponentsForAll.dot
+      --test-command ${CMAKE_CMAKE_COMMAND}
+        "-DCPackComponentsForAll_BINARY_DIR:PATH=${CMake_BINARY_DIR}/Tests/CPackComponentsForAll/buildZIP-NoComponent"
+        "${CPackRun_CPackCommand}"
+        "${CPackRun_CPackGen}"
+        -P "${CMake_SOURCE_DIR}/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake")
+
+    LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CPackComponentsForAll")
+  ENDIF(CTEST_RUN_CPackComponentsForAll)
+
   # By default, turn this test off (because it takes a long time...)
   #
   if(NOT DEFINED CTEST_RUN_CPackTestAllGenerators)
diff --git a/Tests/CPackComponentsForAll/CMakeLists.txt b/Tests/CPackComponentsForAll/CMakeLists.txt
new file mode 100644
index 0000000..4153ac9
--- /dev/null
+++ b/Tests/CPackComponentsForAll/CMakeLists.txt
@@ -0,0 +1,120 @@
+# CPack Example: User-selectable Installation Components
+#
+# In this example, we have a simple library (mylib) with an example
+# application (mylibapp). We create a binary installer (a CPack Generator)
+# which supports CPack components.
+#
+# Depending on the CPack generator and on some CPACK_xxx var values
+# the generator may produce a single (NSIS, PackageMaker)
+# or several package files (Archive Generators, RPM, DEB)
+cmake_minimum_required(VERSION 2.8.3 FATAL_ERROR)
+project(CPackComponentsForAll)
+
+# Create the mylib library
+add_library(mylib mylib.cpp)
+
+# Create the mylibapp application
+add_executable(mylibapp mylibapp.cpp)
+target_link_libraries(mylibapp mylib)
+
+# Duplicate of mylibapp application
+# which won't be put in any component (?mistake?)
+add_executable(mylibapp2 mylibapp.cpp)
+target_link_libraries(mylibapp2 mylib)
+
+# Create installation targets. Note that we put each kind of file
+# into a different component via COMPONENT. These components will
+# be used to create the installation components.
+install(TARGETS mylib
+  ARCHIVE
+  DESTINATION lib
+  COMPONENT libraries)
+install(TARGETS mylibapp
+  RUNTIME
+  DESTINATION bin
+  COMPONENT applications)
+
+# This application does not belong to any component
+# thus (as of cmake 2.8.2) it will be left "uninstalled"
+# by a component-aware installer unless a
+# CPACK_MONOLITHIC_INSTALL=1 is set (at cmake time).
+install(TARGETS mylibapp2
+  RUNTIME
+  DESTINATION bin)
+
+install(FILES mylib.h
+  DESTINATION include
+  COMPONENT headers)
+
+# CPack boilerplate for this project
+set(CPACK_PACKAGE_NAME "MyLib")
+set(CPACK_PACKAGE_CONTACT "None")
+set(CPACK_PACKAGE_VENDOR "CMake.org")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MyLib - CPack Component Installation Example")
+set(CPACK_PACKAGE_VERSION "1.0.2")
+set(CPACK_PACKAGE_VERSION_MAJOR "1")
+set(CPACK_PACKAGE_VERSION_MINOR "0")
+set(CPACK_PACKAGE_VERSION_PATCH "2")
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "CPack Component Example")
+
+# Tell CPack all of the components to install. The "ALL"
+# refers to the fact that this is the set of components that
+# will be included when CPack is instructed to put everything
+# into the binary installer (the default behavior).
+set(CPACK_COMPONENTS_ALL applications libraries headers Unspecified)
+
+# Set the displayed names for each of the components to install.
+# These will be displayed in the list of components inside the installer.
+set(CPACK_COMPONENT_APPLICATIONS_DISPLAY_NAME "MyLib Application")
+set(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries")
+set(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ Headers")
+
+# Provide descriptions for each of the components to install.
+# When the user hovers the mouse over the name of a component,
+# the description will be shown in the "Description" box in the
+# installer. If no descriptions are provided, the "Description"
+# box will be removed.
+set(CPACK_COMPONENT_APPLICATIONS_DESCRIPTION
+  "An extremely useful application that makes use of MyLib")
+set(CPACK_COMPONENT_LIBRARIES_DESCRIPTION
+  "Static libraries used to build programs with MyLib")
+set(CPACK_COMPONENT_HEADERS_DESCRIPTION
+  "C/C++ header files for use with MyLib")
+
+# Put the components into two different groups: "Runtime" and "Development"
+set(CPACK_COMPONENT_APPLICATIONS_GROUP "Runtime")
+set(CPACK_COMPONENT_LIBRARIES_GROUP "Development")
+set(CPACK_COMPONENT_HEADERS_GROUP "Development")
+
+# Expand the "Development" group by default, since we have so few components.
+# Also, provide this group with a description.
+set(CPACK_COMPONENT_GROUP_DEVELOPMENT_EXPANDED ON)
+set(CPACK_COMPONENT_GROUP_DEVELOPMENT_DESCRIPTION
+  "All of the tools you'll ever need to develop software")
+
+# It doesn't make sense to install the headers without the libraries
+# (because you could never use the headers!), so make the headers component
+# depend on the libraries component.
+set(CPACK_COMPONENT_HEADERS_DEPENDS libraries)
+
+# Create two installation types with pre-selected components.
+# The "Developer" installation has just the library and headers,
+# while the "Full" installation has everything.
+set(CPACK_ALL_INSTALL_TYPES Full Developer)
+set(CPACK_INSTALL_TYPE_FULL_DISPLAY_NAME "Everything")
+set(CPACK_COMPONENT_LIBRARIES_INSTALL_TYPES Developer Full)
+set(CPACK_COMPONENT_HEADERS_INSTALL_TYPES Developer Full)
+set(CPACK_COMPONENT_APPLICATIONS_INSTALL_TYPES Full)
+
+# We may use the CPack specific config file in order
+# to tailor CPack behavio on a CPack generator specific way
+# (Behavior would be different for RPM or TGZ or DEB ...)
+if (USE_CPACK_PROJECT_CONFIG)
+  # Setup project specific CPack-time CPack Config file.
+  configure_file(${MyLib_SOURCE_DIR}/MyLibCPackConfig.cmake.in
+    ${MyLib_BINARY_DIR}/MyLibCPackConfig.cmake
+    @ONLY)
+  set(CPACK_PROJECT_CONFIG_FILE ${MyLib_BINARY_DIR}/MyLibCPackConfig.cmake)
+endif (USE_CPACK_PROJECT_CONFIG)
+# Include CPack to introduce the appropriate targets
+include(CPack)
\ No newline at end of file
diff --git a/Tests/CPackComponentsForAll/MyLibCPackConfig.cmake.in b/Tests/CPackComponentsForAll/MyLibCPackConfig.cmake.in
new file mode 100644
index 0000000..7ffafae
--- /dev/null
+++ b/Tests/CPackComponentsForAll/MyLibCPackConfig.cmake.in
@@ -0,0 +1,7 @@
+if(CPACK_GENERATOR MATCHES "ZIP")
+#  set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1)
+endif(CPACK_GENERATOR MATCHES "ZIP")
+
+if(CPACK_GENERATOR MATCHES "TGZ")
+  set(CPACK_MONOLITHIC_INSTALL 1)
+endif(CPACK_GENERATOR MATCHES "TGZ")
diff --git a/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake b/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake
new file mode 100644
index 0000000..6b471ca
--- /dev/null
+++ b/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake
@@ -0,0 +1,46 @@
+message(STATUS "=============================================================================")
+message(STATUS "CTEST_FULL_OUTPUT (Avoid ctest truncation of output)")
+message(STATUS "")
+
+if(NOT CPackComponentsForAll_BINARY_DIR)
+  message(FATAL_ERROR "CPackComponentsForAll_BINARY_DIR not set")
+endif(NOT CPackComponentsForAll_BINARY_DIR)
+
+if(NOT CPackGen)
+  message(FATAL_ERROR "CPackGen not set")
+endif(NOT CPackGen)
+
+if(NOT CPackCommand)
+  message(FATAL_ERROR "CPackCommand not set")
+endif(NOT CPackCommand)
+set(expected_file_mask "")
+
+execute_process(COMMAND ${CPackCommand} -G ${CPackGen}
+    RESULT_VARIABLE result
+    OUTPUT_VARIABLE stdout
+    ERROR_VARIABLE stderr
+    WORKING_DIRECTORY ${CPackComponentsForAll_BINARY_DIR})
+
+if(CPackGen MATCHES "ZIP")
+    set(expected_file_mask "${CPackComponentsForAll_BINARY_DIR}/MyLib-*.zip")
+    set(expected_count 2)
+endif(CPackGen MATCHES "ZIP")
+
+
+if(expected_file_mask)
+  file(GLOB expected_file "${expected_file_mask}")
+
+  message(STATUS "expected_count='${expected_count}'")
+  message(STATUS "expected_file='${expected_file}'")
+  message(STATUS "expected_file_mask='${expected_file_mask}'")
+
+  if(NOT expected_file)
+    message(FATAL_ERROR "error: expected_file does not exist: CPackComponentsForAll test fails.")
+  endif(NOT expected_file)
+
+  list(LENGTH expected_file actual_count)
+  message(STATUS "actual_count='${actual_count}'")
+  if(NOT actual_count EQUAL expected_count)
+    message(FATAL_ERROR "error: expected_count does not match actual_count: CPackComponents test fails.")
+  endif(NOT actual_count EQUAL expected_count)
+endif(expected_file_mask)
diff --git a/Tests/CPackComponentsForAll/mylib.cpp b/Tests/CPackComponentsForAll/mylib.cpp
new file mode 100644
index 0000000..8ddac19
--- /dev/null
+++ b/Tests/CPackComponentsForAll/mylib.cpp
@@ -0,0 +1,7 @@
+#include "mylib.h"
+#include "stdio.h"
+
+void mylib_function()
+{
+  printf("This is mylib");
+}
diff --git a/Tests/CPackComponentsForAll/mylib.h b/Tests/CPackComponentsForAll/mylib.h
new file mode 100644
index 0000000..5d0a822
--- /dev/null
+++ b/Tests/CPackComponentsForAll/mylib.h
@@ -0,0 +1 @@
+void mylib_function();
diff --git a/Tests/CPackComponentsForAll/mylibapp.cpp b/Tests/CPackComponentsForAll/mylibapp.cpp
new file mode 100644
index 0000000..a438ac7
--- /dev/null
+++ b/Tests/CPackComponentsForAll/mylibapp.cpp
@@ -0,0 +1,6 @@
+#include "mylib.h"
+
+int main()
+{
+  mylib_function();
+}

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

Summary of changes:
 Tests/CMakeLists.txt                               |   29 +++++
 Tests/CPackComponentsForAll/CMakeLists.txt         |  120 ++++++++++++++++++++
 .../MyLibCPackConfig.cmake.in                      |    7 +
 .../RunCPackVerifyResult.cmake                     |   57 +++++++++
 .../mylib.cpp                                      |    0
 .../mylib.h                                        |    0
 .../mylibapp.cpp                                   |    0
 7 files changed, 213 insertions(+), 0 deletions(-)
 create mode 100644 Tests/CPackComponentsForAll/CMakeLists.txt
 create mode 100644 Tests/CPackComponentsForAll/MyLibCPackConfig.cmake.in
 create mode 100644 Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake
 copy Tests/{CPackComponents => CPackComponentsForAll}/mylib.cpp (100%)
 copy Tests/{CPackComponents => CPackComponentsForAll}/mylib.h (100%)
 copy Tests/{CPackComponents => CPackComponentsForAll}/mylibapp.cpp (100%)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list