[Cmake-commits] CMake branch, next, updated. v2.8.4-1157-gce41ad3

Eric Noulard eric.noulard at gmail.com
Sun Mar 13 16:17:09 EDT 2011


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  ce41ad395bf19d0568079be2cf60b24713001399 (commit)
       via  a20102862629db49980b52f5088eae79d961237a (commit)
      from  d1c5b349a4120546a3be089a8d5a93914abb66c9 (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=ce41ad395bf19d0568079be2cf60b24713001399
commit ce41ad395bf19d0568079be2cf60b24713001399
Merge: d1c5b34 a201028
Author:     Eric Noulard <eric.noulard at gmail.com>
AuthorDate: Sun Mar 13 16:17:02 2011 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Sun Mar 13 16:17:02 2011 -0400

    Merge topic 'CPackRPM-TestWithMoreTraces' into next
    
    a201028 CPack try to please SUSE 64 bits and install lib in lib64 and not lib.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a20102862629db49980b52f5088eae79d961237a
commit a20102862629db49980b52f5088eae79d961237a
Author:     Eric NOULARD <eric.noulard at gmail.com>
AuthorDate: Sun Mar 13 21:15:49 2011 +0100
Commit:     Eric NOULARD <eric.noulard at gmail.com>
CommitDate: Sun Mar 13 21:15:49 2011 +0100

    CPack try to please SUSE 64 bits and install lib in lib64 and not lib.

diff --git a/Tests/CPackComponentsForAll/CMakeLists.txt b/Tests/CPackComponentsForAll/CMakeLists.txt
index bcec509..ce12b3b 100644
--- a/Tests/CPackComponentsForAll/CMakeLists.txt
+++ b/Tests/CPackComponentsForAll/CMakeLists.txt
@@ -10,6 +10,14 @@
 cmake_minimum_required(VERSION 2.8.3.20101130 FATAL_ERROR)
 project(CPackComponentsForAll)
 
+set(LIBDEST "lib")
+include(${CMAKE_SOURCE_DIR}/SystemSpecificInformations.cmake)
+if(DISTRO_ID MATCHES "SUSE")
+   if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
+     set(LIBDEST "lib64")
+   endif("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
+endif(DISTRO_ID MATCHES "SUSE")
+
 # Create the mylib library
 add_library(mylib mylib.cpp)
 
@@ -27,7 +35,7 @@ target_link_libraries(mylibapp2 mylib)
 # be used to create the installation components.
 install(TARGETS mylib
   ARCHIVE
-  DESTINATION lib
+  DESTINATION ${LIBDEST}
   COMPONENT libraries)
 install(TARGETS mylibapp
   RUNTIME
diff --git a/Tests/CPackComponentsForAll/SystemSpecificInformations.cmake b/Tests/CPackComponentsForAll/SystemSpecificInformations.cmake
new file mode 100644
index 0000000..942cb2b
--- /dev/null
+++ b/Tests/CPackComponentsForAll/SystemSpecificInformations.cmake
@@ -0,0 +1,164 @@
+
+# define a set of string with may-be useful readable name
+# this file is meant to be included in a CMakeLists.txt
+# not as a standalone CMake script
+set(SPECIFIC_COMPILER_NAME "")
+set(SPECIFIC_SYSTEM_VERSION_NAME "")
+set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "")
+
+# In the WIN32 case try to guess a "readable system name"
+if(WIN32)
+  set(SPECIFIC_SYSTEM_PREFERED_PACKAGE "NSIS")
+  # information taken from
+  # http://www.codeguru.com/cpp/w-p/system/systeminformation/article.php/c8973/
+  # Win9x series
+  if(CMAKE_SYSTEM_VERSION MATCHES "4.0")
+    set(SPECIFIC_SYSTEM_VERSION_NAME "Win95")
+  endif(CMAKE_SYSTEM_VERSION MATCHES "4.0")
+  if(CMAKE_SYSTEM_VERSION MATCHES "4.10")
+    set(SPECIFIC_SYSTEM_VERSION_NAME "Win98")
+  endif(CMAKE_SYSTEM_VERSION MATCHES "4.10")
+  if(CMAKE_SYSTEM_VERSION MATCHES "4.90")
+    set(SPECIFIC_SYSTEM_VERSION_NAME "WinME")
+  endif(CMAKE_SYSTEM_VERSION MATCHES "4.90")
+
+  # WinNTyyy series
+  if(CMAKE_SYSTEM_VERSION MATCHES "3.0")
+    set(SPECIFIC_SYSTEM_VERSION_NAME "WinNT351")
+  endif(CMAKE_SYSTEM_VERSION MATCHES "3.0")
+  if(CMAKE_SYSTEM_VERSION MATCHES "4.1")
+    set(SPECIFIC_SYSTEM_VERSION_NAME "WinNT4")
+  endif(CMAKE_SYSTEM_VERSION MATCHES "4.1")
+
+  # Win2000/XP series
+  if(CMAKE_SYSTEM_VERSION MATCHES "5.0")
+    set(SPECIFIC_SYSTEM_VERSION_NAME "Win2000")
+  endif(CMAKE_SYSTEM_VERSION MATCHES "5.0")
+  if(CMAKE_SYSTEM_VERSION MATCHES "5.1")
+    set(SPECIFIC_SYSTEM_VERSION_NAME "WinXP")
+  endif(CMAKE_SYSTEM_VERSION MATCHES "5.1")
+  if(CMAKE_SYSTEM_VERSION MATCHES "5.2")
+    set(SPECIFIC_SYSTEM_VERSION_NAME "Win2003")
+  endif(CMAKE_SYSTEM_VERSION MATCHES "5.2")
+
+  # WinVista/7 series
+  if(CMAKE_SYSTEM_VERSION MATCHES "6.0")
+    set(SPECIFIC_SYSTEM_VERSION_NAME "WinVISTA")
+  endif(CMAKE_SYSTEM_VERSION MATCHES "6.0")
+  if(CMAKE_SYSTEM_VERSION MATCHES "6.1")
+    set(SPECIFIC_SYSTEM_VERSION_NAME "Win7")
+  endif(CMAKE_SYSTEM_VERSION MATCHES "6.1")
+
+  # Compilers
+  # taken from http://predef.sourceforge.net/precomp.html#sec34
+  if(MSVC)
+    set(SPECIFIC_COMPILER_NAME "MSVC-Unknown-${MSVC_VERSION}")
+    if(MSVC_VERSION EQUAL 1200)
+      set(SPECIFIC_COMPILER_NAME "MSVC-6.0")
+    endif(MSVC_VERSION EQUAL 1200)
+    if(MSVC_VERSION EQUAL 1300)
+      set(SPECIFIC_COMPILER_NAME "MSVC-7.0")
+    endif(MSVC_VERSION EQUAL 1300)
+    if(MSVC_VERSION EQUAL 1310)
+      set(SPECIFIC_COMPILER_NAME "MSVC-7.1-2003") #Visual Studio 2003
+    endif(MSVC_VERSION EQUAL 1310)
+    if(MSVC_VERSION EQUAL 1400)
+      set(SPECIFIC_COMPILER_NAME "MSVC-8.0-2005") #Visual Studio 2005
+    endif(MSVC_VERSION EQUAL 1400)
+    if(MSVC_VERSION EQUAL 1500)
+      set(SPECIFIC_COMPILER_NAME "MSVC-9.0-2008") #Visual Studio 2008
+    endif(MSVC_VERSION EQUAL 1500)
+    if(MSVC_VERSION EQUAL 1600)
+      set(SPECIFIC_COMPILER_NAME "MSVC-10.0-2010") #Visual Studio 2010
+    endif(MSVC_VERSION EQUAL 1600)
+  endif(MSVC)
+  if(MINGW)
+    set(SPECIFIC_COMPILER_NAME "MinGW")
+  endif(MINGW)
+  if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
+    set(SPECIFIC_SYSTEM_VERSION_NAME "${SPECIFIC_SYSTEM_VERSION_NAME}-x86_64")
+  endif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
+endif(WIN32)
+
+# In the Linux case try to guess the distro name/type
+# using either lsb_release program or fallback
+# to the content of the /etc/issue file
+if(UNIX)
+  if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+    set(SPECIFIC_SYSTEM_VERSION_NAME "${CMAKE_SYSTEM_NAME}")
+    set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "TGZ")
+    find_program(LSB_RELEASE_EXECUTABLE lsb_release)
+    if(LSB_RELEASE_EXECUTABLEF)
+      execute_process(COMMAND ${LSB_RELEASE_EXECUTABLE} -i
+                      OUTPUT_VARIABLE _TMP_LSB_RELEASE_OUTPUT
+                      ERROR_QUIET
+                      OUTPUT_STRIP_TRAILING_WHITESPACE)
+      string(REGEX MATCH "Distributor ID:(.*)" DISTRO_ID ${_TMP_LSB_RELEASE_OUTPUT})
+      string(STRIP "${CMAKE_MATCH_1}" DISTRO_ID)
+      # replace potential space with underscore
+      string(REPLACE " " "_" DISTRO_ID "${DISTRO_ID}")
+      execute_process(COMMAND ${LSB_RELEASE_EXECUTABLE} -r
+                      OUTPUT_VARIABLE _TMP_LSB_RELEASE_OUTPUT
+                      ERROR_QUIET
+                      OUTPUT_STRIP_TRAILING_WHITESPACE)
+      string(REGEX MATCH "Release:(.*)" DISTRO_RELEASE ${_TMP_LSB_RELEASE_OUTPUT})
+      string(STRIP "${CMAKE_MATCH_1}" DISTRO_RELEASE)
+      execute_process(COMMAND ${LSB_RELEASE_EXECUTABLE} -c
+                      OUTPUT_VARIABLE _TMP_LSB_RELEASE_OUTPUT
+                      ERROR_QUIET
+                      OUTPUT_STRIP_TRAILING_WHITESPACE)
+      string(REGEX MATCH "Codename:(.*)" DISTRO_CODENAME ${_TMP_LSB_RELEASE_OUTPUT})
+      string(STRIP "${CMAKE_MATCH_1}" DISTRO_CODENAME)
+    elseif (EXISTS "/etc/issue")
+      set(LINUX_NAME "")
+      file(READ "/etc/issue" LINUX_ISSUE)
+      # Fedora case
+      if(LINUX_ISSUE MATCHES "Fedora")
+        string(REGEX MATCH "release ([0-9]+)" FEDORA "${LINUX_ISSUE}")
+        set(DISTRO_ID "Fedora")
+        set(DISTRO_RELEASE "${CMAKE_MATCH_1}")
+        # FIXME can we find that in /etc/issue
+        set(DISTRO_CODENAME "")
+      endif(LINUX_ISSUE MATCHES "Fedora")
+      # Ubuntu case
+      if(LINUX_ISSUE MATCHES "Ubuntu")
+        string(REGEX MATCH "buntu ([0-9]+\\.[0-9]+)" UBUNTU "${LINUX_ISSUE}")
+        set(DISTRO_ID "Ubuntu")
+        set(DISTRO_RELEASE "${CMAKE_MATCH_1}")
+        # FIXME can we find that in /etc/issue
+        set(DISTRO_CODENAME "")
+      endif(LINUX_ISSUE MATCHES "Ubuntu")
+      # Debian case
+      if(LINUX_ISSUE MATCHES "Debian")
+        string(REGEX MATCH "Debian .*ux ([0-9]+\\.[0-9]+)"
+               DEBIAN "${LINUX_ISSUE}")
+        set(DISTRO_ID "Debian")
+        set(DISTRO_RELEASE "${CMAKE_MATCH_1}")
+        set(DISTRO_CODENAME "")
+      endif(LINUX_ISSUE MATCHES "Debian")
+      # Open SuSE case
+      if(LINUX_ISSUE MATCHES "SUSE")
+        string(REGEX MATCH "SUSE ([0-9]+\\.[0-9]+)" SUSE "${LINUX_ISSUE}")
+        set(DISTRO_ID "SUSE")
+        set(DISTRO_RELEASE "${CMAKE_MATCH_1}")
+        set(DISTRO_CODENAME "")
+      endif(LINUX_ISSUE MATCHES "SUSE")
+      # Mandriva case
+      # TODO
+    endif(LSB_RELEASE_EXECUTABLEF)
+    # Now mangle some names
+    set(LINUX_NAME "${DISTRO_ID}_${DISTRO_RELEASE}")
+    if(DISTRO_ID MATCHES "Fedora|Mandriva|SUSE|OpenSUSE")
+      set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "RPM")
+    endif(DISTRO_ID MATCHES "Fedora|Mandriva|SUSE|OpenSUSE")
+    if(DISTRO_ID MATCHES "Debian|Ubuntu")
+      set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "DEB")
+    endif(DISTRO_ID MATCHES "Debian|Ubuntu")
+    if(LINUX_NAME)
+      set(SPECIFIC_SYSTEM_VERSION_NAME "${CMAKE_SYSTEM_NAME}-${LINUX_NAME}")
+    endif(LINUX_NAME)
+  endif(CMAKE_SYSTEM_NAME MATCHES "Linux")
+  set(SPECIFIC_SYSTEM_VERSION_NAME
+     "${SPECIFIC_SYSTEM_VERSION_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
+  set(SPECIFIC_COMPILER_NAME "")
+endif(UNIX)
\ No newline at end of file

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

Summary of changes:
 Tests/CPackComponentsForAll/CMakeLists.txt         |   10 +-
 .../SystemSpecificInformations.cmake               |  164 ++++++++++++++++++++
 2 files changed, 173 insertions(+), 1 deletions(-)
 create mode 100644 Tests/CPackComponentsForAll/SystemSpecificInformations.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list