Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
CMake
CMake
Commits
a2010286
Commit
a2010286
authored
Mar 13, 2011
by
Eric Noulard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CPack try to please SUSE 64 bits and install lib in lib64 and not lib.
parent
7ebbcf19
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
173 additions
and
1 deletion
+173
-1
Tests/CPackComponentsForAll/CMakeLists.txt
Tests/CPackComponentsForAll/CMakeLists.txt
+9
-1
Tests/CPackComponentsForAll/SystemSpecificInformations.cmake
Tests/CPackComponentsForAll/SystemSpecificInformations.cmake
+164
-0
No files found.
Tests/CPackComponentsForAll/CMakeLists.txt
View file @
a2010286
...
...
@@ -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
...
...
Tests/CPackComponentsForAll/SystemSpecificInformations.cmake
0 → 100644
View file @
a2010286
# 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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment