certi-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[certi-cvs] certi CMakeLists.txt scripts/SystemSpecificInfo...


From: certi-cvs
Subject: [certi-cvs] certi CMakeLists.txt scripts/SystemSpecificInfo...
Date: Sun, 13 Mar 2011 19:58:35 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     Eric NOULARD <erk>      11/03/13 19:58:35

Modified files:
        .              : CMakeLists.txt 
        scripts        : SystemSpecificInformations.cmake 
                         GeneratePackageType.cmake 

Log message:
        Update SystemSpecificInformations

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/CMakeLists.txt?cvsroot=certi&r1=1.96&r2=1.97
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/SystemSpecificInformations.cmake?cvsroot=certi&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/GeneratePackageType.cmake?cvsroot=certi&r1=1.1&r2=1.2

Patches:
Index: CMakeLists.txt
===================================================================
RCS file: /sources/certi/certi/CMakeLists.txt,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -b -r1.96 -r1.97
--- CMakeLists.txt      9 Jan 2011 18:01:45 -0000       1.96
+++ CMakeLists.txt      13 Mar 2011 19:58:34 -0000      1.97
@@ -386,7 +386,12 @@
 
 # Handle CPack-generator specific configuration
 ADD_CUSTOM_TARGET(PACKAGE_TYPE
-                 COMMAND ${CMAKE_COMMAND} -DSRCDIR="${CERTI_SOURCE_DIR}" 
-DDSTDIR="${CERTI_BINARY_DIR}" -DMSVC=${MSVC} 
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CFG_INTDIR=${CMAKE_CFG_INTDIR} 
-P ${CERTI_SOURCE_DIR}/scripts/GeneratePackageType.cmake)
+       COMMAND ${CMAKE_COMMAND} 
+                 -DSRCDIR="${CERTI_SOURCE_DIR}"
+                 -DDSTDIR="${CERTI_BINARY_DIR}"
+                 -DMSVC=${MSVC} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} 
+                 -DCMAKE_CFG_INTDIR=${CMAKE_CFG_INTDIR}
+                 -P ${CERTI_SOURCE_DIR}/scripts/GeneratePackageType.cmake)
                   
 CONFIGURE_FILE("${CERTI_SOURCE_DIR}/CERTICPackOptions.cmake.in"
                "${CERTI_BINARY_DIR}/CERTICPackOptions.cmake" @ONLY)
@@ -452,9 +457,9 @@
 
 include(SystemSpecificInformations)
 
-IF (SPECIFIC_COMPILER_NAME)
+IF(SPECIFIC_COMPILER_NAME)
     SET(CPACK_SYSTEM_NAME 
${SPECIFIC_SYSTEM_VERSION_NAME}-${SPECIFIC_COMPILER_NAME})
-ELSE (SPECIFIC_COMPILER_NAME)
+ELSE(SPECIFIC_COMPILER_NAME)
     SET(CPACK_SYSTEM_NAME ${SPECIFIC_SYSTEM_VERSION_NAME})
 ENDIF(SPECIFIC_COMPILER_NAME)
 

Index: scripts/SystemSpecificInformations.cmake
===================================================================
RCS file: /sources/certi/certi/scripts/SystemSpecificInformations.cmake,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- scripts/SystemSpecificInformations.cmake    11 Nov 2010 17:22:40 -0000      
1.7
+++ scripts/SystemSpecificInformations.cmake    13 Mar 2011 19:58:35 -0000      
1.8
@@ -6,10 +6,11 @@
 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/
+  # 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")
@@ -50,7 +51,7 @@
 
     # Compilers
        # taken from http://predef.sourceforge.net/precomp.html#sec34
-     if (MSVC)
+  if(MSVC)
        set(SPECIFIC_COMPILER_NAME "MSVC-Unknown-${MSVC_VERSION}")
        if(MSVC_VERSION EQUAL 1200)
             set(SPECIFIC_COMPILER_NAME "MSVC-6.0")
@@ -71,54 +72,93 @@
             set(SPECIFIC_COMPILER_NAME "MSVC-10.0-2010") #Visual Studio 2010
        endif(MSVC_VERSION EQUAL 1600)
      endif(MSVC)
-       IF (MINGW)
+  if(MINGW)
           set(SPECIFIC_COMPILER_NAME "MinGW")
        endif(MINGW)
-       IF (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
+  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")
-    if(EXISTS "/etc/issue")
+    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(LINUX_NAME "FC${CMAKE_MATCH_1}")  
-        set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "RPM")      
+        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(LINUX_NAME "Ubuntu_${CMAKE_MATCH_1}")        
-        set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "DEB")
+        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 ([a-zA-Z]*/?[a-zA-Z]*) .*" DEBIAN 
"${LINUX_ISSUE}")
-        set(LINUX_NAME "Debian_${CMAKE_MATCH_1}")
-        string(REPLACE "/" "_" LINUX_NAME ${LINUX_NAME}) 
-        set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "DEB")       
+        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(LINUX_NAME "openSUSE_${CMAKE_MATCH_1}")
-        string(REPLACE "/" "_" LINUX_NAME ${LINUX_NAME})   
-        set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "RPM")     
+        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(EXISTS "/etc/issue")      
   endif(CMAKE_SYSTEM_NAME MATCHES "Linux")
-  set(SPECIFIC_SYSTEM_VERSION_NAME 
"${SPECIFIC_SYSTEM_VERSION_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
+  set(SPECIFIC_SYSTEM_VERSION_NAME
+     "${SPECIFIC_SYSTEM_VERSION_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
   set(SPECIFIC_COMPILER_NAME "")
 endif(UNIX)

Index: scripts/GeneratePackageType.cmake
===================================================================
RCS file: /sources/certi/certi/scripts/GeneratePackageType.cmake,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2



reply via email to

[Prev in Thread] Current Thread [Next in Thread]