Merge commit 'upstream/2.8.3' into experimental
Conflicts: .gitattributes
This commit is contained in:
commit
530e7bd66c
6
.gitattributes
vendored
6
.gitattributes
vendored
@ -13,4 +13,8 @@ configure crlf=input
|
||||
*.sln -crlf
|
||||
*.vcproj -crlf
|
||||
|
||||
debian/changelog merge=dpkg-mergechangelogs
|
||||
*.c whitespace=tab-in-indent
|
||||
*.h whitespace=tab-in-indent
|
||||
*.cxx whitespace=tab-in-indent
|
||||
*.txt whitespace=tab-in-indent
|
||||
*.cmake whitespace=tab-in-indent
|
||||
|
@ -69,18 +69,25 @@ MACRO(CMAKE_HANDLE_SYSTEM_LIBRARIES)
|
||||
CACHE BOOL "Use system-installed expat" FORCE)
|
||||
SET(CMAKE_USE_SYSTEM_ZLIB "${CMAKE_USE_SYSTEM_LIBRARIES}"
|
||||
CACHE BOOL "Use system-installed zlib" FORCE)
|
||||
SET(CMAKE_USE_SYSTEM_BZIP2 "${CMAKE_USE_SYSTEM_LIBRARIES}"
|
||||
CACHE BOOL "Use system-installed bzip2" FORCE)
|
||||
SET(CMAKE_USE_SYSTEM_LIBARCHIVE "${CMAKE_USE_SYSTEM_LIBRARIES}"
|
||||
CACHE BOOL "Use system-installed libarchive" FORCE)
|
||||
ENDIF(CMAKE_USE_SYSTEM_LIBRARIES_USER)
|
||||
|
||||
# Optionally use system utility libraries.
|
||||
OPTION(CMAKE_USE_SYSTEM_LIBARCHIVE "Use system-installed libarchive" ${CMAKE_USE_SYSTEM_LIBRARIES})
|
||||
CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_CURL "Use system-installed curl"
|
||||
${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CTEST_USE_XMLRPC" ON)
|
||||
CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_EXPAT "Use system-installed expat"
|
||||
${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CTEST_USE_XMLRPC" ON)
|
||||
CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_ZLIB "Use system-installed zlib"
|
||||
${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CMAKE_USE_SYSTEM_CURL" ON)
|
||||
${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CMAKE_USE_SYSTEM_LIBARCHIVE;NOT CMAKE_USE_SYSTEM_CURL" ON)
|
||||
CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_BZIP2 "Use system-installed bzip2"
|
||||
${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CMAKE_USE_SYSTEM_LIBARCHIVE" ON)
|
||||
|
||||
# Mention to the user what system libraries are being used.
|
||||
FOREACH(util CURL EXPAT XMLRPC ZLIB)
|
||||
FOREACH(util BZIP2 CURL EXPAT LIBARCHIVE ZLIB)
|
||||
IF(CMAKE_USE_SYSTEM_${util})
|
||||
MESSAGE(STATUS "Using system-installed ${util}")
|
||||
ENDIF(CMAKE_USE_SYSTEM_${util})
|
||||
@ -173,6 +180,36 @@ MACRO(CMAKE_SETUP_TESTING)
|
||||
ENDMACRO(CMAKE_SETUP_TESTING)
|
||||
|
||||
|
||||
# Provide a way for Visual Studio Express users to turn OFF the new FOLDER
|
||||
# organization feature. Default to ON for non-Express users. Express users must
|
||||
# explicitly turn off this option to build CMake in the Express IDE...
|
||||
#
|
||||
OPTION(CMAKE_USE_FOLDERS "Enable folder grouping of projects in IDEs." ON)
|
||||
MARK_AS_ADVANCED(CMAKE_USE_FOLDERS)
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# a macro that only sets the FOLDER target property if it's
|
||||
# "appropriate"
|
||||
#-----------------------------------------------------------------------
|
||||
MACRO(CMAKE_SET_TARGET_FOLDER tgt folder)
|
||||
IF(CMAKE_USE_FOLDERS)
|
||||
SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
||||
# Really, I just want this to be an "if(TARGET ${tgt})" ...
|
||||
# but I'm not sure that our min req'd., CMake 2.4.5 can handle
|
||||
# that... so I'm just activating this for now, with a version
|
||||
# compare, and only for MSVC builds.
|
||||
IF(MSVC)
|
||||
IF(NOT ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.8)
|
||||
SET_PROPERTY(TARGET "${tgt}" PROPERTY FOLDER "${folder}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ELSE()
|
||||
SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS OFF)
|
||||
ENDIF()
|
||||
ENDMACRO(CMAKE_SET_TARGET_FOLDER)
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# a macro to build the utilities used by CMake
|
||||
@ -192,7 +229,17 @@ MACRO (CMAKE_BUILD_UTILITIES)
|
||||
SET(KWSYS_HEADER_ROOT ${CMake_BINARY_DIR}/Source)
|
||||
SET(KWSYS_INSTALL_DOC_DIR "${CMake_DOC_DEST}")
|
||||
ADD_SUBDIRECTORY(Source/kwsys)
|
||||
|
||||
SET(kwsys_folder "Utilities/KWSys")
|
||||
CMAKE_SET_TARGET_FOLDER(${KWSYS_NAMESPACE} "${kwsys_folder}")
|
||||
CMAKE_SET_TARGET_FOLDER(${KWSYS_NAMESPACE}_c "${kwsys_folder}")
|
||||
CMAKE_SET_TARGET_FOLDER(${KWSYS_NAMESPACE}EncodeExecutable "${kwsys_folder}")
|
||||
CMAKE_SET_TARGET_FOLDER(${KWSYS_NAMESPACE}ProcessFwd9x "${kwsys_folder}")
|
||||
CMAKE_SET_TARGET_FOLDER(${KWSYS_NAMESPACE}TestDynload "${kwsys_folder}")
|
||||
CMAKE_SET_TARGET_FOLDER(${KWSYS_NAMESPACE}TestProcess "${kwsys_folder}")
|
||||
CMAKE_SET_TARGET_FOLDER(${KWSYS_NAMESPACE}TestsC "${kwsys_folder}")
|
||||
CMAKE_SET_TARGET_FOLDER(${KWSYS_NAMESPACE}TestsCxx "${kwsys_folder}")
|
||||
CMAKE_SET_TARGET_FOLDER(${KWSYS_NAMESPACE}TestSharedForward "${kwsys_folder}")
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Setup third-party libraries.
|
||||
# Everything in the tree should be able to include files from the
|
||||
@ -221,6 +268,7 @@ MACRO (CMAKE_BUILD_UTILITIES)
|
||||
SET(CMAKE_ZLIB_INCLUDES)
|
||||
SET(CMAKE_ZLIB_LIBRARIES cmzlib)
|
||||
ADD_SUBDIRECTORY(Utilities/cmzlib)
|
||||
CMAKE_SET_TARGET_FOLDER(cmzlib "Utilities/3rdParty")
|
||||
ENDIF(CMAKE_USE_SYSTEM_ZLIB)
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
@ -247,6 +295,8 @@ MACRO (CMAKE_BUILD_UTILITIES)
|
||||
SET(CMAKE_CURL_TEST_URL "${CMAKE_TESTS_CDASH_SERVER}/user.php")
|
||||
ENDIF(CMAKE_TESTS_CDASH_SERVER)
|
||||
ADD_SUBDIRECTORY(Utilities/cmcurl)
|
||||
CMAKE_SET_TARGET_FOLDER(cmcurl "Utilities/3rdParty")
|
||||
CMAKE_SET_TARGET_FOLDER(LIBCURL "Utilities/3rdParty")
|
||||
ENDIF(CMAKE_USE_SYSTEM_CURL)
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
@ -255,6 +305,7 @@ MACRO (CMAKE_BUILD_UTILITIES)
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/Utilities/cmcompress")
|
||||
SET(CMAKE_COMPRESS_LIBRARIES "cmcompress")
|
||||
ADD_SUBDIRECTORY(Utilities/cmcompress)
|
||||
CMAKE_SET_TARGET_FOLDER(cmcompress "Utilities/3rdParty")
|
||||
IF(CMAKE_USE_SYSTEM_BZIP2)
|
||||
FIND_PACKAGE(BZip2)
|
||||
ELSE()
|
||||
@ -262,10 +313,22 @@ MACRO (CMAKE_BUILD_UTILITIES)
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Utilities/cmbzip2")
|
||||
SET(BZIP2_LIBRARIES cmbzip2)
|
||||
ADD_SUBDIRECTORY(Utilities/cmbzip2)
|
||||
CMAKE_SET_TARGET_FOLDER(cmbzip2 "Utilities/3rdParty")
|
||||
ENDIF()
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Build or use system libarchive for CMake and CTest.
|
||||
IF(CMAKE_USE_SYSTEM_LIBARCHIVE)
|
||||
FIND_PACKAGE(libarchive)
|
||||
SET(CMAKE_TAR_LIBRARIES libarchive)
|
||||
IF(EXISTS ${CMAKE_ROOT}/Modules/FindLibArchive.cmake)
|
||||
FIND_PACKAGE(LibArchive)
|
||||
ELSE()
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0 FATAL_ERROR)
|
||||
INCLUDE(${CMake_SOURCE_DIR}/Modules/FindLibArchive.cmake)
|
||||
ENDIF()
|
||||
IF(NOT LibArchive_FOUND)
|
||||
MESSAGE(FATAL_ERROR "CMAKE_USE_SYSTEM_LIBARCHIVE is ON but LibArchive is not found!")
|
||||
ENDIF()
|
||||
SET(CMAKE_TAR_LIBRARIES ${LibArchive_LIBRARIES})
|
||||
ELSE(CMAKE_USE_SYSTEM_LIBARCHIVE)
|
||||
SET(HAVE_LIBZ 1)
|
||||
SET(HAVE_ZLIB_H 1)
|
||||
@ -275,6 +338,7 @@ MACRO (CMAKE_BUILD_UTILITIES)
|
||||
SET(BUILD_ARCHIVE_WITHIN_CMAKE TRUE)
|
||||
ADD_DEFINITIONS(-DLIBARCHIVE_STATIC)
|
||||
ADD_SUBDIRECTORY(Utilities/cmlibarchive)
|
||||
CMAKE_SET_TARGET_FOLDER(cmlibarchive "Utilities/3rdParty")
|
||||
SET(CMAKE_TAR_LIBRARIES cmlibarchive ${BZIP2_LIBRARIES})
|
||||
ENDIF(CMAKE_USE_SYSTEM_LIBARCHIVE)
|
||||
|
||||
@ -292,6 +356,7 @@ MACRO (CMAKE_BUILD_UTILITIES)
|
||||
SET(CMAKE_EXPAT_INCLUDES)
|
||||
SET(CMAKE_EXPAT_LIBRARIES cmexpat)
|
||||
ADD_SUBDIRECTORY(Utilities/cmexpat)
|
||||
CMAKE_SET_TARGET_FOLDER(cmexpat "Utilities/3rdParty")
|
||||
ENDIF(CMAKE_USE_SYSTEM_EXPAT)
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
@ -330,7 +395,21 @@ MACRO (CMAKE_BUILD_UTILITIES)
|
||||
ENDIF(BUILD_CursesDialog)
|
||||
ENDMACRO (CMAKE_BUILD_UTILITIES)
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
IF(CMAKE_CXX_PLATFORM_ID MATCHES "OpenBSD")
|
||||
EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER}
|
||||
${CMAKE_CXX_COMPILER_ARG1} -dumpversion
|
||||
OUTPUT_VARIABLE _GXX_VERSION
|
||||
)
|
||||
STRING(REGEX REPLACE "([0-9])\\.([0-9])(\\.[0-9])?" "\\1\\2"
|
||||
_GXX_VERSION_SHORT ${_GXX_VERSION})
|
||||
IF(_GXX_VERSION_SHORT EQUAL 33)
|
||||
MESSAGE(FATAL_ERROR
|
||||
"GXX 3.3 on OpenBSD is known to cause CPack to Crash.\n"
|
||||
"Please use GXX 4.2 or greater to build CMake on OpenBSD\n"
|
||||
"${CMAKE_CXX_COMPILER} version is: ${_GXX_VERSION}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# The main section of the CMakeLists file
|
||||
@ -339,7 +418,7 @@ ENDMACRO (CMAKE_BUILD_UTILITIES)
|
||||
# The CMake version number.
|
||||
SET(CMake_VERSION_MAJOR 2)
|
||||
SET(CMake_VERSION_MINOR 8)
|
||||
SET(CMake_VERSION_PATCH 2)
|
||||
SET(CMake_VERSION_PATCH 3)
|
||||
SET(CMake_VERSION_TWEAK 0)
|
||||
#SET(CMake_VERSION_RC 4)
|
||||
|
||||
@ -521,6 +600,10 @@ ADD_SUBDIRECTORY(Source)
|
||||
ADD_SUBDIRECTORY(Utilities)
|
||||
ADD_SUBDIRECTORY(Tests)
|
||||
|
||||
CMAKE_SET_TARGET_FOLDER(CMakeLibTests "Tests")
|
||||
CMAKE_SET_TARGET_FOLDER(cmw9xcom "Utilities/Win9xCompat")
|
||||
CMAKE_SET_TARGET_FOLDER(documentation "Documentation")
|
||||
|
||||
# add a test
|
||||
ADD_TEST(SystemInformationNew "${CMAKE_CMAKE_COMMAND}"
|
||||
--system-information -G "${CMAKE_TEST_GENERATOR}" )
|
||||
|
410
ChangeLog.manual
410
ChangeLog.manual
@ -1,3 +1,413 @@
|
||||
No changes in CMake 2.8.3 since 2.8.3-rc4.
|
||||
|
||||
Changes in CMake 2.8.3-rc4 (since 2.8.3-rc3)
|
||||
--------------------------------------------
|
||||
Bill Hoffman (1):
|
||||
When processing DartMeasurements use the tests working directory.
|
||||
|
||||
David Cole (2):
|
||||
ExternalProject: No svn --username if empty (#11173)
|
||||
Avoid problem reading jni.h on Macs.
|
||||
|
||||
David Partyka (5):
|
||||
Fixed appending PATH to dumpbin tool from growing without bounds.
|
||||
Switch to CMAKE_PATH when doing PATH comparisons on Windows.
|
||||
Remove unecessary TO_CMAKE_PATH for gp_cmd_dir.
|
||||
Append the gp_tool path to the system PATH using native slashes.
|
||||
Fixes to GetPrerequisites for cygwin
|
||||
|
||||
Eric NOULARD (1):
|
||||
CPackDeb Added several optional debian binary package fields
|
||||
|
||||
Marcus D. Hanwell (2):
|
||||
ENH: Added case for Python 2.7.
|
||||
Fixed parallel build for generators with EXTRA.
|
||||
|
||||
Changes in CMake 2.8.3-rc3 (since 2.8.3-rc2)
|
||||
--------------------------------------------
|
||||
Alex Neundorf (4):
|
||||
Remove trailing whitespace
|
||||
Add automatic variable CMAKE_CURRENT_LIST_DIR(dir of CMAKE_CURRENT_LIST_FILE)
|
||||
Use absolute path to FindPackageHandleStandardArgs.cmake everywhere
|
||||
CodeBlocks Generator: Do not omit files in the project file listing.
|
||||
|
||||
Brad King (4):
|
||||
VS10: Order .vcxproj dependencies deterministically (#10502)
|
||||
Document ENABLE_EXPORTS behavior on Mac (#11295)
|
||||
FindHDF5: Fix typo in parallel-IO support check (#11291)
|
||||
Xcode: Recognize .hh as C++ (#11307)
|
||||
|
||||
Clinton Stimpson (1):
|
||||
Find imports dir in Qt 4.7
|
||||
|
||||
David Partyka (1):
|
||||
Update module to locate newely released MS MPI HPC Pack R2.
|
||||
|
||||
Philip Lowman (1):
|
||||
Remove superfluous variable Boost_COMPAT_STATIC_RUNTIME.
|
||||
|
||||
Rolf Eike Beer (2):
|
||||
FindSubversion: Fix for German localized client (#11273)
|
||||
FindSubversion: Use C locale to detect version (#11273)
|
||||
|
||||
Changes in CMake 2.8.3-rc2 (since 2.8.3-rc1)
|
||||
--------------------------------------------
|
||||
Alex Neundorf (5):
|
||||
APPEND and not-APPEND mode of feature_summary() were swapped
|
||||
Set a default DESCRIPTION if none is given for ALL mode of feature_summary()
|
||||
Close ENDFUNCTION() properly with the same name as FUNCTION()
|
||||
Make cmake-gui remember whether the "Advanced" checkbox was checked or not
|
||||
Also store the required version number in the details message.
|
||||
|
||||
Ben Boeckel (3):
|
||||
Add test that CMake errors with empty libs
|
||||
Fix which string is checked for in the test
|
||||
XCode generation should fail if lang isn't known
|
||||
|
||||
Bill Hoffman (5):
|
||||
Fix the name of the variable being tested.
|
||||
Fix KWStyle line length issues.
|
||||
Add a delay after untar on windows to make external project work on windows 7
|
||||
Add a new line to the end of the generated main.cxx for the hpux compiler.
|
||||
Fix for bug #11274, VS10 custom commands that create files in INTDIR fix.
|
||||
|
||||
Brad King (12):
|
||||
Evaluate <OBJECT_DIR> rule variable for executables
|
||||
ccmake: Fix search with '/'
|
||||
MinGW: Support long object file lists
|
||||
Document IMPORTED_NO_SONAME target property
|
||||
FindMPI: Recoginze -f flags from mpicc (#10771)
|
||||
Add module-dir flag for Compaq Visual Fortran (#11248)
|
||||
FindPythonInterp: Look for python2.7 interpreter
|
||||
VS10: Use $(IntDir) for per-source output directory (#11270)
|
||||
Reset platform/compiler info status for each language
|
||||
Remove trailing whitespace from Xcode generator source
|
||||
VS10: Skip targets with no linker language (#11230)
|
||||
VS10: Encode custom command comments for echo (#11283)
|
||||
|
||||
Clinton Stimpson (1):
|
||||
Fix regression in cross-compile patches with finding Qt libs.
|
||||
|
||||
David Cole (7):
|
||||
Enable calling commands with : in argv[1] (#9963)
|
||||
No extra spaces in CustomCommand test (#9963)
|
||||
Avoid CustomCommand test failure on VS71 (#9963)
|
||||
Update release scripts.
|
||||
Avoid CustomCommand test failure on VS71 (#9963)
|
||||
Honor MAKECOMMAND value saved in cache (#11026)
|
||||
New USE_FOLDERS property OFF by default. (#3796)
|
||||
|
||||
David Gobbi (1):
|
||||
Set the module prefix, updated Windows suffix.
|
||||
|
||||
Eric NOULARD (2):
|
||||
InstallGen/CPack fix handling absolute installed file regression
|
||||
CPackRPM Handle parenthesis in CPACK_SYSTEM_NAME (fix bug 10737)
|
||||
|
||||
James Bigler (2):
|
||||
Fix for bug 0011263.
|
||||
Allow -g3 for CUDA v3.0+.
|
||||
|
||||
Mikkel Krautz (2):
|
||||
Xcode: Avoid trailing space in ARCHS list (#11244)
|
||||
Xcode: Quote string values containing '$' (#11244)
|
||||
|
||||
Philip Lowman (12):
|
||||
FindBoost.cmake fixes for issues 11204 & 8529
|
||||
FindBoost.cmake: Miscellaneous changes and refactoring
|
||||
FindBoost.cmake: Add Boost_NO_SYSTEM_PATHS option
|
||||
FindBoost.cmake: Fix compiling against a boost source tree
|
||||
FindBoost.cmake: Fixes 11246
|
||||
FindBoost.cmake: Fixes 11121
|
||||
FindBoost.cmake: Fixes 10436
|
||||
FindBoost.cmake: Implements 11160
|
||||
Fix 11136: [patch] FindThreads.cmake documents the wrong variable
|
||||
FindBoost.cmake: Fix library search path glitch introduced in earlier commit
|
||||
FindFLEX.cmake: Fix issue 11249
|
||||
Fixes issue 11279: CMakeDetermineVSServicePack support for VS10
|
||||
|
||||
Yaakov Selkowitz (2):
|
||||
FindFLTK*: Use Cygwin fltk on Cygwin (#11290)
|
||||
Use 'uname -m' for processor on Cygwin (#10774)
|
||||
|
||||
Changes in CMake 2.8.3-rc1 (since 2.8.2)
|
||||
----------------------------------------
|
||||
Alex Neundorf (39):
|
||||
fix build on SUSE 11.2 in cmcurl due to ssize_t
|
||||
-add an additional name for finding libtiff on Windows
|
||||
-fix typo in docs of deprecated MacroAddFileDependencies.cmake
|
||||
add 2nd, more powerful mode to find_package_handle_standard_args()
|
||||
-fix indentation of the documentation
|
||||
Add version checking support to FindFlex and FindPerlLibs
|
||||
FindSquish doesn't detect the version, remove that from the documentation
|
||||
Improved version checking for FindRuby using the new mode of FPHSA()
|
||||
Improved version checking for FindJava using the new FPHSA() mode
|
||||
Fix DETAILS string with version number in FHPSA()
|
||||
Improved version checking for FindSubversion using the new mode of FPHSA()
|
||||
Improved version checking for FindCUDA using the new mode of FPHSA
|
||||
Use FPHSA() in FindSWIG, including version checking.
|
||||
Change documentation of Subversion_FOUND and SUBVERSION_FOUND.
|
||||
Add macro CMakeParseArguments() and use it in FPHSA()
|
||||
Fix ZLIB version parsing if no TWEAK version exists
|
||||
Fix EclipseCDT include path parsing with spaces (#10868)
|
||||
Fix EclipseCDT parsing of builtin macros with spaces (#10868)
|
||||
Remove trailing spaces
|
||||
Detect a COMPILER_ID also for ASM.
|
||||
Add timeout to execute_process() in CMAKE_DETERMINE_COMPILER_ID().
|
||||
Fix parsing of builtin macros so Eclipse handles them properly (#10868)
|
||||
Log the required package version and major improvement to FeatureSummary
|
||||
Improve documentation.
|
||||
Improve wording of the documentation.
|
||||
Add macro ADD_FEATURE_INFO() and improve docs.
|
||||
Remove trailing whitespace
|
||||
Make target_link_libraries() complain if bad target name is used
|
||||
Just warn in case of a bad target as only argument for t_l_l()
|
||||
Remove trailing whitespace
|
||||
New CMP0016 for deciding whether an unknown target in TLL() is an error.
|
||||
Record all considered Config files and their versions.
|
||||
Improve error message in Config-mode when no appropriate version was found
|
||||
Replace the two vector<string,string> with one vector<struct{string,string}>
|
||||
Small cleanup of FindPackageHandleStandardArgs.cmake
|
||||
Don't create an empty element at the end of Foo_CONSIDERED_CONFIGS/VERSIONS
|
||||
Add option CONFIG_MODE to FPHSA()
|
||||
Improve version notice in the generated message
|
||||
Improve wording of the error message of find_package() in config-mode
|
||||
|
||||
Andrew Maclean (3):
|
||||
Adding a FindPostgreSQL.cmake module
|
||||
Forgot the copyright notice.
|
||||
Changed ADDITIONAL_SEARCH_PATHS to PostgreSQL_ADDITIONAL_SEARCH_PATHS.
|
||||
|
||||
Arjen Verweij (1):
|
||||
Pass objects to Intel linker using a response file
|
||||
|
||||
Bill Hoffman (9):
|
||||
Disable gcc 33 on OpenBSD because it crashes CPack by default.
|
||||
Fix for bug#10483, INCLUDE_EXTERNAL_MSPROJECT: ProjectGUID now ProjectGuid
|
||||
Remove the ctest submit larget output test.
|
||||
Let CMake recognize .CPP .CXX and .C++ as c++ files.
|
||||
Fix for bug 10388, fix various default flags.
|
||||
Only use .CPP .CXX and .C++ do not work by default with g+++.
|
||||
Fix targets with . in the name for VS 10 IDE.
|
||||
Only test for .CPP on Microsoft compilers which will handle .CPP as c++.
|
||||
Allow testing of .CPP on WIN32 as it is a case insensitive OS and should work.
|
||||
|
||||
Brad King (69):
|
||||
ExternalProject: Add LOG_* options to hide step output
|
||||
FindMPI: Do not parse -l in middle of library name
|
||||
FindMPI: Parse mpicc flags more carefully (#9093)
|
||||
Fix or cast integer conversions in cmake
|
||||
Begin post-2.8.2 development
|
||||
FindMPI: Failure is not an error if not REQUIRED
|
||||
FindMPI: Trust mpicc -showme on BlueGene/L
|
||||
VS: Always separate preprocessor defs by semicolon (#10902)
|
||||
KWSys: Cleanup putenv leak option implementation
|
||||
KWSys: Pass ptrdiff_t check result to System.c
|
||||
Fix or cast more integer conversions in cmake
|
||||
Use same type in both cases of '?:' operator
|
||||
FindMPI: Fix parsing of mpicc -Wl,-L link flags (#9093)
|
||||
Fix signed/unsigned comparison warnings in ccmake
|
||||
Fix integer conversions in cpack
|
||||
bootstrap: Detect known C/C++ compiler toolchains
|
||||
KWSys: Use short fallback timeout for Process tests
|
||||
KWSys: Optionally suppress consistent test failures
|
||||
KWSys: Avoid Clang optimizer bug in testProcess-[45]
|
||||
Poison GCC 3.3 on OpenBSD a bit later
|
||||
KWSys: Avoid undefined behavior in Process crash tests
|
||||
Optionally use system bzip2 library (#10932)
|
||||
ctest_update: Abort if Git FETCH_HEAD has no candidates
|
||||
ctest_update: Support ".git file" work trees
|
||||
ctest_update: Run 'git submodule' at top level
|
||||
FindBoost: Search for Boost 1.42
|
||||
Add FindLibArchive module (#10923)
|
||||
Add option CMAKE_USE_SYSTEM_LIBARCHIVE (#10923)
|
||||
Refer to self with CMake_(SOURCE|BINARY)_DIR (#10046)
|
||||
ExternalProject: Fix $(MAKE) with cygpath on Windows
|
||||
FindBoost: Search for Boost 1.43 and 1.44
|
||||
Include headers from chosen libarchive (#10923)
|
||||
No response files with GNU ld <= 2.16 (#10913)
|
||||
Create class cmArchiveWrite to wrap libarchive (#11020)
|
||||
Include entries for directories in tarballs (#11020)
|
||||
cmArchiveWrite: Fix signed/unsigned compare/convert
|
||||
cmArchiveWrite: Fix signed/unsigned again
|
||||
CPack: Avoid member shadowing after API refactor
|
||||
KWSys: Fix SplitPath for leading '\' on Windows
|
||||
KWSys: Fix GetActualCaseForPath for UNC paths
|
||||
ModuleNoticesTest: Do not require "Kitware" copyright
|
||||
Modules: Fix CMakeParseArguments copyright notice
|
||||
FortranCInterface: Fix doc typo FC.h -> FCMangle.h
|
||||
CTest: Avoid use of old EscapeSpaces method
|
||||
Remove cmSystemTools::EscapeSpaces method
|
||||
Clarify install(TARGETS) docs for EXPORT option
|
||||
Factor out global generator ComputeTargetDepends method
|
||||
Factor out duplicate VS target dependency code
|
||||
Refactor VS <= 7.1 utility-depends workaround
|
||||
Restore GetTargetDirectDepends const return
|
||||
Split notion of node lists and edge lists
|
||||
Distinguish "strong" and "weak" target dependency edges
|
||||
Honor strong intra-component target dependencies
|
||||
libarchive: Remove SCHILY dev,ino,nlink attributes (#11176)
|
||||
Fix unused parameter warning in VS 7.1 generator
|
||||
KWSys: Avoid empty string dereference in SplitString
|
||||
KWSys: Improve SplitPath method documentation
|
||||
KWSys: Use SplitPath in GetActualCaseForPath
|
||||
Add whitespace=tab-in-indent attribute for sources
|
||||
Search MacPorts /opt/local prefix on Mac
|
||||
HP-UX: Always add /usr/lib to rpath (#10571)
|
||||
No CMAKE_CONFIGURATION_TYPES in single-config generators (#10202)
|
||||
KWSys: Suppress -Wcast-align warning in MD5.c
|
||||
Suppress -Wcast-align in curl and bzip2
|
||||
libarchive: Fix purposeful crash
|
||||
bootstrap: Honor CFLAGS during "make" test (#10545)
|
||||
file(DOWNLOAD): Fix error message formatting
|
||||
Fix line-too-long style errors
|
||||
Report missing source files with context of target
|
||||
|
||||
Clinton Stimpson (10):
|
||||
Fix performance issue with getting version from zlib.h
|
||||
Fix bug 10418 - GetPrerequisites returning "not" as a dependency.
|
||||
Fix regression in 5e6634fd77969433a87c150a2fb3f2079131484f for Windows.
|
||||
Change Qt4ConfigDependentSettings to use more standard find modules.
|
||||
Add cross-compiling support to FindQt4.cmake
|
||||
Tweak for cygwin, don't convert : to ;
|
||||
Fix some issues with refinding when qmake executable is changed.
|
||||
Find correct Qt plugins for cross-compiling.
|
||||
Fix mingw/VS warning message with cross compile re-org.
|
||||
Make sure moc parameters file goes in binary directory.
|
||||
|
||||
David Cole (20):
|
||||
CheckSourceTree test: read UpdateCommand from Update.xml.
|
||||
Eliminate -Wconversion warnings.
|
||||
Detect CMake warnings and errors in build output.
|
||||
Activate retry code on any curl submit failure.
|
||||
Add another expected output for the failed submit tests.
|
||||
ExternalProject: Use $(MAKE) whenever possible.
|
||||
Copy Resources in Frameworks during fixup_bundle (#10020)
|
||||
Update path to git. dashmacmini2 was "upgraded."
|
||||
ExternalProject: Remove 'unknown keyword' warning (#11034)
|
||||
Add documentation for CPACK_PROJECT_CONFIG_FILE.
|
||||
Add STEP_TARGETS to ExternalProject module.
|
||||
Refine formatting for cmake --help-module output.
|
||||
Improve documentation of OPTION command.
|
||||
Add FOLDER target property, for IDEs (#3796)
|
||||
Avoid adding self as prerequisite. (#10417)
|
||||
Correct CMAKE_INSTALL_PREFIX value for Win64 apps (#9992)
|
||||
Preserve timestamps on files on tar extract.
|
||||
Use QUIET to avoid Java status messages.
|
||||
VS2010: Honor PROJECT_LABEL target property (#10611)
|
||||
VS2010: Set IntDir for utility and global targets.
|
||||
|
||||
David Genest (1):
|
||||
Honor CMAKE_USER_MAKE_RULES_OVERRIDE in try_compile (#10902)
|
||||
|
||||
Eric NOULARD (20):
|
||||
CPackRPM:: Replace - with _ in RPM Version (fix bug 0010934)
|
||||
Provides default changelog if no file is provided
|
||||
CPackRPM:: Quote every filenames in %file section (see bugs 10701,10871,10345)
|
||||
CPackRPM:: [partially] support relocatable package
|
||||
CPackDEB: merge wrong installed size patch. see bugs 10296 (and 10292)
|
||||
CPackDeb optionally generates auto-dependency list part fix of bug 10292
|
||||
Proposal for bash-completion support file
|
||||
CPack: Refactor API in order to handle multi-file packages
|
||||
CPack: Avoid member shadowing after API refactor (part2)
|
||||
Improve cmake-completion (install doc, ctest -R completion)
|
||||
Add ZIP archive format and LZMA compress support to libarchive-wrapper
|
||||
Add XZ compress support to libarchive-wrapper
|
||||
Add Compress compress support to libarchive-wrapper
|
||||
CPack Backward-compatibly enforce DESTDIR for DEB and RPM
|
||||
CPack Enable better handling of absolute installed files
|
||||
CPackArchiveGenerator use cmArchiveWrite wrapper
|
||||
CPackArchiveGenerator add component supports
|
||||
CPackArchiveGenerator improve usability and robustness
|
||||
CPack fix broken compilation for CygwinSource generator
|
||||
CPack handle symlinks in CPACK_INSTALLED_DIRECTORIES fix for bug5430
|
||||
|
||||
James Bigler (1):
|
||||
Added CUDA 3.2 directory changes. Disable emulation mode for CUDA 3.1+.
|
||||
|
||||
Kai Wasserbäch (1):
|
||||
Fix spelling errors reported by Lintian.
|
||||
|
||||
Kovarththanan Rajaratnam (4):
|
||||
FindZLIB: optimize zlib.h version parsing
|
||||
FindCygwin: add new registry entry for Cygwin 1.7 (#10951)
|
||||
FindZLIB: use the FPHSA version mode
|
||||
FindSubversion: set compatibility variables based on FPHSA()
|
||||
|
||||
Marcel Loose (1):
|
||||
Issue 10199: Fixed code documentation and now set <prefix>_WC_ROOT
|
||||
|
||||
Marcus D. Hanwell (1):
|
||||
Bug with default library type of Python modules.
|
||||
|
||||
Mathieu Malaterre (3):
|
||||
Add missing PATHS to find_path commands to fix openssl searching
|
||||
BUG: 0009611 Fix Arch independent FindJNI.cmake on Linux
|
||||
Fix 11035 : debug/release library configuration mistake
|
||||
|
||||
Michael Wild (2):
|
||||
Improve documentation of BundleUtilities.cmake
|
||||
Improve documentation of GetPrerequisites.cmake
|
||||
|
||||
Miguel A. Figueroa-Villanueva (7):
|
||||
ENH: #9775 Added support for new wxWidgets 2.9 libraries.
|
||||
BUG: #9775 Fixed patch FindwxWidgets-fixed-bug-9775.
|
||||
BUG #10658: FindwxWidgets USE_FILE should not include .cmake extension.
|
||||
STYLE: Clarified/Fixed documentation of UsewxWidgets.
|
||||
BUG #11123: Generic include dir should come after config specific one.
|
||||
BUG #8184: Fixed FindwxWidgets wrong order of default libs for MinGW.
|
||||
ENH #8993: FindwxWidgets add support for wx-config custom options.
|
||||
|
||||
Mike McQuaid (1):
|
||||
Make bundle items writable before fixup (#9284)
|
||||
|
||||
Modestas Vainius (1):
|
||||
CTestTestFailedSubmit-xmlrpc: Pass with "Submission problem"
|
||||
|
||||
Patrick Gansterer (4):
|
||||
VS: Convert PlatformName member to a virtual method
|
||||
VS: Add more TargetMachine option values
|
||||
VS: Map /ENTRY linker option to EntryPointSymbol
|
||||
VS: Add ArchitectureId to VS 8 and 9 generators
|
||||
|
||||
Philip Lowman (7):
|
||||
Fixes problem finding libraries under Boost (#9510)
|
||||
Add detection for new pangommconfig.h header file
|
||||
Several fixes needed to improve Windows support
|
||||
11041: Improve FindCxxTest to use Python or Perl automatically; custom flags
|
||||
10241: FindBISON.cmake clears wrong variable
|
||||
10688: FindGTK2.cmake doesn't auto-detect macports
|
||||
Merge patch for detecting gdk-pixbuf library
|
||||
|
||||
Pino Toscano (1):
|
||||
GNU/Hurd platform support fixes (#9873)
|
||||
|
||||
Robert Goulet (1):
|
||||
VS2010: Disable PDBs when there is no debug info
|
||||
|
||||
Rolf Eike Beer (2):
|
||||
clean up some stuff in CPack RPM script
|
||||
Set MSVC_VERSION for MSVC 6, 7, 7.1 (#7944)
|
||||
|
||||
Todd Gamblin (3):
|
||||
Modules: Fix spelling 'To distributed' -> 'To distribute'
|
||||
Teach find_* commands to ignore some paths
|
||||
Add platform files for BlueGene/P systems
|
||||
|
||||
Zach Mullen (12):
|
||||
Checksums on CTest submit files, and retry timed out submissions.
|
||||
Cross-platform fixes for checksum/retry code
|
||||
Fix subscript out of range crash
|
||||
CTest should resubmit in the checksum failed case
|
||||
Testing for CTest checksum
|
||||
Mock checksum failure output for old CDash versions
|
||||
Checksum test should use CMAKE_TESTS_CDASH_SERVER
|
||||
Fix cycle detection for test dependencies
|
||||
More robust cost-based scheduling impl
|
||||
Fix hard-coded CDash URI in version query
|
||||
Added CTest command --print-labels
|
||||
We shouldn't ask CDash for its version info until/unless we actually need it.
|
||||
|
||||
No changes in CMake 2.8.2 since 2.8.2-rc4.
|
||||
|
||||
Changes in CMake 2.8.2-rc4 (since 2.8.2-rc3)
|
||||
|
190
Docs/cmake-completion
Normal file
190
Docs/cmake-completion
Normal file
@ -0,0 +1,190 @@
|
||||
#
|
||||
# bash-completion file for CMake
|
||||
# Provided by Eric NOULARD - eric.noulard@gmail.com
|
||||
#
|
||||
# see http://bash-completion.alioth.debian.org/
|
||||
# and http://www.cmake.org
|
||||
#
|
||||
# We will try to complete cmake commands options
|
||||
# at 2 (or may be 3 levels)
|
||||
# [cmake|cpack|ctest] <level0> <level1> <level2>
|
||||
#
|
||||
# level0 is top level cmake/cpack/ctest options
|
||||
# level1 is the first argument of level0 option
|
||||
# level2 is the seconf argument of level1 argument
|
||||
# FIXME: I don't know how to handle level2
|
||||
#
|
||||
# The file has been proposed for inclusion in the bash-completion package
|
||||
# https://alioth.debian.org/tracker/?func=detail&atid=413095&aid=312632&group_id=100114
|
||||
# In the meantime,
|
||||
# 1) If you want to test bash completion for cmake/cpack/ctest
|
||||
# just source the current file at bash prompt
|
||||
# . ./cmake-completion
|
||||
#
|
||||
# 2) If you want to install it for good copy this file to
|
||||
# cp cmake-completion /etc/bash_completion.d/cmake
|
||||
#
|
||||
|
||||
#
|
||||
# cmake command
|
||||
#
|
||||
# have cmake &&
|
||||
_cmake()
|
||||
{
|
||||
local cur prev opts words cword
|
||||
COMPREPLY=()
|
||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||
# seems to be only available on bash-completion 1.2
|
||||
#_get_comp_words_by_ref cur prev
|
||||
|
||||
# cmake command line option we want to complete
|
||||
opts=`cmake --help | grep "^ \-.*=\ .*" | cut -d" " -f 3 | cut -d= -f 1 | cut -d[ -f 1`
|
||||
|
||||
#
|
||||
# Complete the arguments to some of
|
||||
# the most commonly used commands (Level 1).
|
||||
#
|
||||
case "${prev}" in
|
||||
-E)
|
||||
local running=$(for x in `cmake -E |& grep "^ " | cut -d" " -f 3`; do echo ${x} ; done )
|
||||
COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
--help-command)
|
||||
local running=$(for x in `cmake --help-command-list`; do echo ${x} ; done )
|
||||
COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
--help-module)
|
||||
local running=$(for x in `cmake --help-module-list`; do echo ${x} ; done )
|
||||
COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
--help-policy)
|
||||
local running=$(for x in `cmake --help-policies | grep "^ CMP"`; do echo ${x} ; done )
|
||||
COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
--help-property)
|
||||
local running=$(for x in `cmake --help-property-list`; do echo ${x} ; done )
|
||||
COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
--help-variable)
|
||||
local running=$(for x in `cmake --help-variable-list`; do echo ${x} ; done )
|
||||
COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
#
|
||||
# Complete the arguments to some of
|
||||
# the most commonly used commands (Level 2).
|
||||
# ?? How to do that ..
|
||||
|
||||
#
|
||||
# Complete the option (Level 0 - right after cmake)
|
||||
#
|
||||
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||
} &&
|
||||
complete -F _cmake -o default cmake
|
||||
|
||||
#
|
||||
# cpack command
|
||||
#
|
||||
#have cpack &&
|
||||
_cpack()
|
||||
{
|
||||
local cur prev opts words cword
|
||||
COMPREPLY=()
|
||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||
# seems to be only available on bash-completion 1.2
|
||||
#_get_comp_words_by_ref cur prev
|
||||
|
||||
# cpack command line option we want to complete
|
||||
opts=`cpack --help | grep "^ \-.*=\ .*" | cut -d" " -f 3 | cut -d= -f 1`
|
||||
opts="${opts} --help -V"
|
||||
|
||||
#
|
||||
# Complete the arguments to some of
|
||||
# the most commonly used commands (Level 1).
|
||||
#
|
||||
case "${prev}" in
|
||||
-G)
|
||||
local running=$(for x in `cpack --help | grep "^ .*=\ .*" | grep -v "^ -" | cut -d" " -f 3`; do echo ${x} ; done )
|
||||
COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
--config)
|
||||
COMPREPLY=( $(compgen -f ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
#
|
||||
# Complete the option (Level 0 - right after cmake)
|
||||
#
|
||||
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||
} &&
|
||||
complete -F _cpack -o default cpack
|
||||
|
||||
#
|
||||
# cmake command
|
||||
#
|
||||
# have ctest &&
|
||||
_ctest()
|
||||
{
|
||||
local cur prev opts words cword
|
||||
COMPREPLY=()
|
||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||
# seems to be only available on bash-completion 1.2
|
||||
#_get_comp_words_by_ref cur prev
|
||||
|
||||
# cmake command line option we want to complete
|
||||
opts=`ctest --help | grep "\-\-.*" | cut -d" " -f 3 | sed s/,/\\\n/g`
|
||||
|
||||
#
|
||||
# Complete the arguments to some of
|
||||
# the most commonly used commands (Level 1).
|
||||
#
|
||||
case "${prev}" in
|
||||
--help-command)
|
||||
local running=$(for x in `ctest --help-command-list`; do echo ${x} ; done )
|
||||
COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
-R)
|
||||
local running=$(for x in `ctest -N 2> /dev/null | grep "^ Test" | cut -d: -f 2`; do echo ${x} ; done )
|
||||
COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
#
|
||||
# Complete the arguments to some of
|
||||
# the most commonly used commands (Level 2).
|
||||
# ?? How to do that ..
|
||||
|
||||
#
|
||||
# Complete the option (Level 0 - right after cmake)
|
||||
#
|
||||
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||
} &&
|
||||
complete -F _ctest -o default ctest
|
||||
|
||||
# Local variables:
|
||||
# mode: shell-script
|
||||
# sh-basic-offset: 4
|
||||
# sh-indent-comment: t
|
||||
# indent-tabs-mode: nil
|
||||
# End:
|
||||
# ex: ts=4 sw=4 et filetype=sh
|
@ -12,7 +12,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(ADD_FILE_DEPENDENCIES _file)
|
||||
|
@ -1,9 +1,11 @@
|
||||
# BundleUtilities.cmake
|
||||
# - Functions to help assemble a standalone bundle application.
|
||||
# A collection of CMake utility functions useful for dealing with .app
|
||||
# bundles on the Mac and bundle-like directories on any OS.
|
||||
#
|
||||
# A collection of CMake utility functions useful for dealing with .app bundles
|
||||
# on the Mac and bundle-like directories on any OS.
|
||||
#
|
||||
# The following functions are provided by this script:
|
||||
# The following functions are provided by this module:
|
||||
# fixup_bundle
|
||||
# copy_and_fixup_bundle
|
||||
# verify_app
|
||||
# get_bundle_main_executable
|
||||
# get_dotapp_dir
|
||||
# get_bundle_and_executable
|
||||
@ -13,15 +15,121 @@
|
||||
# set_bundle_key_values
|
||||
# get_bundle_keys
|
||||
# copy_resolved_item_into_bundle
|
||||
# copy_resolved_framework_into_bundle
|
||||
# fixup_bundle_item
|
||||
# fixup_bundle
|
||||
# copy_and_fixup_bundle
|
||||
# verify_bundle_prerequisites
|
||||
# verify_bundle_symlinks
|
||||
# verify_app
|
||||
#
|
||||
# Requires CMake 2.6 or greater because it uses function, break and
|
||||
# PARENT_SCOPE. Also depends on GetPrerequisites.cmake.
|
||||
#
|
||||
# FIXUP_BUNDLE(<app> <libs> <dirs>)
|
||||
# Fix up a bundle in-place and make it standalone, such that it can be
|
||||
# drag-n-drop copied to another machine and run on that machine as long as all
|
||||
# of the system libraries are compatible.
|
||||
#
|
||||
# Gather all the keys for all the executables and libraries in a bundle, and
|
||||
# then, for each key, copy each prerequisite into the bundle. Then fix each one
|
||||
# up according to its own list of prerequisites.
|
||||
#
|
||||
# Then clear all the keys and call verify_app on the final bundle to ensure
|
||||
# that it is truly standalone.
|
||||
#
|
||||
# COPY_AND_FIXUP_BUNDLE(<src> <dst> <libs> <dirs>)
|
||||
# Makes a copy of the bundle <src> at location <dst> and then fixes up the
|
||||
# new copied bundle in-place at <dst>...
|
||||
#
|
||||
# VERIFY_APP(<app>)
|
||||
# Verifies that an application <app> appears valid based on running analysis
|
||||
# tools on it. Calls "message(FATAL_ERROR" if the application is not verified.
|
||||
#
|
||||
# GET_BUNDLE_MAIN_EXECUTABLE(<bundle> <result_var>)
|
||||
# The result will be the full path name of the bundle's main executable file
|
||||
# or an "error:" prefixed string if it could not be determined.
|
||||
#
|
||||
# GET_DOTAPP_DIR(<exe> <dotapp_dir_var>)
|
||||
# Returns the nearest parent dir whose name ends with ".app" given the full
|
||||
# path to an executable. If there is no such parent dir, then return a dir at
|
||||
# the same level as the executable, named with the executable's base name and
|
||||
# ending with ".app"
|
||||
#
|
||||
# The returned directory may or may not exist.
|
||||
#
|
||||
# GET_BUNDLE_AND_EXECUTABLE(<app> <bundle_var> <executable_var> <valid_var>)
|
||||
# Takes either a ".app" directory name or the name of an executable
|
||||
# nested inside a ".app" directory and returns the path to the ".app"
|
||||
# directory in <bundle_var> and the path to its main executable in
|
||||
# <executable_var>
|
||||
#
|
||||
# GET_BUNDLE_ALL_EXECUTABLES(<bundle> <exes_var>)
|
||||
# Scans the given bundle recursively for all executable files and accumulates
|
||||
# them into a variable.
|
||||
#
|
||||
# GET_ITEM_KEY(<item> <key_var>)
|
||||
# Given a file (item) name, generate a key that should be unique considering
|
||||
# the set of libraries that need copying or fixing up to make a bundle
|
||||
# standalone. This is essentially the file name including extension with "."
|
||||
# replaced by "_"
|
||||
#
|
||||
# This key is used as a prefix for CMake variables so that we can associate a
|
||||
# set of variables with a given item based on its key.
|
||||
#
|
||||
# CLEAR_BUNDLE_KEYS(<keys_var>)
|
||||
# Loop over the list of keys, clearing all the variables associated with each
|
||||
# key. After the loop, clear the list of keys itself.
|
||||
#
|
||||
# Caller of get_bundle_keys should call clear_bundle_keys when done with list
|
||||
# of keys.
|
||||
#
|
||||
# SET_BUNDLE_KEY_VALUES(<keys_var> <context> <item> <exepath> <dirs>
|
||||
# <copyflag>)
|
||||
# Add a key to the list (if necessary) for the given item. If added,
|
||||
# also set all the variables associated with that key.
|
||||
#
|
||||
# GET_BUNDLE_KEYS(<app> <libs> <dirs> <keys_var>)
|
||||
# Loop over all the executable and library files within the bundle (and given
|
||||
# as extra <libs>) and accumulate a list of keys representing them. Set
|
||||
# values associated with each key such that we can loop over all of them and
|
||||
# copy prerequisite libs into the bundle and then do appropriate
|
||||
# install_name_tool fixups.
|
||||
#
|
||||
# COPY_RESOLVED_ITEM_INTO_BUNDLE(<resolved_item> <resolved_embedded_item>)
|
||||
# Copy a resolved item into the bundle if necessary. Copy is not necessary if
|
||||
# the resolved_item is "the same as" the resolved_embedded_item.
|
||||
#
|
||||
# COPY_RESOLVED_FRAMEWORK_INTO_BUNDLE(<resolved_item> <resolved_embedded_item>)
|
||||
# Copy a resolved framework into the bundle if necessary. Copy is not necessary
|
||||
# if the resolved_item is "the same as" the resolved_embedded_item.
|
||||
#
|
||||
# By default, BU_COPY_FULL_FRAMEWORK_CONTENTS is not set. If you want full
|
||||
# frameworks embedded in your bundles, set BU_COPY_FULL_FRAMEWORK_CONTENTS to
|
||||
# ON before calling fixup_bundle. By default,
|
||||
# COPY_RESOLVED_FRAMEWORK_INTO_BUNDLE copies the framework dylib itself plus
|
||||
# the framework Resources directory.
|
||||
#
|
||||
# FIXUP_BUNDLE_ITEM(<resolved_embedded_item> <exepath> <dirs>)
|
||||
# Get the direct/non-system prerequisites of the resolved embedded item. For
|
||||
# each prerequisite, change the way it is referenced to the value of the
|
||||
# _EMBEDDED_ITEM keyed variable for that prerequisite. (Most likely changing to
|
||||
# an "@executable_path" style reference.)
|
||||
#
|
||||
# Also, change the id of the item being fixed up to its own _EMBEDDED_ITEM
|
||||
# value.
|
||||
#
|
||||
# Accumulate changes in a local variable and make *one* call to
|
||||
# install_name_tool at the end of the function with all the changes at once.
|
||||
#
|
||||
# If the BU_CHMOD_BUNDLE_ITEMS variable is set then bundle items will be
|
||||
# marked writable before install_name_tool tries to change them.
|
||||
#
|
||||
# VERIFY_BUNDLE_PREREQUISITES(<bundle> <result_var> <info_var>)
|
||||
# Verifies that the sum of all prerequisites of all files inside the bundle
|
||||
# are contained within the bundle or are "system" libraries, presumed to exist
|
||||
# everywhere.
|
||||
#
|
||||
# VERIFY_BUNDLE_SYMLINKS(<bundle> <result_var> <info_var>)
|
||||
# Verifies that any symlinks found in the bundle point to other files that are
|
||||
# already also in the bundle... Anything that points to an external file causes
|
||||
# this function to fail the verification.
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2008-2009 Kitware, Inc.
|
||||
@ -33,7 +141,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# The functions defined in this file depend on the get_prerequisites function
|
||||
@ -43,11 +151,6 @@ get_filename_component(BundleUtilities_cmake_dir "${CMAKE_CURRENT_LIST_FILE}" PA
|
||||
include("${BundleUtilities_cmake_dir}/GetPrerequisites.cmake")
|
||||
|
||||
|
||||
# get_bundle_main_executable
|
||||
#
|
||||
# The result will be the full path name of the bundle's main executable file
|
||||
# or an "error:" prefixed string if it could not be determined.
|
||||
#
|
||||
function(get_bundle_main_executable bundle result_var)
|
||||
set(result "error: '${bundle}/Contents/Info.plist' file does not exist")
|
||||
|
||||
@ -109,15 +212,6 @@ function(get_bundle_main_executable bundle result_var)
|
||||
endfunction(get_bundle_main_executable)
|
||||
|
||||
|
||||
# get_dotapp_dir
|
||||
#
|
||||
# Returns the nearest parent dir whose name ends with ".app" given the full path
|
||||
# to an executable. If there is no such parent dir, then return a dir at the same
|
||||
# level as the executable, named with the executable's base name and ending with
|
||||
# ".app"
|
||||
#
|
||||
# The returned directory may or may not exist.
|
||||
#
|
||||
function(get_dotapp_dir exe dotapp_dir_var)
|
||||
set(s "${exe}")
|
||||
|
||||
@ -155,13 +249,6 @@ function(get_dotapp_dir exe dotapp_dir_var)
|
||||
endfunction(get_dotapp_dir)
|
||||
|
||||
|
||||
# get_bundle_and_executable
|
||||
#
|
||||
# Takes either a ".app" directory name or the name of an executable
|
||||
# nested inside a ".app" directory and returns the path to the ".app"
|
||||
# directory in ${bundle_var} and the path to its main executable in
|
||||
# ${executable_var}
|
||||
#
|
||||
function(get_bundle_and_executable app bundle_var executable_var valid_var)
|
||||
set(valid 0)
|
||||
|
||||
@ -215,11 +302,6 @@ function(get_bundle_and_executable app bundle_var executable_var valid_var)
|
||||
endfunction(get_bundle_and_executable)
|
||||
|
||||
|
||||
# get_bundle_all_executables
|
||||
#
|
||||
# Scans the given bundle recursively for all executable files and accumulates
|
||||
# them into a variable.
|
||||
#
|
||||
function(get_bundle_all_executables bundle exes_var)
|
||||
set(exes "")
|
||||
|
||||
@ -235,15 +317,6 @@ function(get_bundle_all_executables bundle exes_var)
|
||||
endfunction(get_bundle_all_executables)
|
||||
|
||||
|
||||
# get_item_key
|
||||
#
|
||||
# Given a file (item) name, generate a key that should be unique considering the set of
|
||||
# libraries that need copying or fixing up to make a bundle standalone. This is
|
||||
# essentially the file name including extension with "." replaced by "_"
|
||||
#
|
||||
# This key is used as a prefix for CMake variables so that we can associate a set
|
||||
# of variables with a given item based on its key.
|
||||
#
|
||||
function(get_item_key item key_var)
|
||||
get_filename_component(item_name "${item}" NAME)
|
||||
if(WIN32)
|
||||
@ -254,14 +327,6 @@ function(get_item_key item key_var)
|
||||
endfunction(get_item_key)
|
||||
|
||||
|
||||
# clear_bundle_keys
|
||||
#
|
||||
# Loop over the list of keys, clearing all the variables associated with each
|
||||
# key. After the loop, clear the list of keys itself.
|
||||
#
|
||||
# Caller of get_bundle_keys should call clear_bundle_keys when done with list
|
||||
# of keys.
|
||||
#
|
||||
function(clear_bundle_keys keys_var)
|
||||
foreach(key ${${keys_var}})
|
||||
set(${key}_ITEM PARENT_SCOPE)
|
||||
@ -275,11 +340,6 @@ function(clear_bundle_keys keys_var)
|
||||
endfunction(clear_bundle_keys)
|
||||
|
||||
|
||||
# set_bundle_key_values
|
||||
#
|
||||
# Add a key to the list (if necessary) for the given item. If added,
|
||||
# also set all the variables associated with that key.
|
||||
#
|
||||
function(set_bundle_key_values keys_var context item exepath dirs copyflag)
|
||||
get_filename_component(item_name "${item}" NAME)
|
||||
|
||||
@ -335,14 +395,6 @@ function(set_bundle_key_values keys_var context item exepath dirs copyflag)
|
||||
endfunction(set_bundle_key_values)
|
||||
|
||||
|
||||
# get_bundle_keys
|
||||
#
|
||||
# Loop over all the executable and library files within the bundle (and given as
|
||||
# extra "${libs}") and accumulate a list of keys representing them. Set values
|
||||
# associated with each key such that we can loop over all of them and copy
|
||||
# prerequisite libs into the bundle and then do appropriate install_name_tool
|
||||
# fixups.
|
||||
#
|
||||
function(get_bundle_keys app libs dirs keys_var)
|
||||
set(${keys_var} PARENT_SCOPE)
|
||||
|
||||
@ -363,7 +415,7 @@ function(get_bundle_keys app libs dirs keys_var)
|
||||
# but that do not show up in otool -L output...)
|
||||
#
|
||||
foreach(lib ${libs})
|
||||
set_bundle_key_values(${keys_var} "${lib}" "${lib}" "${exepath}" "${dirs}" 1)
|
||||
set_bundle_key_values(${keys_var} "${lib}" "${lib}" "${exepath}" "${dirs}" 0)
|
||||
|
||||
set(prereqs "")
|
||||
get_prerequisites("${lib}" prereqs 1 1 "${exepath}" "${dirs}")
|
||||
@ -405,11 +457,6 @@ function(get_bundle_keys app libs dirs keys_var)
|
||||
endfunction(get_bundle_keys)
|
||||
|
||||
|
||||
# copy_resolved_item_into_bundle
|
||||
#
|
||||
# Copy a resolved item into the bundle if necessary. Copy is not necessary if
|
||||
# the resolved_item is "the same as" the resolved_embedded_item.
|
||||
#
|
||||
function(copy_resolved_item_into_bundle resolved_item resolved_embedded_item)
|
||||
if(WIN32)
|
||||
# ignore case on Windows
|
||||
@ -433,18 +480,48 @@ function(copy_resolved_item_into_bundle resolved_item resolved_embedded_item)
|
||||
endfunction(copy_resolved_item_into_bundle)
|
||||
|
||||
|
||||
# fixup_bundle_item
|
||||
#
|
||||
# Get the direct/non-system prerequisites of the resolved embedded item. For each
|
||||
# prerequisite, change the way it is referenced to the value of the _EMBEDDED_ITEM
|
||||
# keyed variable for that prerequisite. (Most likely changing to an "@executable_path"
|
||||
# style reference.)
|
||||
#
|
||||
# Also, change the id of the item being fixed up to its own _EMBEDDED_ITEM value.
|
||||
#
|
||||
# Accumulate changes in a local variable and make *one* call to install_name_tool
|
||||
# at the end of the function with all the changes at once.
|
||||
#
|
||||
function(copy_resolved_framework_into_bundle resolved_item resolved_embedded_item)
|
||||
if(WIN32)
|
||||
# ignore case on Windows
|
||||
string(TOLOWER "${resolved_item}" resolved_item_compare)
|
||||
string(TOLOWER "${resolved_embedded_item}" resolved_embedded_item_compare)
|
||||
else()
|
||||
set(resolved_item_compare "${resolved_item}")
|
||||
set(resolved_embedded_item_compare "${resolved_embedded_item}")
|
||||
endif()
|
||||
|
||||
if("${resolved_item_compare}" STREQUAL "${resolved_embedded_item_compare}")
|
||||
message(STATUS "warning: resolved_item == resolved_embedded_item - not copying...")
|
||||
else()
|
||||
if(BU_COPY_FULL_FRAMEWORK_CONTENTS)
|
||||
# Full Framework (everything):
|
||||
get_filename_component(resolved_dir "${resolved_item}" PATH)
|
||||
get_filename_component(resolved_dir "${resolved_dir}/../.." ABSOLUTE)
|
||||
get_filename_component(resolved_embedded_dir "${resolved_embedded_item}" PATH)
|
||||
get_filename_component(resolved_embedded_dir "${resolved_embedded_dir}/../.." ABSOLUTE)
|
||||
#message(STATUS "copying COMMAND ${CMAKE_COMMAND} -E copy_directory '${resolved_dir}' '${resolved_embedded_dir}'")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory "${resolved_dir}" "${resolved_embedded_dir}")
|
||||
else()
|
||||
# Framework lib itself:
|
||||
#message(STATUS "copying COMMAND ${CMAKE_COMMAND} -E copy ${resolved_item} ${resolved_embedded_item}")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${resolved_item}" "${resolved_embedded_item}")
|
||||
|
||||
# Plus Resources, if they exist:
|
||||
string(REGEX REPLACE "^(.*)/[^/]+/[^/]+/[^/]+$" "\\1/Resources" resolved_resources "${resolved_item}")
|
||||
string(REGEX REPLACE "^(.*)/[^/]+/[^/]+/[^/]+$" "\\1/Resources" resolved_embedded_resources "${resolved_embedded_item}")
|
||||
if(EXISTS "${resolved_resources}")
|
||||
#message(STATUS "copying COMMAND ${CMAKE_COMMAND} -E copy_directory '${resolved_resources}' '${resolved_embedded_resources}'")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory "${resolved_resources}" "${resolved_embedded_resources}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
file(RPATH_REMOVE FILE "${resolved_embedded_item}")
|
||||
endif(UNIX AND NOT APPLE)
|
||||
endfunction(copy_resolved_framework_into_bundle)
|
||||
|
||||
|
||||
function(fixup_bundle_item resolved_embedded_item exepath dirs)
|
||||
# This item's key is "ikey":
|
||||
#
|
||||
@ -467,6 +544,10 @@ function(fixup_bundle_item resolved_embedded_item exepath dirs)
|
||||
endif(NOT "${${rkey}_EMBEDDED_ITEM}" STREQUAL "")
|
||||
endforeach(pr)
|
||||
|
||||
if(BU_CHMOD_BUNDLE_ITEMS)
|
||||
execute_process(COMMAND chmod u+w "${resolved_embedded_item}")
|
||||
endif()
|
||||
|
||||
# Change this item's id and all of its references in one call
|
||||
# to install_name_tool:
|
||||
#
|
||||
@ -476,19 +557,6 @@ function(fixup_bundle_item resolved_embedded_item exepath dirs)
|
||||
endfunction(fixup_bundle_item)
|
||||
|
||||
|
||||
# fixup_bundle
|
||||
#
|
||||
# Fix up a bundle in-place and make it standalone, such that it can be drag-n-drop
|
||||
# copied to another machine and run on that machine as long as all of the system
|
||||
# libraries are compatible.
|
||||
#
|
||||
# Gather all the keys for all the executables and libraries in a bundle, and then,
|
||||
# for each key, copy each prerequisite into the bundle. Then fix each one up according
|
||||
# to its own list of prerequisites.
|
||||
#
|
||||
# Then clear all the keys and call verify_app on the final bundle to ensure that
|
||||
# it is truly standalone.
|
||||
#
|
||||
function(fixup_bundle app libs dirs)
|
||||
message(STATUS "fixup_bundle")
|
||||
message(STATUS " app='${app}'")
|
||||
@ -528,8 +596,14 @@ function(fixup_bundle app libs dirs)
|
||||
endif(show_status)
|
||||
|
||||
if(${${key}_COPYFLAG})
|
||||
copy_resolved_item_into_bundle("${${key}_RESOLVED_ITEM}"
|
||||
"${${key}_RESOLVED_EMBEDDED_ITEM}")
|
||||
set(item "${${key}_ITEM}")
|
||||
if(item MATCHES "[^/]+\\.framework/")
|
||||
copy_resolved_framework_into_bundle("${${key}_RESOLVED_ITEM}"
|
||||
"${${key}_RESOLVED_EMBEDDED_ITEM}")
|
||||
else()
|
||||
copy_resolved_item_into_bundle("${${key}_RESOLVED_ITEM}"
|
||||
"${${key}_RESOLVED_EMBEDDED_ITEM}")
|
||||
endif()
|
||||
endif(${${key}_COPYFLAG})
|
||||
endforeach(key)
|
||||
|
||||
@ -557,23 +631,12 @@ function(fixup_bundle app libs dirs)
|
||||
endfunction(fixup_bundle)
|
||||
|
||||
|
||||
# copy_and_fixup_bundle
|
||||
#
|
||||
# Makes a copy of the bundle "src" at location "dst" and then fixes up the
|
||||
# new copied bundle in-place at "dst"...
|
||||
#
|
||||
function(copy_and_fixup_bundle src dst libs dirs)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory "${src}" "${dst}")
|
||||
fixup_bundle("${dst}" "${libs}" "${dirs}")
|
||||
endfunction(copy_and_fixup_bundle)
|
||||
|
||||
|
||||
# verify_bundle_prerequisites
|
||||
#
|
||||
# Verifies that the sum of all prerequisites of all files inside the bundle
|
||||
# are contained within the bundle or are "system" libraries, presumed to exist
|
||||
# everywhere.
|
||||
#
|
||||
function(verify_bundle_prerequisites bundle result_var info_var)
|
||||
set(result 1)
|
||||
set(info "")
|
||||
@ -635,12 +698,6 @@ function(verify_bundle_prerequisites bundle result_var info_var)
|
||||
endfunction(verify_bundle_prerequisites)
|
||||
|
||||
|
||||
# verify_bundle_symlinks
|
||||
#
|
||||
# Verifies that any symlinks found in the bundle point to other files that are
|
||||
# already also in the bundle... Anything that points to an external file causes
|
||||
# this function to fail the verification.
|
||||
#
|
||||
function(verify_bundle_symlinks bundle result_var info_var)
|
||||
set(result 1)
|
||||
set(info "")
|
||||
@ -654,11 +711,6 @@ function(verify_bundle_symlinks bundle result_var info_var)
|
||||
endfunction(verify_bundle_symlinks)
|
||||
|
||||
|
||||
# verify_app
|
||||
#
|
||||
# Verifies that an application appears valid based on running analysis tools on it.
|
||||
# Calls message/FATAL_ERROR if the application is not verified.
|
||||
#
|
||||
function(verify_app app)
|
||||
set(verified 0)
|
||||
set(info "")
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This file is used by cmake.cxx to compute the CMAKE_ROOT location.
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# support for AT&T syntax assemblers, e.g. GNU as
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MESSAGE(STATUS "Loaded CMakeASM${ASM_DIALECT}Information - ASM${ASM_DIALECT} support is still experimental, please report issues")
|
||||
@ -28,18 +28,25 @@ IF("${CMAKE_BASE_NAME}" STREQUAL "as")
|
||||
SET(CMAKE_BASE_NAME gas)
|
||||
ENDIF("${CMAKE_BASE_NAME}" STREQUAL "as")
|
||||
|
||||
INCLUDE(Platform/${CMAKE_BASE_NAME} OPTIONAL)
|
||||
|
||||
IF(CMAKE_SYSTEM_PROCESSOR)
|
||||
INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
|
||||
ENDIF(CMAKE_SYSTEM_PROCESSOR)
|
||||
# Load compiler-specific information.
|
||||
SET(_INCLUDED_FILE "")
|
||||
IF(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
|
||||
INCLUDE(Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
|
||||
ENDIF(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
|
||||
IF(NOT _INCLUDED_FILE)
|
||||
INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-ASM-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
|
||||
INCLUDE(Platform/${CMAKE_BASE_NAME} OPTIONAL)
|
||||
ENDIF(NOT _INCLUDED_FILE)
|
||||
|
||||
INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
|
||||
IF(CMAKE_SYSTEM_PROCESSOR)
|
||||
INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
|
||||
IF(NOT _INCLUDED_FILE)
|
||||
INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
|
||||
ENDIF(NOT _INCLUDED_FILE)
|
||||
ENDIF(CMAKE_SYSTEM_PROCESSOR)
|
||||
|
||||
INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
|
||||
IF(NOT _INCLUDED_FILE)
|
||||
INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-ASM OPTIONAL)
|
||||
INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL)
|
||||
ENDIF(NOT _INCLUDED_FILE)
|
||||
|
||||
# Set default assembler file extensions:
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# support for the MS assembler, masm and masm64
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# Nothing here yet
|
||||
|
@ -16,7 +16,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
IF(NOT CMAKE_SKIP_COMPATIBILITY_TESTS)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
SET (CMAKE_MAKE_PROGRAM "make" CACHE STRING
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This file sets the basic flags for the C language in CMake.
|
||||
@ -26,6 +26,8 @@ ELSE(UNIX)
|
||||
SET(CMAKE_C_OUTPUT_EXTENSION .obj)
|
||||
ENDIF(UNIX)
|
||||
|
||||
SET(_INCLUDED_FILE 0)
|
||||
|
||||
# Load compiler-specific information.
|
||||
IF(CMAKE_C_COMPILER_ID)
|
||||
INCLUDE(Compiler/${CMAKE_C_COMPILER_ID}-C OPTIONAL)
|
||||
|
@ -21,8 +21,8 @@ IF(CMAKE_COMPILER_IS_MINGW)
|
||||
SET(MINGW 1)
|
||||
ENDIF(CMAKE_COMPILER_IS_MINGW)
|
||||
SET(CMAKE_CXX_COMPILER_ID_RUN 1)
|
||||
SET(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;H;o;O;obj;OBJ;def;DEF;rc;RC)
|
||||
SET(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm)
|
||||
SET(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
|
||||
SET(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP)
|
||||
SET(CMAKE_CXX_LINKER_PREFERENCE 30)
|
||||
SET(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This file sets the basic flags for the C++ language in CMake.
|
||||
@ -26,6 +26,8 @@ ELSE(UNIX)
|
||||
SET(CMAKE_CXX_OUTPUT_EXTENSION .obj)
|
||||
ENDIF(UNIX)
|
||||
|
||||
SET(_INCLUDED_FILE 0)
|
||||
|
||||
# Load compiler-specific information.
|
||||
IF(CMAKE_CXX_COMPILER_ID)
|
||||
INCLUDE(Compiler/${CMAKE_CXX_COMPILER_ID}-CXX OPTIONAL)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# this file has flags that are shared across languages and sets
|
||||
|
@ -22,7 +22,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CMAKE_DEPENDENT_OPTION option doc default depends force)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# determine the compiler to use for ASM using AT&T syntax, e.g. GNU as
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# determine the compiler to use for ASM programs
|
||||
@ -38,9 +38,9 @@ ELSE(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER)
|
||||
# we only get here if CMAKE_ASM${ASM_DIALECT}_COMPILER was specified using -D or a pre-made CMakeCache.txt
|
||||
# (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE
|
||||
#
|
||||
# if a compiler was specified by the user but without path,
|
||||
# if a compiler was specified by the user but without path,
|
||||
# now try to find it with the full path
|
||||
# if it is found, force it into the cache,
|
||||
# if it is found, force it into the cache,
|
||||
# if not, don't overwrite the setting (which was given by the user) with "NOTFOUND"
|
||||
GET_FILENAME_COMPONENT(_CMAKE_USER_ASM${ASM_DIALECT}_COMPILER_PATH "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" PATH)
|
||||
IF(NOT _CMAKE_USER_ASM${ASM_DIALECT}_COMPILER_PATH)
|
||||
@ -57,11 +57,30 @@ IF (NOT _CMAKE_TOOLCHAIN_LOCATION)
|
||||
GET_FILENAME_COMPONENT(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" PATH)
|
||||
ENDIF (NOT _CMAKE_TOOLCHAIN_LOCATION)
|
||||
|
||||
# If we have a gas/as cross compiler, they have usually some prefix, like
|
||||
|
||||
IF(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
|
||||
|
||||
# Table of per-vendor compiler id flags with expected output.
|
||||
LIST(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS GNU )
|
||||
SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_GNU "--version")
|
||||
SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_GNU "GNU assembler")
|
||||
|
||||
CMAKE_DETERMINE_COMPILER_ID_VENDOR(ASM${ASM_DIALECT})
|
||||
|
||||
IF(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
|
||||
MESSAGE(STATUS "The ASM${ASM_DIALECT} compiler identification is ${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}")
|
||||
ELSE(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
|
||||
MESSAGE(STATUS "The ASM${ASM_DIALECT} compiler identification is unknown")
|
||||
ENDIF(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
|
||||
|
||||
ENDIF()
|
||||
|
||||
|
||||
# If we have a gas/as cross compiler, they have usually some prefix, like
|
||||
# e.g. powerpc-linux-gas, arm-elf-gas or i586-mingw32msvc-gas .
|
||||
# The other tools of the toolchain usually have the same prefix
|
||||
# NAME_WE cannot be used since then this test will fail for names lile
|
||||
# "arm-unknown-nto-qnx6.3.0-gas.exe", where BASENAME would be
|
||||
# "arm-unknown-nto-qnx6.3.0-gas.exe", where BASENAME would be
|
||||
# "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
|
||||
IF (NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||
GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" NAME)
|
||||
@ -86,7 +105,7 @@ SET(_CMAKE_ASM_COMPILER_ARG1 "${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARG1}")
|
||||
SET(_CMAKE_ASM_COMPILER_ENV_VAR "${CMAKE_ASM${ASM_DIALECT}_COMPILER_ENV_VAR}")
|
||||
|
||||
# configure variables set in this file for fast reload later on
|
||||
CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeASMCompiler.cmake.in
|
||||
CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeASMCompiler.cmake.in
|
||||
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeASM${ASM_DIALECT}Compiler.cmake IMMEDIATE @ONLY)
|
||||
|
||||
SET(_CMAKE_ASM_COMPILER)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# Find the MS assembler (masm or masm64)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# determine the compiler to use for C programs
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# determine the compiler to use for C++ programs
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# Function to compile a source file to identify the compiler ABI.
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# Function to compile a source file to identify the compiler. This is
|
||||
@ -63,7 +63,7 @@ FUNCTION(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
|
||||
|
||||
SET(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE)
|
||||
SET(CMAKE_${lang}_PLATFORM_ID "${CMAKE_${lang}_PLATFORM_ID}" PARENT_SCOPE)
|
||||
SET(MSVC_${lang}_ARCHITECTURE_ID "${MSVC_${lang}_ARCHITECTURE_ID}"
|
||||
SET(MSVC_${lang}_ARCHITECTURE_ID "${MSVC_${lang}_ARCHITECTURE_ID}"
|
||||
PARENT_SCOPE)
|
||||
ENDFUNCTION(CMAKE_DETERMINE_COMPILER_ID)
|
||||
|
||||
@ -247,7 +247,7 @@ FUNCTION(CMAKE_DETERMINE_COMPILER_ID_CHECK lang file)
|
||||
# Return the information extracted.
|
||||
SET(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE)
|
||||
SET(CMAKE_${lang}_PLATFORM_ID "${CMAKE_${lang}_PLATFORM_ID}" PARENT_SCOPE)
|
||||
SET(MSVC_${lang}_ARCHITECTURE_ID "${MSVC_${lang}_ARCHITECTURE_ID}"
|
||||
SET(MSVC_${lang}_ARCHITECTURE_ID "${MSVC_${lang}_ARCHITECTURE_ID}"
|
||||
PARENT_SCOPE)
|
||||
SET(CMAKE_EXECUTABLE_FORMAT "${CMAKE_EXECUTABLE_FORMAT}" PARENT_SCOPE)
|
||||
ENDFUNCTION(CMAKE_DETERMINE_COMPILER_ID_CHECK lang)
|
||||
@ -261,6 +261,17 @@ ENDFUNCTION(CMAKE_DETERMINE_COMPILER_ID_CHECK lang)
|
||||
# We try running the compiler with the flag for each vendor and
|
||||
# matching its regular expression in the output.
|
||||
FUNCTION(CMAKE_DETERMINE_COMPILER_ID_VENDOR lang)
|
||||
|
||||
IF(NOT CMAKE_${lang}_COMPILER_ID_DIR)
|
||||
# We get here when this function is called not from within CMAKE_DETERMINE_COMPILER_ID()
|
||||
# This is done e.g. for detecting the compiler ID for assemblers.
|
||||
# Compute the directory in which to run the test and Create a clean working directory.
|
||||
SET(CMAKE_${lang}_COMPILER_ID_DIR ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CompilerId${lang})
|
||||
FILE(REMOVE_RECURSE ${CMAKE_${lang}_COMPILER_ID_DIR})
|
||||
FILE(MAKE_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR})
|
||||
ENDIF(NOT CMAKE_${lang}_COMPILER_ID_DIR)
|
||||
|
||||
|
||||
FOREACH(vendor ${CMAKE_${lang}_COMPILER_ID_VENDORS})
|
||||
SET(flags ${CMAKE_${lang}_COMPILER_ID_VENDOR_FLAGS_${vendor}})
|
||||
SET(regex ${CMAKE_${lang}_COMPILER_ID_VENDOR_REGEX_${vendor}})
|
||||
@ -272,6 +283,7 @@ FUNCTION(CMAKE_DETERMINE_COMPILER_ID_VENDOR lang)
|
||||
WORKING_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}
|
||||
OUTPUT_VARIABLE output ERROR_VARIABLE output
|
||||
RESULT_VARIABLE result
|
||||
TIMEOUT 10
|
||||
)
|
||||
IF("${output}" MATCHES "${regex}")
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||
@ -280,9 +292,15 @@ FUNCTION(CMAKE_DETERMINE_COMPILER_ID_VENDOR lang)
|
||||
SET(CMAKE_${lang}_COMPILER_ID "${vendor}" PARENT_SCOPE)
|
||||
BREAK()
|
||||
ELSE()
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||
"Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
|
||||
"did not match \"${regex}\":\n${output}")
|
||||
IF("${result}" MATCHES "timeout")
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||
"Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
|
||||
"terminated after 10 s due to timeout.")
|
||||
ELSE()
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||
"Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
|
||||
"did not match \"${regex}\":\n${output}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
ENDFUNCTION(CMAKE_DETERMINE_COMPILER_ID_VENDOR)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# determine the compiler to use for Fortran programs
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# determine the compiler to use for Java programs
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# determine the compiler to use for C programs
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This module is used by the Makefile generator to determin the following variables:
|
||||
@ -47,17 +47,17 @@ IF(CMAKE_HOST_UNIX)
|
||||
IF(CMAKE_UNAME)
|
||||
EXEC_PROGRAM(uname ARGS -s OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_NAME)
|
||||
EXEC_PROGRAM(uname ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION)
|
||||
IF(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux")
|
||||
IF(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|CYGWIN.*")
|
||||
EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
|
||||
RETURN_VALUE val)
|
||||
ELSE(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux")
|
||||
ELSE(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|CYGWIN.*")
|
||||
EXEC_PROGRAM(uname ARGS -p OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
|
||||
RETURN_VALUE val)
|
||||
IF("${val}" GREATER 0)
|
||||
EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
|
||||
RETURN_VALUE val)
|
||||
ENDIF("${val}" GREATER 0)
|
||||
ENDIF(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux")
|
||||
ENDIF(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|CYGWIN.*")
|
||||
# check the return of the last uname -m or -p
|
||||
IF("${val}" GREATER 0)
|
||||
SET(CMAKE_HOST_SYSTEM_PROCESSOR "unknown")
|
||||
|
@ -23,8 +23,8 @@
|
||||
# ===========================
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2009 Kitware, Inc.
|
||||
# Copyright 2009 Philip Lowman <philip@yhbt.com>
|
||||
# Copyright 2009-2010 Kitware, Inc.
|
||||
# Copyright 2009-2010 Philip Lowman <philip@yhbt.com>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
@ -33,7 +33,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# [INTERNAL]
|
||||
@ -47,6 +47,8 @@ function(_DetermineVSServicePackFromCompiler _OUT_VAR _cl_version)
|
||||
set(_version "vc90")
|
||||
elseif(${_cl_version} VERSION_EQUAL "15.00.30729.01")
|
||||
set(_version "vc90sp1")
|
||||
elseif(${_cl_version} VERSION_EQUAL "16.00.30319.01")
|
||||
set(_version "vc100")
|
||||
else()
|
||||
set(_version "")
|
||||
endif()
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This module is purposely no longer documented. It does nothing useful.
|
||||
|
@ -26,7 +26,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# if it's the MS C/CXX compiler, search for link
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This file is included in CMakeSystemSpecificInformation.cmake if
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This file is included in CMakeSystemSpecificInformation.cmake if
|
||||
@ -22,8 +22,8 @@ FIND_PROGRAM(CMAKE_ECLIPSE_EXECUTABLE NAMES eclipse DOC "The Eclipse executable"
|
||||
# so that Eclipse ca find the headers at runtime and parsing etc. works better
|
||||
# This is done here by actually running gcc with the options so it prints its
|
||||
# system include directories, which are parsed then and stored in the cache.
|
||||
MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _result _resultDefines)
|
||||
SET(${_result})
|
||||
MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _resultIncludeDirs _resultDefines)
|
||||
SET(${_resultIncludeDirs})
|
||||
SET(_gccOutput)
|
||||
FILE(WRITE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy" "\n" )
|
||||
EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} -v -E -x ${_lang} -dD dummy
|
||||
@ -32,24 +32,43 @@ MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _result _resultDefines)
|
||||
OUTPUT_VARIABLE _gccStdout )
|
||||
FILE(REMOVE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy")
|
||||
|
||||
# First find the system include dirs:
|
||||
IF( "${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+) *\n *End of (search) list" )
|
||||
SET(${_result} ${CMAKE_MATCH_1})
|
||||
STRING(REPLACE "\n" " " ${_result} "${${_result}}")
|
||||
SEPARATE_ARGUMENTS(${_result})
|
||||
|
||||
# split the output into lines and then remove leading and trailing spaces from each of them:
|
||||
STRING(REGEX MATCHALL "[^\n]+\n" _includeLines "${CMAKE_MATCH_1}")
|
||||
FOREACH(nextLine ${_includeLines})
|
||||
STRING(STRIP "${nextLine}" _includePath)
|
||||
LIST(APPEND ${_resultIncludeDirs} "${_includePath}")
|
||||
ENDFOREACH(nextLine)
|
||||
|
||||
ENDIF( "${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+) *\n *End of (search) list" )
|
||||
|
||||
IF( "${_gccStdout}" MATCHES "built-in>\"\n(.+)# 1 +\"dummy\"" )
|
||||
SET(_builtinDefines ${CMAKE_MATCH_1})
|
||||
# Remove the '# 1 "<command-line>"' lines
|
||||
STRING(REGEX REPLACE "# 1[^\n]+\n" "" _filteredOutput "${_builtinDefines}")
|
||||
# Remove the "#define " parts from the output:
|
||||
STRING(REGEX REPLACE "#define " "" _defineRemoved "${_filteredOutput}")
|
||||
# Replace the line breaks with spaces, so we can use separate arguments afterwards
|
||||
STRING(REGEX REPLACE "\n" " " _defineRemoved "${_defineRemoved}")
|
||||
# Remove space at the end, this would produce empty list items
|
||||
STRING(REGEX REPLACE " +$" "" ${_resultDefines} "${_defineRemoved}")
|
||||
SEPARATE_ARGUMENTS(${_resultDefines})
|
||||
ENDIF( "${_gccStdout}" MATCHES "built-in>\"\n(.+)# 1 +\"dummy\"" )
|
||||
|
||||
|
||||
# now find the builtin macros:
|
||||
STRING(REGEX MATCHALL "#define[^\n]+\n" _defineLines "${_gccStdout}")
|
||||
# A few example lines which the regexp below has to match properly:
|
||||
# #define MAX(a,b) ((a) > (b) ? (a) : (b))
|
||||
# #define __fastcall __attribute__((__fastcall__))
|
||||
# #define FOO (23)
|
||||
# #define __UINTMAX_TYPE__ long long unsigned int
|
||||
# #define __UINTMAX_TYPE__ long long unsigned int
|
||||
# #define __i386__ 1
|
||||
|
||||
FOREACH(nextLine ${_defineLines})
|
||||
STRING(REGEX MATCH "^#define +([A-Za-z_][A-Za-z0-9_]*)(\\([^\\)]+\\))? +(.+) *$" _dummy "${nextLine}")
|
||||
SET(_name "${CMAKE_MATCH_1}${CMAKE_MATCH_2}")
|
||||
STRING(STRIP "${CMAKE_MATCH_3}" _value)
|
||||
#MESSAGE(STATUS "m1: -${CMAKE_MATCH_1}- m2: -${CMAKE_MATCH_2}- m3: -${CMAKE_MATCH_3}-")
|
||||
|
||||
LIST(APPEND ${_resultDefines} "${_name}")
|
||||
IF(_value)
|
||||
LIST(APPEND ${_resultDefines} "${_value}")
|
||||
ELSE()
|
||||
LIST(APPEND ${_resultDefines} " ")
|
||||
ENDIF()
|
||||
ENDFOREACH(nextLine)
|
||||
|
||||
ENDMACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang)
|
||||
|
||||
# Save the current LC_ALL, LC_MESSAGES, and LANG environment variables and set them
|
||||
|
@ -10,7 +10,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
IF(NOT CMAKE_FIND_FRAMEWORKS_INCLUDED)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This file is included in CMakeSystemSpecificInformation.cmake if
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
SET (CMAKE_MAKE_PROGRAM "wmake" CACHE STRING
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
FIND_PROGRAM(CMAKE_MAKE_PROGRAM
|
||||
|
@ -39,7 +39,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CMAKE_FORCE_C_COMPILER compiler id)
|
||||
|
@ -9,13 +9,15 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This file sets the basic flags for the Fortran language in CMake.
|
||||
# It also loads the available platform file for the system-compiler
|
||||
# if it exists.
|
||||
|
||||
SET(_INCLUDED_FILE 0)
|
||||
|
||||
# Load compiler-specific information.
|
||||
IF(CMAKE_Fortran_COMPILER_ID)
|
||||
INCLUDE(Compiler/${CMAKE_Fortran_COMPILER_ID}-Fortran OPTIONAL)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic
|
||||
@ -52,6 +52,94 @@ IF(CMAKE_GENERATOR MATCHES "Makefiles")
|
||||
ENDIF(DEFINED CMAKE_RULE_MESSAGES)
|
||||
ENDIF(CMAKE_GENERATOR MATCHES "Makefiles")
|
||||
|
||||
|
||||
# GetDefaultWindowsPrefixBase
|
||||
#
|
||||
# Compute the base directory for CMAKE_INSTALL_PREFIX based on:
|
||||
# - is this 32-bit or 64-bit Windows
|
||||
# - is this 32-bit or 64-bit CMake running
|
||||
# - what architecture targets will be built
|
||||
#
|
||||
function(GetDefaultWindowsPrefixBase var)
|
||||
|
||||
# Try to guess what architecture targets will end up being built as,
|
||||
# even if CMAKE_SIZEOF_VOID_P is not computed yet... We need to know
|
||||
# the architecture of the targets being built to choose the right
|
||||
# default value for CMAKE_INSTALL_PREFIX.
|
||||
#
|
||||
if("${CMAKE_GENERATOR}" MATCHES "Win64")
|
||||
set(arch_hint "x64")
|
||||
elseif("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
|
||||
set(arch_hint "x64")
|
||||
elseif("$ENV{LIB}" MATCHES "(amd64|ia64)")
|
||||
set(arch_hint "x64")
|
||||
endif()
|
||||
|
||||
if(NOT arch_hint)
|
||||
set(arch_hint "x86")
|
||||
endif()
|
||||
|
||||
# default env in a 64-bit app on Win64:
|
||||
# ProgramFiles=C:\Program Files
|
||||
# ProgramFiles(x86)=C:\Program Files (x86)
|
||||
# ProgramW6432=C:\Program Files
|
||||
#
|
||||
# default env in a 32-bit app on Win64:
|
||||
# ProgramFiles=C:\Program Files (x86)
|
||||
# ProgramFiles(x86)=C:\Program Files (x86)
|
||||
# ProgramW6432=C:\Program Files
|
||||
#
|
||||
# default env in a 32-bit app on Win32:
|
||||
# ProgramFiles=C:\Program Files
|
||||
# ProgramFiles(x86) NOT DEFINED
|
||||
# ProgramW6432 NOT DEFINED
|
||||
|
||||
# By default, use the ProgramFiles env var as the base value of
|
||||
# CMAKE_INSTALL_PREFIX:
|
||||
#
|
||||
set(_PREFIX_ENV_VAR "ProgramFiles")
|
||||
|
||||
if ("$ENV{ProgramW6432}" STREQUAL "")
|
||||
# running on 32-bit Windows
|
||||
# must be a 32-bit CMake, too...
|
||||
#message("guess: this is a 32-bit CMake running on 32-bit Windows")
|
||||
else()
|
||||
# running on 64-bit Windows
|
||||
if ("$ENV{ProgramW6432}" STREQUAL "$ENV{ProgramFiles}")
|
||||
# 64-bit CMake
|
||||
#message("guess: this is a 64-bit CMake running on 64-bit Windows")
|
||||
if(NOT "${arch_hint}" STREQUAL "x64")
|
||||
# building 32-bit targets
|
||||
set(_PREFIX_ENV_VAR "ProgramFiles(x86)")
|
||||
endif()
|
||||
else()
|
||||
# 32-bit CMake
|
||||
#message("guess: this is a 32-bit CMake running on 64-bit Windows")
|
||||
if("${arch_hint}" STREQUAL "x64")
|
||||
# building 64-bit targets
|
||||
set(_PREFIX_ENV_VAR "ProgramW6432")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#if("${arch_hint}" STREQUAL "x64")
|
||||
# message("guess: you are building a 64-bit app")
|
||||
#else()
|
||||
# message("guess: you are building a 32-bit app")
|
||||
#endif()
|
||||
|
||||
if(NOT "$ENV{${_PREFIX_ENV_VAR}}" STREQUAL "")
|
||||
file(TO_CMAKE_PATH "$ENV{${_PREFIX_ENV_VAR}}" _base)
|
||||
elseif(NOT "$ENV{SystemDrive}" STREQUAL "")
|
||||
set(_base "$ENV{SystemDrive}/Program Files")
|
||||
else()
|
||||
set(_base "C:/Program Files")
|
||||
endif()
|
||||
|
||||
set(${var} "${_base}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
|
||||
# Set a variable to indicate whether the value of CMAKE_INSTALL_PREFIX
|
||||
# was initialized by the block below. This is useful for user
|
||||
# projects to change the default prefix while still allowing the
|
||||
@ -65,23 +153,11 @@ IF(CMAKE_HOST_UNIX)
|
||||
SET(CMAKE_INSTALL_PREFIX "/usr/local"
|
||||
CACHE PATH "Install path prefix, prepended onto install directories.")
|
||||
ELSE(CMAKE_HOST_UNIX)
|
||||
IF("$ENV{ProgramFiles}" MATCHES "^$")
|
||||
IF("$ENV{SystemDrive}" MATCHES "^$")
|
||||
SET(CMAKE_GENERIC_PROGRAM_FILES "C:/Program Files")
|
||||
ELSE("$ENV{SystemDrive}" MATCHES "^$")
|
||||
SET(CMAKE_GENERIC_PROGRAM_FILES "$ENV{SystemDrive}/Program Files")
|
||||
ENDIF("$ENV{SystemDrive}" MATCHES "^$")
|
||||
ELSE("$ENV{ProgramFiles}" MATCHES "^$")
|
||||
SET(CMAKE_GENERIC_PROGRAM_FILES "$ENV{ProgramFiles}")
|
||||
ENDIF("$ENV{ProgramFiles}" MATCHES "^$")
|
||||
GetDefaultWindowsPrefixBase(CMAKE_GENERIC_PROGRAM_FILES)
|
||||
SET(CMAKE_INSTALL_PREFIX
|
||||
"${CMAKE_GENERIC_PROGRAM_FILES}/${PROJECT_NAME}"
|
||||
CACHE PATH "Install path prefix, prepended onto install directories.")
|
||||
SET(CMAKE_GENERIC_PROGRAM_FILES)
|
||||
|
||||
# Make sure the prefix uses forward slashes.
|
||||
STRING(REGEX REPLACE "\\\\" "/"
|
||||
CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
||||
ENDIF(CMAKE_HOST_UNIX)
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This module is purposely no longer documented. It does nothing useful.
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This should be included before the _INIT variables are
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
FIND_PROGRAM(CMAKE_MAKE_PROGRAM make
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
FIND_PROGRAM(CMAKE_MAKE_PROGRAM mingw32-make.exe PATHS
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
|
||||
|
138
Modules/CMakeParseArguments.cmake
Normal file
138
Modules/CMakeParseArguments.cmake
Normal file
@ -0,0 +1,138 @@
|
||||
# CMAKE_PARSE_ARGUMENTS(<prefix> <options> <one_value_keywords> <multi_value_keywords> args...)
|
||||
#
|
||||
# CMAKE_PARSE_ARGUMENTS() is intended to be used in macros or functions for
|
||||
# parsing the arguments given to that macro or function.
|
||||
# It processes the arguments and defines a set of variables which hold the
|
||||
# values of the respective options.
|
||||
#
|
||||
# The <options> argument contains all options for the respective macro,
|
||||
# i.e. keywords which can be used when calling the macro without any value
|
||||
# following, like e.g. the OPTIONAL keyword of the install() command.
|
||||
#
|
||||
# The <one_value_keywords> argument contains all keywords for this macro
|
||||
# which are followed by one value, like e.g. DESTINATION keyword of the
|
||||
# install() command.
|
||||
#
|
||||
# The <multi_value_keywords> argument contains all keywords for this macro
|
||||
# which can be followed by more than one value, like e.g. the TARGETS or
|
||||
# FILES keywords of the install() command.
|
||||
#
|
||||
# When done, CMAKE_PARSE_ARGUMENTS() will have defined for each of the
|
||||
# keywords listed in <options>, <one_value_keywords> and
|
||||
# <multi_value_keywords> a variable composed of the given <prefix>
|
||||
# followed by "_" and the name of the respective keyword.
|
||||
# These variables will then hold the respective value from the argument list.
|
||||
# For the <options> keywords this will be TRUE or FALSE.
|
||||
#
|
||||
# All remaining arguments are collected in a variable
|
||||
# <prefix>_UNPARSED_ARGUMENTS, this can be checked afterwards to see whether
|
||||
# your macro was called with unrecognized parameters.
|
||||
#
|
||||
# As an example here a my_install() macro, which takes similar arguments as the
|
||||
# real install() command:
|
||||
#
|
||||
# function(MY_INSTALL)
|
||||
# set(options OPTIONAL FAST)
|
||||
# set(oneValueArgs DESTINATION RENAME)
|
||||
# set(multiValueArgs TARGETS CONFIGURATIONS)
|
||||
# cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
|
||||
# ...
|
||||
#
|
||||
# Assume my_install() has been called like this:
|
||||
# my_install(TARGETS foo bar DESTINATION bin OPTIONAL blub)
|
||||
#
|
||||
# After the cmake_parse_arguments() call the macro will have set the following
|
||||
# variables:
|
||||
# MY_INSTALL_OPTIONAL = TRUE
|
||||
# MY_INSTALL_FAST = FALSE (this option was not used when calling my_install()
|
||||
# MY_INSTALL_DESTINATION = "bin"
|
||||
# MY_INSTALL_RENAME = "" (was not used)
|
||||
# MY_INSTALL_TARGETS = "foo;bar"
|
||||
# MY_INSTALL_CONFIGURATIONS = "" (was not used)
|
||||
# MY_INSTALL_UNPARSED_ARGUMENTS = "blub" (no value expected after "OPTIONAL"
|
||||
#
|
||||
# You can the continue and process these variables.
|
||||
#
|
||||
# Keywords terminate lists of values, e.g. if directly after a one_value_keyword
|
||||
# another recognized keyword follows, this is interpreted as the beginning of
|
||||
# the new option.
|
||||
# E.g. my_install(TARGETS foo DESTINATION OPTIONAL) would result in
|
||||
# MY_INSTALL_DESTINATION set to "OPTIONAL", but MY_INSTALL_DESTINATION would
|
||||
# be empty and MY_INSTALL_OPTIONAL would be set to TRUE therefor.
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Alexander Neundorf <neundorf@kde.org>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
|
||||
if(__CMAKE_PARSE_ARGUMENTS_INCLUDED)
|
||||
return()
|
||||
endif()
|
||||
set(__CMAKE_PARSE_ARGUMENTS_INCLUDED TRUE)
|
||||
|
||||
|
||||
function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgNames)
|
||||
# first set all result variables to empty/FALSE
|
||||
foreach(arg_name ${_singleArgNames} ${_multiArgNames})
|
||||
set(${prefix}_${arg_name})
|
||||
endforeach(arg_name)
|
||||
|
||||
foreach(option ${_optionNames})
|
||||
set(${prefix}_${option} FALSE)
|
||||
endforeach(option)
|
||||
|
||||
set(${prefix}_UNPARSED_ARGUMENTS)
|
||||
|
||||
set(insideValues FALSE)
|
||||
set(currentArgName)
|
||||
|
||||
# now iterate over all arguments and fill the result variables
|
||||
foreach(currentArg ${ARGN})
|
||||
list(FIND _optionNames "${currentArg}" optionIndex) # ... then this marks the end of the arguments belonging to this keyword
|
||||
list(FIND _singleArgNames "${currentArg}" singleArgIndex) # ... then this marks the end of the arguments belonging to this keyword
|
||||
list(FIND _multiArgNames "${currentArg}" multiArgIndex) # ... then this marks the end of the arguments belonging to this keyword
|
||||
|
||||
if(${optionIndex} EQUAL -1 AND ${singleArgIndex} EQUAL -1 AND ${multiArgIndex} EQUAL -1)
|
||||
if(insideValues)
|
||||
if("${insideValues}" STREQUAL "SINGLE")
|
||||
set(${prefix}_${currentArgName} ${currentArg})
|
||||
set(insideValues FALSE)
|
||||
elseif("${insideValues}" STREQUAL "MULTI")
|
||||
list(APPEND ${prefix}_${currentArgName} ${currentArg})
|
||||
endif()
|
||||
else(insideValues)
|
||||
list(APPEND ${prefix}_UNPARSED_ARGUMENTS ${currentArg})
|
||||
endif(insideValues)
|
||||
else()
|
||||
if(NOT ${optionIndex} EQUAL -1)
|
||||
set(${prefix}_${currentArg} TRUE)
|
||||
set(insideValues FALSE)
|
||||
elseif(NOT ${singleArgIndex} EQUAL -1)
|
||||
set(currentArgName ${currentArg})
|
||||
set(${prefix}_${currentArgName})
|
||||
set(insideValues "SINGLE")
|
||||
elseif(NOT ${multiArgIndex} EQUAL -1)
|
||||
set(currentArgName ${currentArg})
|
||||
set(${prefix}_${currentArgName})
|
||||
set(insideValues "MULTI")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
endforeach(currentArg)
|
||||
|
||||
# propagate the result variables to the caller:
|
||||
foreach(arg_name ${_singleArgNames} ${_multiArgNames} ${_optionNames})
|
||||
set(${prefix}_${arg_name} ${${prefix}_${arg_name}} PARENT_SCOPE)
|
||||
endforeach(arg_name)
|
||||
set(${prefix}_UNPARSED_ARGUMENTS ${${prefix}_UNPARSED_ARGUMENTS} PARENT_SCOPE)
|
||||
|
||||
endfunction(CMAKE_PARSE_ARGUMENTS _options _singleArgs _multiArgs)
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# Function parse implicit linker options.
|
||||
|
@ -13,7 +13,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MESSAGE("CMAKE_SYSTEM is ${CMAKE_SYSTEM} ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION}")
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This file is included by cmGlobalGenerator::EnableLanguage.
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This file is used by EnableLanguage in cmGlobalGenerator to
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This file is used by EnableLanguage in cmGlobalGenerator to
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This file is used by EnableLanguage in cmGlobalGenerator to
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
INCLUDE(CMakeTestCompilerCommon)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
INCLUDE(CMakeTestCompilerCommon)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
function(PrintTestCompilerStatus LANG MSG)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
INCLUDE(CMakeTestCompilerCommon)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This file is used by EnableLanguage in cmGlobalGenerator to
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This file is used by EnableLanguage in cmGlobalGenerator to
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
FIND_PROGRAM(CMAKE_MAKE_PROGRAM NAMES gmake make smake)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# We use MSBuild as the build tool for VS 10
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# hard code these for fast backwards compatibility tests
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
FIND_PROGRAM(CMAKE_MAKE_PROGRAM
|
||||
@ -22,3 +22,4 @@ FIND_PROGRAM(CMAKE_MAKE_PROGRAM
|
||||
)
|
||||
MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM)
|
||||
SET(MSVC60 1)
|
||||
SET(MSVC_VERSION 1200)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
FIND_PROGRAM(CMAKE_MAKE_PROGRAM
|
||||
@ -23,3 +23,4 @@ FIND_PROGRAM(CMAKE_MAKE_PROGRAM
|
||||
)
|
||||
MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM)
|
||||
SET(MSVC71 1)
|
||||
SET(MSVC_VERSION 1310)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# hard code these for fast backwards compatibility tests
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
FIND_PROGRAM(CMAKE_MAKE_PROGRAM
|
||||
@ -22,3 +22,4 @@ FIND_PROGRAM(CMAKE_MAKE_PROGRAM
|
||||
)
|
||||
MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM)
|
||||
SET(MSVC70 1)
|
||||
SET(MSVC_VERSION 1300)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# VCExpress does not support cross compiling, which is necessary for Win CE
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# VCExpress does not support cross compiling, which is necessary for Win CE
|
||||
|
@ -26,7 +26,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
|
||||
|
@ -19,9 +19,41 @@
|
||||
# described below, for more information about component-specific
|
||||
# installations.
|
||||
#
|
||||
# Before including the CPack module, there are a variety of variables
|
||||
# that can be set to customize the resulting installers. The most
|
||||
# commonly-used variables are:
|
||||
# The CPACK_GENERATOR variable has different meanings in different
|
||||
# contexts. In your CMakeLists.txt file, CPACK_GENERATOR is a
|
||||
# *list of generators*: when run with no other arguments, CPack
|
||||
# will iterate over that list and produce one package for each
|
||||
# generator. In a CPACK_PROJECT_CONFIG_FILE, though, CPACK_GENERATOR
|
||||
# is a *string naming a single generator*. If you need per-cpack-
|
||||
# generator logic to control *other* cpack settings, then you need
|
||||
# a CPACK_PROJECT_CONFIG_FILE.
|
||||
#
|
||||
# The CMake source tree itself contains a CPACK_PROJECT_CONFIG_FILE.
|
||||
# See the top level file CMakeCPackOptions.cmake.in for an example.
|
||||
#
|
||||
# If set, the CPACK_PROJECT_CONFIG_FILE is included automatically
|
||||
# on a per-generator basis. It only need contain overrides.
|
||||
#
|
||||
# Here's how it works:
|
||||
# - cpack runs
|
||||
# - it includes CPackConfig.cmake
|
||||
# - it iterates over the generators listed in that file's
|
||||
# CPACK_GENERATOR list variable (unless told to use just a
|
||||
# specific one via -G on the command line...)
|
||||
#
|
||||
# - foreach generator, it then
|
||||
# - sets CPACK_GENERATOR to the one currently being iterated
|
||||
# - includes the CPACK_PROJECT_CONFIG_FILE
|
||||
# - produces the package for that generator
|
||||
#
|
||||
# This is the key: For each generator listed in CPACK_GENERATOR
|
||||
# in CPackConfig.cmake, cpack will *reset* CPACK_GENERATOR
|
||||
# internally to *the one currently being used* and then include
|
||||
# the CPACK_PROJECT_CONFIG_FILE.
|
||||
#
|
||||
# Before including this CPack module in your CMakeLists.txt file,
|
||||
# there are a variety of variables that can be set to customize
|
||||
# the resulting installers. The most commonly-used variables are:
|
||||
#
|
||||
# CPACK_PACKAGE_NAME - The name of the package (or application). If
|
||||
# not specified, defaults to the project name.
|
||||
@ -48,6 +80,11 @@
|
||||
# CPACK_PACKAGE_INSTALL_DIRECTORY - Installation directory on the
|
||||
# target system, e.g., "CMake 2.5".
|
||||
#
|
||||
# CPACK_PROJECT_CONFIG_FILE - File included at cpack time, once per
|
||||
# generator after setting CPACK_GENERATOR to the actual generator
|
||||
# being used. Allows per-generator setting of CPACK_* variables at
|
||||
# cpack time.
|
||||
#
|
||||
# CPACK_RESOURCE_FILE_LICENSE - License file for the project, which
|
||||
# will typically be displayed to the user (often with an explicit
|
||||
# "Accept" button, for graphical installers) prior to installation.
|
||||
@ -459,7 +496,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# Pick a configuration file
|
||||
|
@ -1,15 +1,18 @@
|
||||
# - The builtin (binary) CPack Deb generator (Unix only)
|
||||
# CPackDeb may be used to create Deb package using CPack.
|
||||
# CPackDeb is a CPack generator thus it uses the CPACK_XXX variables
|
||||
# used by CPack : http://www.cmake.org/Wiki/CMake:CPackConfiguration
|
||||
# used by CPack : http://www.cmake.org/Wiki/CMake:CPackConfiguration.
|
||||
# CPackDeb generator should work on any linux host but it will
|
||||
# produce better deb package when Debian specific tools 'dpkg-xxx'
|
||||
# are usable on the build system.
|
||||
#
|
||||
# However CPackRPM has specific features which are controlled by
|
||||
# the specifics CPACK_RPM_XXX variables.You'll find a detailed usage on
|
||||
# the wiki:
|
||||
# CPackDeb has specific features which are controlled by
|
||||
# the specifics CPACK_DEBIAN_XXX variables.You'll find a detailed usage on
|
||||
# the wiki:
|
||||
# http://www.cmake.org/Wiki/CMake:CPackPackageGenerators#DEB_.28UNIX_only.29
|
||||
# However as a handy reminder here comes the list of specific variables:
|
||||
#
|
||||
# CPACK_DEBIAN_PACKAGE_NAME
|
||||
# CPACK_DEBIAN_PACKAGE_NAME
|
||||
# Mandatory : YES
|
||||
# Default : CPACK_PACKAGE_NAME (lower case)
|
||||
# The debian package summary
|
||||
@ -19,12 +22,12 @@
|
||||
# The debian package version
|
||||
# CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
|
||||
# Mandatory : YES
|
||||
# Default : Output of dpkg --print-architecture or i386
|
||||
# Default : Output of dpkg --print-architecture (or i386 if dpkg is not found)
|
||||
# The debian package architecture
|
||||
# CPACK_DEBIAN_PACKAGE_DEPENDS
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# May be used to set deb dependencies.
|
||||
# May be used to set deb dependencies.
|
||||
# CPACK_DEBIAN_PACKAGE_MAINTAINER
|
||||
# Mandatory : YES
|
||||
# Default : CPACK_PACKAGE_CONTACT
|
||||
@ -41,6 +44,61 @@
|
||||
# Mandatory : YES
|
||||
# Default : 'optional'
|
||||
# The debian package priority
|
||||
# CPACK_DEBIAN_PACKAGE_HOMEPAGE
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# The URL of the web site for this package
|
||||
# CPACK_DEBIAN_PACKAGE_SHLIBDEPS
|
||||
# Mandatory : NO
|
||||
# Default : OFF
|
||||
# May be set to ON in order to use dpkg-shlibdeps to generate
|
||||
# better package dependency list.
|
||||
# You may need set CMAKE_INSTALL_RPATH toi appropriate value
|
||||
# if you use this feature, because if you don't dpkg-shlibdeps
|
||||
# may fail to find your own shared libs.
|
||||
# See http://www.cmake.org/Wiki/CMake_RPATH_handling.
|
||||
# CPACK_DEBIAN_PACKAGE_DEBUG
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# May be set when invoking cpack in order to trace debug informations
|
||||
# during CPackDeb run.
|
||||
# CPACK_DEBIAN_PACKAGE_PREDEPENDS
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# see http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
|
||||
# This field is like Depends, except that it also forces dpkg to complete installation of
|
||||
# the packages named before even starting the installation of the package which declares
|
||||
# the pre-dependency.
|
||||
# CPACK_DEBIAN_PACKAGE_ENHANCES
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# see http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
|
||||
# This field is similar to Suggests but works in the opposite direction.
|
||||
# It is used to declare that a package can enhance the functionality of another package.
|
||||
# CPACK_DEBIAN_PACKAGE_BREAKS
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# see http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
|
||||
# When one binary package declares that it breaks another, dpkg will refuse to allow the
|
||||
# package which declares Breaks be installed unless the broken package is deconfigured first,
|
||||
# and it will refuse to allow the broken package to be reconfigured.
|
||||
# CPACK_DEBIAN_PACKAGE_CONFLICTS
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# see http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
|
||||
# When one binary package declares a conflict with another using a Conflicts field,
|
||||
# dpkg will refuse to allow them to be installed on the system at the same time.
|
||||
# CPACK_DEBIAN_PACKAGE_PROVIDES
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# see http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
|
||||
# A virtual package is one which appears in the Provides control field of another package.
|
||||
# CPACK_DEBIAN_PACKAGE_REPLACES
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# see http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
|
||||
# Packages can declare in their control file that they should overwrite
|
||||
# files in certain other packages, or completely replace other packages.
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2007-2009 Kitware, Inc.
|
||||
@ -53,7 +111,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# CPack script for creating Debian package
|
||||
@ -69,6 +127,103 @@ IF(NOT UNIX)
|
||||
MESSAGE(FATAL_ERROR "CPackDeb.cmake may only be used under UNIX.")
|
||||
ENDIF(NOT UNIX)
|
||||
|
||||
# CPACK_DEBIAN_PACKAGE_SHLIBDEPS
|
||||
# If specify OFF, only user depends are used
|
||||
IF(NOT DEFINED CPACK_DEBIAN_PACKAGE_SHLIBDEPS)
|
||||
SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF)
|
||||
ENDIF(NOT DEFINED CPACK_DEBIAN_PACKAGE_SHLIBDEPS)
|
||||
|
||||
IF(CPACK_DEBIAN_PACKAGE_SHLIBDEPS)
|
||||
# dpkg-shlibdeps is a Debian utility for generating dependency list
|
||||
FIND_PROGRAM(SHLIBDEPS_EXECUTABLE dpkg-shlibdeps)
|
||||
|
||||
# Check version of the dpkg-shlibdeps tool using CPackRPM method
|
||||
IF(SHLIBDEPS_EXECUTABLE)
|
||||
EXECUTE_PROCESS(COMMAND ${SHLIBDEPS_EXECUTABLE} --version
|
||||
OUTPUT_VARIABLE _TMP_VERSION
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
STRING(REGEX MATCH "dpkg-shlibdeps version ([0-9]+\\.[0-9]+\\.[0-9]+)"
|
||||
SHLIBDEPS_EXECUTABLE_VERSION
|
||||
${_TMP_VERSION})
|
||||
SET(SHLIBDEPS_EXECUTABLE_VERSION "${CMAKE_MATCH_1}")
|
||||
IF(CPACK_DEBIAN_PACKAGE_DEBUG)
|
||||
MESSAGE( "CPackDeb Debug: dpkg-shlibdeps version is <${SHLIBDEPS_EXECUTABLE_VERSION}>")
|
||||
ENDIF(CPACK_DEBIAN_PACKAGE_DEBUG)
|
||||
|
||||
# Generating binary list - Get type of all install files
|
||||
EXECUTE_PROCESS(COMMAND find -type f
|
||||
COMMAND xargs file
|
||||
WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
|
||||
OUTPUT_VARIABLE CPACK_DEB_INSTALL_FILES)
|
||||
|
||||
# Convert to CMake list
|
||||
STRING(REGEX REPLACE "\n" ";" CPACK_DEB_INSTALL_FILES ${CPACK_DEB_INSTALL_FILES})
|
||||
|
||||
# Only dynamically linked ELF files are included
|
||||
# Extract only file name infront of ":"
|
||||
FOREACH ( _FILE ${CPACK_DEB_INSTALL_FILES})
|
||||
IF ( ${_FILE} MATCHES "ELF.*dynamically linked")
|
||||
STRING(REGEX MATCH "(^.*):" _FILE_NAME ${_FILE})
|
||||
LIST(APPEND CPACK_DEB_BINARY_FILES ${CMAKE_MATCH_1})
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
|
||||
MESSAGE( "CPackDeb: - Generating dependency list")
|
||||
|
||||
# Create blank control file for running dpkg-shlibdeps
|
||||
# There might be some other way to invoke dpkg-shlibdeps without creating this file
|
||||
# but standard debian package should not have anything that can collide with this file or directory
|
||||
FILE(MAKE_DIRECTORY ${CPACK_TEMPORARY_DIRECTORY}/debian)
|
||||
FILE(WRITE ${CPACK_TEMPORARY_DIRECTORY}/debian/control "")
|
||||
|
||||
# Execute dpkg-shlibdeps
|
||||
# --ignore-missing-info : allow dpkg-shlibdeps to run even if some libs do not belong to a package
|
||||
# -O : print to STDOUT
|
||||
EXECUTE_PROCESS(COMMAND ${SHLIBDEPS_EXECUTABLE} --ignore-missing-info -O ${CPACK_DEB_BINARY_FILES}
|
||||
WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
|
||||
OUTPUT_VARIABLE SHLIBDEPS_OUTPUT
|
||||
RESULT_VARIABLE SHLIBDEPS_RESULT
|
||||
ERROR_VARIABLE SHLIBDEPS_ERROR
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE )
|
||||
IF(CPACK_DEBIAN_PACKAGE_DEBUG)
|
||||
# dpkg-shlibdeps will throw some warnings if some input files are not binary
|
||||
MESSAGE( "CPackDeb Debug: dpkg-shlibdeps warnings \n${SHLIBDEPS_ERROR}")
|
||||
ENDIF(CPACK_DEBIAN_PACKAGE_DEBUG)
|
||||
IF (NOT SHLIBDEPS_RESULT EQUAL 0)
|
||||
MESSAGE (FATAL_ERROR "CPackDeb: dpkg-shlibdeps: ${SHLIBDEPS_ERROR}")
|
||||
ENDIF (NOT SHLIBDEPS_RESULT EQUAL 0)
|
||||
|
||||
#Get rid of prefix generated by dpkg-shlibdeps
|
||||
string (REGEX REPLACE "^.*Depends=" "" CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS ${SHLIBDEPS_OUTPUT})
|
||||
|
||||
IF(CPACK_DEBIAN_PACKAGE_DEBUG)
|
||||
MESSAGE( "CPackDeb Debug: Found dependency: ${CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS}")
|
||||
ENDIF(CPACK_DEBIAN_PACKAGE_DEBUG)
|
||||
|
||||
# Remove blank control file
|
||||
# Might not be safe if package actual contain file or directory named debian
|
||||
FILE(REMOVE_RECURSE "${CPACK_TEMPORARY_DIRECTORY}/debian")
|
||||
|
||||
# Append user depend if set
|
||||
IF (CPACK_DEBIAN_PACKAGE_DEPENDS)
|
||||
SET (CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS}, ${CPACK_DEBIAN_PACKAGE_DEPENDS}")
|
||||
ELSE (CPACK_DEBIAN_PACKAGE_DEPENDS)
|
||||
SET (CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS}")
|
||||
ENDIF (CPACK_DEBIAN_PACKAGE_DEPENDS)
|
||||
|
||||
ELSE (SHLIBDEPS_EXECUTABLE)
|
||||
IF(CPACK_DEBIAN_PACKAGE_DEBUG)
|
||||
MESSAGE( "CPackDeb Debug: Using only user-provided depends because dpkg-shlibdeps is not found.")
|
||||
ENDIF(CPACK_DEBIAN_PACKAGE_DEBUG)
|
||||
ENDIF(SHLIBDEPS_EXECUTABLE)
|
||||
|
||||
ELSE (CPACK_DEBIAN_PACKAGE_SHLIBDEPS)
|
||||
IF(CPACK_DEBIAN_PACKAGE_DEBUG)
|
||||
MESSAGE( "CPackDeb Debug: Using only user-provided depends")
|
||||
ENDIF(CPACK_DEBIAN_PACKAGE_DEBUG)
|
||||
ENDIF(CPACK_DEBIAN_PACKAGE_SHLIBDEPS)
|
||||
|
||||
# Let's define the control file found in debian package:
|
||||
|
||||
# Binary package:
|
||||
@ -84,7 +239,7 @@ ENDIF(NOT CPACK_DEBIAN_PACKAGE_NAME)
|
||||
# Version: (mandatory)
|
||||
IF(NOT CPACK_DEBIAN_PACKAGE_VERSION)
|
||||
IF(NOT CPACK_PACKAGE_VERSION)
|
||||
MESSAGE(FATAL_ERROR "Debian package requires a package version")
|
||||
MESSAGE(FATAL_ERROR "CPackDeb: Debian package requires a package version")
|
||||
ENDIF(NOT CPACK_PACKAGE_VERSION)
|
||||
SET(CPACK_DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
|
||||
ENDIF(NOT CPACK_DEBIAN_PACKAGE_VERSION)
|
||||
@ -95,7 +250,7 @@ IF(NOT CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
|
||||
# $ dpkg --print-architecture
|
||||
FIND_PROGRAM(DPKG_CMD dpkg)
|
||||
IF(NOT DPKG_CMD)
|
||||
MESSAGE(STATUS "Can not find dpkg in your path, default to i386.")
|
||||
MESSAGE(STATUS "CPackDeb: Can not find dpkg in your path, default to i386.")
|
||||
SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE i386)
|
||||
ENDIF(NOT DPKG_CMD)
|
||||
EXECUTE_PROCESS(COMMAND "${DPKG_CMD}" --print-architecture
|
||||
@ -116,7 +271,7 @@ ENDIF(NOT CPACK_DEBIAN_PACKAGE_DEPENDS)
|
||||
# Maintainer: (mandatory)
|
||||
IF(NOT CPACK_DEBIAN_PACKAGE_MAINTAINER)
|
||||
IF(NOT CPACK_PACKAGE_CONTACT)
|
||||
MESSAGE(FATAL_ERROR "Debian package requires a maintainer for a package, set CPACK_PACKAGE_CONTACT or CPACK_DEBIAN_PACKAGE_MAINTAINER")
|
||||
MESSAGE(FATAL_ERROR "CPackDeb: Debian package requires a maintainer for a package, set CPACK_PACKAGE_CONTACT or CPACK_DEBIAN_PACKAGE_MAINTAINER")
|
||||
ENDIF(NOT CPACK_PACKAGE_CONTACT)
|
||||
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_CONTACT})
|
||||
ENDIF(NOT CPACK_DEBIAN_PACKAGE_MAINTAINER)
|
||||
@ -124,7 +279,7 @@ ENDIF(NOT CPACK_DEBIAN_PACKAGE_MAINTAINER)
|
||||
# Description: (mandatory)
|
||||
IF(NOT CPACK_DEBIAN_PACKAGE_DESCRIPTION)
|
||||
IF(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY)
|
||||
MESSAGE(FATAL_ERROR "Debian package requires a summary for a package, set CPACK_PACKAGE_DESCRIPTION_SUMMARY or CPACK_DEBIAN_PACKAGE_DESCRIPTION")
|
||||
MESSAGE(FATAL_ERROR "CPackDeb: Debian package requires a summary for a package, set CPACK_PACKAGE_DESCRIPTION_SUMMARY or CPACK_DEBIAN_PACKAGE_DESCRIPTION")
|
||||
ENDIF(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY)
|
||||
SET(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
|
||||
ENDIF(NOT CPACK_DEBIAN_PACKAGE_DESCRIPTION)
|
||||
@ -147,13 +302,13 @@ ENDIF(NOT CPACK_DEBIAN_PACKAGE_PRIORITY )
|
||||
|
||||
# CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
||||
# This variable allow advanced user to add custom script to the control.tar.gz (inside the .deb archive)
|
||||
# Typical examples are:
|
||||
# Typical examples are:
|
||||
# - conffiles
|
||||
# - postinst
|
||||
# - postrm
|
||||
# - prerm"
|
||||
# Usage:
|
||||
# SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
||||
# SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
||||
# "${CMAKE_CURRENT_SOURCE_DIR/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postrm")
|
||||
|
||||
|
||||
|
@ -4,14 +4,14 @@
|
||||
# used by CPack : http://www.cmake.org/Wiki/CMake:CPackConfiguration
|
||||
#
|
||||
# However CPackRPM has specific features which are controlled by
|
||||
# the specifics CPACK_RPM_XXX variables. You'll find a detailed usage on
|
||||
# the wiki:
|
||||
# the specifics CPACK_RPM_XXX variables. You'll find a detailed usage on
|
||||
# the wiki:
|
||||
# http://www.cmake.org/Wiki/CMake:CPackPackageGenerators#RPM_.28Unix_Only.29
|
||||
# However as a handy reminder here comes the list of specific variables:
|
||||
#
|
||||
# CPACK_RPM_PACKAGE_SUMMARY
|
||||
# CPACK_RPM_PACKAGE_SUMMARY
|
||||
# Mandatory : YES
|
||||
# Default : CPACK_PACKAGE_DESCRIPTION
|
||||
# Default : CPACK_PACKAGE_DESCRIPTION_SUMMARY
|
||||
# The RPM package summary
|
||||
# CPACK_RPM_PACKAGE_NAME
|
||||
# Mandatory : YES
|
||||
@ -24,14 +24,14 @@
|
||||
# CPACK_RPM_PACKAGE_ARCHITECTURE
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# The RPM package architecture. This may be set to "noarch" if you
|
||||
# The RPM package architecture. This may be set to "noarch" if you
|
||||
# know you are building a noarch package.
|
||||
# CPACK_RPM_PACKAGE_RELEASE
|
||||
# Mandatory : YES
|
||||
# Default : 1
|
||||
# The RPM package release. This is the numbering of the RPM package
|
||||
# itself, i.e. the version of the packaging and not the version of the
|
||||
# content (see CPACK_RPM_PACKAGE_VERSION). One may change the default
|
||||
# The RPM package release. This is the numbering of the RPM package
|
||||
# itself, i.e. the version of the packaging and not the version of the
|
||||
# content (see CPACK_RPM_PACKAGE_VERSION). One may change the default
|
||||
# value if the previous packaging was buggy and/or you want to put here
|
||||
# a fancy Linux distro specific numbering.
|
||||
# CPACK_RPM_PACKAGE_LICENSE
|
||||
@ -42,10 +42,14 @@
|
||||
# Mandatory : YES
|
||||
# Default : "unknown"
|
||||
# The RPM package group.
|
||||
# CPACK_RPM_PACKAGE_VENDOR
|
||||
# CPACK_RPM_PACKAGE_VENDOR
|
||||
# Mandatory : YES
|
||||
# Default : CPACK_PACKAGE_VENDOR if set or "unknown"
|
||||
# The RPM package group.
|
||||
# The RPM package vendor.
|
||||
# CPACK_RPM_PACKAGE_URL
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# The projects URL.
|
||||
# CPACK_RPM_PACKAGE_DESCRIPTION
|
||||
# Mandatory : YES
|
||||
# Default : CPACK_PACKAGE_DESCRIPTION_FILE if set or "no package description available"
|
||||
@ -61,18 +65,38 @@
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# May be used to set RPM dependencies (requires).
|
||||
# Note that you must enclose the complete requires string between quotes,
|
||||
# Note that you must enclose the complete requires string between quotes,
|
||||
# for example:
|
||||
# set(CPACK_RPM_PACKAGE_REQUIRES "python >= 2.5.0, cmake >= 2.8")
|
||||
# CPACK_RPM_PACKAGES_PROVIDES
|
||||
# CPACK_RPM_PACKAGE_SUGGESTS
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# May be used to set weak RPM dependencies (suggests).
|
||||
# Note that you must enclose the complete requires string between quotes.
|
||||
# CPACK_RPM_PACKAGE_PROVIDES
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# May be used to set RPM dependencies (provides).
|
||||
# CPACK_RPM_PACKAGE_OBSOLETES
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# May be used to set RPM packages that are obsoleted by this one.
|
||||
# CPACK_RPM_PACKAGE_RELOCATABLE
|
||||
# Mandatory : NO
|
||||
# Default : CPACK_PACKAGE_RELOCATABLE
|
||||
# If this variable is set to TRUE or ON CPackRPM will try
|
||||
# to build a relocatable RPM package. A relocatable RPM may
|
||||
# be installed using rpm --prefix or --relocate in order to
|
||||
# install it at an alternate place see rpm(8).
|
||||
# Note that currently this may fail if CPACK_SET_DESTDIR is set to ON.
|
||||
# If CPACK_SET_DESTDIR is set then you will get a warning message
|
||||
# but if there is file installed with absolute path you'll get
|
||||
# unexpected behavior.
|
||||
# CPACK_RPM_SPEC_INSTALL_POST
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# May be used to set an RPM post-install command inside the spec file.
|
||||
# For example setting it to "/bin/true" may be used to prevent
|
||||
# May be used to set an RPM post-install command inside the spec file.
|
||||
# For example setting it to "/bin/true" may be used to prevent
|
||||
# rpmbuild to strip binaries.
|
||||
# CPACK_RPM_SPEC_MORE_DEFINE
|
||||
# Mandatory : NO
|
||||
@ -81,19 +105,19 @@
|
||||
# CPACK_RPM_PACKAGE_DEBUG
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# May be set when invoking cpack in order to trace debug informations
|
||||
# during CPack RPM run. For example you may launch CPack like this
|
||||
# May be set when invoking cpack in order to trace debug information
|
||||
# during CPack RPM run. For example you may launch CPack like this
|
||||
# cpack -D CPACK_RPM_PACKAGE_DEBUG=1 -G RPM
|
||||
# CPACK_RPM_USER_BINARY_SPECFILE
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# Default : -
|
||||
# May be set by the user in order to specify a USER binary spec file
|
||||
# to be used by CPackRPM instead of generating the file.
|
||||
# The specified file will be processed by CONFIGURE_FILE( @ONLY).
|
||||
# CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# If set CPack will generate a template for USER specified binary
|
||||
# If set CPack will generate a template for USER specified binary
|
||||
# spec file and stop with an error. For example launch CPack like this
|
||||
# cpack -D CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE=1 -G RPM
|
||||
# The user may then use this file in order to hand-craft is own
|
||||
@ -116,6 +140,12 @@
|
||||
# put after the %post or %postun section
|
||||
# One may verify which scriptlet has been included with
|
||||
# rpm -qp --scripts package.rpm
|
||||
# CPACK_RPM_CHANGELOG_FILE
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# May be used to embbed a changelog in the spec file.
|
||||
# The refered file will be read and directly put after the %changelog
|
||||
# section.
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2007-2009 Kitware, Inc.
|
||||
@ -127,7 +157,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# Author: Eric Noulard with the help of Alexander Neundorf.
|
||||
@ -141,23 +171,23 @@ IF(NOT UNIX)
|
||||
ENDIF(NOT UNIX)
|
||||
|
||||
# rpmbuild is the basic command for building RPM package
|
||||
# it may be a simple (symbolic) link to rpmb command.
|
||||
# it may be a simple (symbolic) link to rpm command.
|
||||
FIND_PROGRAM(RPMBUILD_EXECUTABLE rpmbuild)
|
||||
|
||||
# Check version of the rpmbuild tool this would be easier to
|
||||
# Check version of the rpmbuild tool this would be easier to
|
||||
# track bugs with users and CPackRPM debug mode.
|
||||
# We may use RPM version in order to check for available version dependent features
|
||||
# We may use RPM version in order to check for available version dependent features
|
||||
IF(RPMBUILD_EXECUTABLE)
|
||||
execute_process(COMMAND ${RPMBUILD_EXECUTABLE} --version
|
||||
OUTPUT_VARIABLE _TMP_VERSION
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
string(REGEX REPLACE "^.*\ " ""
|
||||
string(REGEX REPLACE "^.*\ " ""
|
||||
RPMBUILD_EXECUTABLE_VERSION
|
||||
${_TMP_VERSION})
|
||||
${_TMP_VERSION})
|
||||
IF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
MESSAGE("CPackRPM:Debug: rpmbuild version is <${RPMBUILD_EXECUTABLE_VERSION}>")
|
||||
ENDIF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
ENDIF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
ENDIF(RPMBUILD_EXECUTABLE)
|
||||
|
||||
IF(NOT RPMBUILD_EXECUTABLE)
|
||||
@ -165,14 +195,14 @@ IF(NOT RPMBUILD_EXECUTABLE)
|
||||
ENDIF(NOT RPMBUILD_EXECUTABLE)
|
||||
|
||||
# We may use RPM version in the future in order
|
||||
# to shut down warning about space in buildtree
|
||||
# to shut down warning about space in buildtree
|
||||
# some recent RPM version should support space in different places.
|
||||
# not checked [yet].
|
||||
IF(CPACK_TOPLEVEL_DIRECTORY MATCHES ".* .*")
|
||||
MESSAGE(FATAL_ERROR "${RPMBUILD_EXECUTABLE} can't handle paths with spaces, use a build directory without spaces for building RPMs.")
|
||||
ENDIF(CPACK_TOPLEVEL_DIRECTORY MATCHES ".* .*")
|
||||
|
||||
# If rpmbuild is found
|
||||
# If rpmbuild is found
|
||||
# we try to discover alien since we may be on non RPM distro like Debian.
|
||||
# In this case we may try to to use more advanced features
|
||||
# like generating RPM directly from DEB using alien.
|
||||
@ -182,7 +212,7 @@ IF(ALIEN_EXECUTABLE)
|
||||
MESSAGE(STATUS "alien found, we may be on a Debian based distro.")
|
||||
ENDIF(ALIEN_EXECUTABLE)
|
||||
|
||||
#
|
||||
#
|
||||
# Use user-defined RPM specific variables value
|
||||
# or generate reasonable default value from
|
||||
# CPACK_xxx generic values.
|
||||
@ -197,10 +227,10 @@ IF(NOT CPACK_RPM_PACKAGE_SUMMARY)
|
||||
IF(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY)
|
||||
STRING(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_RPM_PACKAGE_SUMMARY)
|
||||
ELSE(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY)
|
||||
SET(CPACK_RPM_PACKAGE_SUMMARY ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
|
||||
SET(CPACK_RPM_PACKAGE_SUMMARY ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
|
||||
ENDIF(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY)
|
||||
ENDIF(NOT CPACK_RPM_PACKAGE_SUMMARY)
|
||||
|
||||
|
||||
# CPACK_RPM_PACKAGE_NAME (mandatory)
|
||||
IF(NOT CPACK_RPM_PACKAGE_NAME)
|
||||
STRING(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_RPM_PACKAGE_NAME)
|
||||
@ -213,6 +243,11 @@ IF(NOT CPACK_RPM_PACKAGE_VERSION)
|
||||
ENDIF(NOT CPACK_PACKAGE_VERSION)
|
||||
SET(CPACK_RPM_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
|
||||
ENDIF(NOT CPACK_RPM_PACKAGE_VERSION)
|
||||
# Replace '-' in version with '_'
|
||||
# '-' character is an Illegal RPM version character
|
||||
# it is illegal because it is used to separate
|
||||
# RPM "Version" from RPM "Release"
|
||||
STRING(REPLACE "-" "_" CPACK_RPM_PACKAGE_VERSION ${CPACK_RPM_PACKAGE_VERSION})
|
||||
|
||||
# CPACK_RPM_PACKAGE_ARCHITECTURE (optional)
|
||||
IF(CPACK_RPM_PACKAGE_ARCHITECTURE)
|
||||
@ -260,7 +295,7 @@ ENDIF(NOT CPACK_RPM_PACKAGE_VENDOR)
|
||||
|
||||
# CPACK_RPM_PACKAGE_DESCRIPTION
|
||||
# The variable content may be either
|
||||
# - explicitely given by tthe user or
|
||||
# - explicitly given by the user or
|
||||
# - filled with the content of CPACK_PACKAGE_DESCRIPTION_FILE
|
||||
# if it is defined
|
||||
# - set to a default value
|
||||
@ -294,25 +329,36 @@ IF (CPACK_RPM_COMPRESSION_TYPE)
|
||||
ELSE(CPACK_RPM_COMPRESSION_TYPE)
|
||||
SET(CPACK_RPM_COMPRESSION_TYPE_TMP "")
|
||||
ENDIF(CPACK_RPM_COMPRESSION_TYPE)
|
||||
# CPACK_RPM_PACKAGE_REQUIRES
|
||||
# Placeholder used to specify binary RPM dependencies (if any)
|
||||
# see http://www.rpm.org/max-rpm/s1-rpm-depend-manual-dependencies.html
|
||||
IF(CPACK_RPM_PACKAGE_REQUIRES)
|
||||
IF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
MESSAGE("CPackRPM:Debug: User defined Requires:\n ${CPACK_RPM_PACKAGE_REQUIRES}")
|
||||
ENDIF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
SET(TMP_RPM_REQUIRES "Requires: ${CPACK_RPM_PACKAGE_REQUIRES}")
|
||||
ENDIF(CPACK_RPM_PACKAGE_REQUIRES)
|
||||
|
||||
# CPACK_RPM_PACKAGE_PROVIDES
|
||||
# Placeholder used to specify binary RPM dependencies (if any)
|
||||
# see http://www.rpm.org/max-rpm/s1-rpm-depend-manual-dependencies.html
|
||||
IF(CPACK_RPM_PACKAGE_PROVIDES)
|
||||
IF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
MESSAGE("CPackRPM:Debug: User defined Provides:\n ${CPACK_RPM_PACKAGE_PROVIDES}")
|
||||
ENDIF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
SET(TMP_RPM_PROVIDES "Provides: ${CPACK_RPM_PACKAGE_PROVIDES}")
|
||||
ENDIF(CPACK_RPM_PACKAGE_PROVIDES)
|
||||
if(CPACK_PACKAGE_RELOCATABLE)
|
||||
set(CPACK_RPM_PACKAGE_RELOCATABLE TRUE)
|
||||
endif(CPACK_PACKAGE_RELOCATABLE)
|
||||
if(CPACK_RPM_PACKAGE_RELOCATABLE)
|
||||
if(CPACK_RPM_PACKAGE_DEBUG)
|
||||
message("CPackRPM:Debug: Trying to build a relocatable package")
|
||||
endif(CPACK_RPM_PACKAGE_DEBUG)
|
||||
if(CPACK_SET_DESTDIR AND (NOT CPACK_SET_DESTDIR STREQUAL "I_ON"))
|
||||
message("CPackRPM:Warning: CPACK_SET_DESTDIR is set (=${CPACK_SET_DESTDIR}) while requesting a relocatable package (CPACK_RPM_PACKAGE_RELOCATABLE is set): this is not supported, the package won't be relocatable.")
|
||||
else(CPACK_SET_DESTDIR AND (NOT CPACK_SET_DESTDIR STREQUAL "I_ON"))
|
||||
set(CPACK_RPM_PACKAGE_PREFIX ${CPACK_PACKAGING_INSTALL_PREFIX})
|
||||
endif(CPACK_SET_DESTDIR AND (NOT CPACK_SET_DESTDIR STREQUAL "I_ON"))
|
||||
endif(CPACK_RPM_PACKAGE_RELOCATABLE)
|
||||
|
||||
# check if additional fields for RPM spec header are given
|
||||
FOREACH(_RPM_SPEC_HEADER URL REQUIRES SUGGESTS PROVIDES OBSOLETES PREFIX)
|
||||
IF(CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER})
|
||||
STRING(LENGTH ${_RPM_SPEC_HEADER} _PACKAGE_HEADER_STRLENGTH)
|
||||
MATH(EXPR _PACKAGE_HEADER_STRLENGTH "${_PACKAGE_HEADER_STRLENGTH} - 1")
|
||||
STRING(SUBSTRING ${_RPM_SPEC_HEADER} 1 ${_PACKAGE_HEADER_STRLENGTH} _PACKAGE_HEADER_TAIL)
|
||||
STRING(TOLOWER "${_PACKAGE_HEADER_TAIL}" _PACKAGE_HEADER_TAIL)
|
||||
STRING(SUBSTRING ${_RPM_SPEC_HEADER} 0 1 _PACKAGE_HEADER_NAME)
|
||||
SET(_PACKAGE_HEADER_NAME "${_PACKAGE_HEADER_NAME}${_PACKAGE_HEADER_TAIL}")
|
||||
IF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
MESSAGE("CPackRPM:Debug: User defined ${_PACKAGE_HEADER_NAME}:\n ${CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}}")
|
||||
ENDIF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
SET(TMP_RPM_${_RPM_SPEC_HEADER} "${_PACKAGE_HEADER_NAME}: ${CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}}")
|
||||
ENDIF(CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER})
|
||||
ENDFOREACH(_RPM_SPEC_HEADER)
|
||||
|
||||
# CPACK_RPM_SPEC_INSTALL_POST
|
||||
# May be used to define a RPM post intallation script
|
||||
@ -348,7 +394,7 @@ endif(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE)
|
||||
|
||||
# CPACK_RPM_PRE_INSTALL_SCRIPT_FILE
|
||||
# CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE
|
||||
# May be used to embbed a pre (un)installation script in the spec file.
|
||||
# May be used to embed a pre (un)installation script in the spec file.
|
||||
# The refered script file(s) will be read and directly
|
||||
# put after the %pre or %preun section
|
||||
if(CPACK_RPM_PRE_INSTALL_SCRIPT_FILE)
|
||||
@ -367,6 +413,19 @@ if(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE)
|
||||
endif(EXISTS ${CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE})
|
||||
endif(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE)
|
||||
|
||||
# CPACK_RPM_CHANGELOG_FILE
|
||||
# May be used to embed a changelog in the spec file.
|
||||
# The refered file will be read and directly put after the %changelog section
|
||||
if(CPACK_RPM_CHANGELOG_FILE)
|
||||
if(EXISTS ${CPACK_RPM_CHANGELOG_FILE})
|
||||
file(READ ${CPACK_RPM_CHANGELOG_FILE} CPACK_RPM_SPEC_CHANGELOG)
|
||||
else(EXISTS ${CPACK_RPM_CHANGELOG_FILE})
|
||||
message(SEND_ERROR "CPackRPM:Warning: CPACK_RPM_CHANGELOG_FILE <${CPACK_RPM_CHANGELOG_FILE}> does not exists - ignoring")
|
||||
endif(EXISTS ${CPACK_RPM_CHANGELOG_FILE})
|
||||
else(CPACK_RPM_CHANGELOG_FILE)
|
||||
set(CPACK_RPM_SPEC_CHANGELOG "* Sun Jul 4 2010 Erk <eric.noulard@gmail.com>\n Generated by CPack RPM (no Changelog file were provided)")
|
||||
endif(CPACK_RPM_CHANGELOG_FILE)
|
||||
|
||||
# CPACK_RPM_SPEC_MORE_DEFINE
|
||||
# This is a generated spec rpm file spaceholder
|
||||
IF(CPACK_RPM_SPEC_MORE_DEFINE)
|
||||
@ -396,18 +455,47 @@ SET(CPACK_RPM_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}")
|
||||
|
||||
# Use files tree to construct files command (spec file)
|
||||
# We should not forget to include symlinks (thus -o -type l)
|
||||
# We must remove the './' due to the local search (thus the sed)
|
||||
# We must remove the './' due to the local search and escape the
|
||||
# file name by enclosing it between double quotes (thus the sed)
|
||||
# Then we must authorize any man pages extension (adding * at the end)
|
||||
# because rpmbuild may automatically compress those files
|
||||
EXECUTE_PROCESS(COMMAND find -type f -o -type l
|
||||
COMMAND sed {s/\\.//}
|
||||
COMMAND sed {s/.*man.*\\/.*/&*/}
|
||||
COMMAND sed {s:.*/man.*/.*:&*:}
|
||||
COMMAND sed {s/\\.\\\(.*\\\)/\"\\1\"/}
|
||||
WORKING_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}"
|
||||
OUTPUT_VARIABLE CPACK_RPM_INSTALL_FILES)
|
||||
|
||||
if (CPACK_ABSOLUTE_DESTINATION_FILES)
|
||||
IF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
message("CPackRPM:Debug: Handling Absolute Destination Files: ${CPACK_ABSOLUTE_DESTINATION_FILES}")
|
||||
ENDIF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
# Remove trailing space
|
||||
string(STRIP "${CPACK_RPM_INSTALL_FILES}" CPACK_RPM_INSTALL_FILES_LIST)
|
||||
# Transform endline separated - string into CMake List
|
||||
string(REPLACE "\n" ";" CPACK_RPM_INSTALL_FILES_LIST "${CPACK_RPM_INSTALL_FILES_LIST}")
|
||||
# Remove unecessary quotes
|
||||
string(REPLACE "\"" "" CPACK_RPM_INSTALL_FILES_LIST "${CPACK_RPM_INSTALL_FILES_LIST}")
|
||||
# Remove ABSOLUTE install file from INSTALL FILE LIST
|
||||
list(REMOVE_ITEM CPACK_RPM_INSTALL_FILES_LIST ${CPACK_ABSOLUTE_DESTINATION_FILES})
|
||||
# Rebuild INSTALL_FILES
|
||||
set(CPACK_RPM_INSTALL_FILES "")
|
||||
foreach(F IN LISTS CPACK_RPM_INSTALL_FILES_LIST)
|
||||
set(CPACK_RPM_INSTALL_FILES "${CPACK_RPM_INSTALL_FILES}\"${F}\"\n")
|
||||
endforeach(F)
|
||||
# Build ABSOLUTE_INSTALL_FILES
|
||||
set(CPACK_RPM_ABSOLUTE_INSTALL_FILES "")
|
||||
foreach(F IN LISTS CPACK_ABSOLUTE_DESTINATION_FILES)
|
||||
set(CPACK_RPM_ABSOLUTE_INSTALL_FILES "${CPACK_RPM_ABSOLUTE_INSTALL_FILES}%config \"${F}\"\n")
|
||||
endforeach(F)
|
||||
IF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
message("CPackRPM:Debug: CPACK_RPM_ABSOLUTE_INSTALL_FILES=${CPACK_RPM_ABSOLUTE_INSTALL_FILES}")
|
||||
message("CPackRPM:Debug: CPACK_RPM_INSTALL_FILES=${CPACK_RPM_INSTALL_FILES}")
|
||||
ENDIF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
endif(CPACK_ABSOLUTE_DESTINATION_FILES)
|
||||
|
||||
# The name of the final spec file to be used by rpmbuild
|
||||
SET(CPACK_RPM_BINARY_SPECFILE "${CPACK_RPM_ROOTDIR}/SPECS/${CPACK_RPM_PACKAGE_NAME}.spec")
|
||||
|
||||
|
||||
# Print out some debug information if we were asked for that
|
||||
IF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
MESSAGE("CPackRPM:Debug: CPACK_TOPLEVEL_DIRECTORY = ${CPACK_TOPLEVEL_DIRECTORY}")
|
||||
@ -420,7 +508,7 @@ IF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
MESSAGE("CPackRPM:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = ${CPACK_PACKAGE_INSTALL_DIRECTORY}")
|
||||
MESSAGE("CPackRPM:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}")
|
||||
ENDIF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
|
||||
|
||||
# USER generated spec file handling.
|
||||
# We should generate a spec file template:
|
||||
# - either because the user asked for it : CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE
|
||||
@ -429,7 +517,7 @@ ENDIF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
IF(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE OR NOT CPACK_RPM_USER_BINARY_SPECFILE)
|
||||
FILE(WRITE ${CPACK_RPM_BINARY_SPECFILE}.in
|
||||
"# -*- rpm-spec -*-
|
||||
Buildroot: \@CPACK_RPM_DIRECTORY\@/\@CPACK_PACKAGE_FILE_NAME\@
|
||||
BuildRoot: \@CPACK_RPM_DIRECTORY\@/\@CPACK_PACKAGE_FILE_NAME\@
|
||||
Summary: \@CPACK_RPM_PACKAGE_SUMMARY\@
|
||||
Name: \@CPACK_RPM_PACKAGE_NAME\@
|
||||
Version: \@CPACK_RPM_PACKAGE_VERSION\@
|
||||
@ -437,11 +525,13 @@ Release: \@CPACK_RPM_PACKAGE_RELEASE\@
|
||||
License: \@CPACK_RPM_PACKAGE_LICENSE\@
|
||||
Group: \@CPACK_RPM_PACKAGE_GROUP\@
|
||||
Vendor: \@CPACK_RPM_PACKAGE_VENDOR\@
|
||||
\@TMP_RPM_URL\@
|
||||
\@TMP_RPM_REQUIRES\@
|
||||
\@TMP_RPM_PROVIDES\@
|
||||
\@TMP_RPM_OBSOLETES\@
|
||||
\@TMP_RPM_BUILDARCH\@
|
||||
|
||||
#p define prefix \@CMAKE_INSTALL_PREFIX\@
|
||||
\@TMP_RPM_PREFIX\@
|
||||
|
||||
%define _rpmdir \@CPACK_RPM_DIRECTORY\@
|
||||
%define _rpmfilename \@CPACK_RPM_FILE_NAME\@
|
||||
%define _unpackaged_files_terminate_build 0
|
||||
@ -449,7 +539,7 @@ Vendor: \@CPACK_RPM_PACKAGE_VENDOR\@
|
||||
\@TMP_RPM_SPEC_INSTALL_POST\@
|
||||
\@CPACK_RPM_SPEC_MORE_DEFINE\@
|
||||
\@CPACK_RPM_COMPRESSION_TYPE_TMP\@
|
||||
|
||||
|
||||
%description
|
||||
\@CPACK_RPM_PACKAGE_DESCRIPTION\@
|
||||
|
||||
@ -458,17 +548,17 @@ Vendor: \@CPACK_RPM_PACKAGE_VENDOR\@
|
||||
# We do only save CPack installed tree in _prepr
|
||||
# and then restore it in build.
|
||||
%prep
|
||||
mv $RPM_BUILD_ROOT \@CPACK_TOPLEVEL_DIRECTORY\@/tmpBBroot
|
||||
mv $RPM_BUILD_ROOT \"\@CPACK_TOPLEVEL_DIRECTORY\@/tmpBBroot\"
|
||||
|
||||
#p build
|
||||
|
||||
|
||||
%install
|
||||
if [ -e $RPM_BUILD_ROOT ];
|
||||
then
|
||||
mv \@CPACK_TOPLEVEL_DIRECTORY\@/tmpBBroot/* $RPM_BUILD_ROOT
|
||||
mv \"\@CPACK_TOPLEVEL_DIRECTORY\@/tmpBBroot/*\" $RPM_BUILD_ROOT
|
||||
else
|
||||
mv \@CPACK_TOPLEVEL_DIRECTORY\@/tmpBBroot $RPM_BUILD_ROOT
|
||||
fi
|
||||
mv \"\@CPACK_TOPLEVEL_DIRECTORY\@/tmpBBroot\" $RPM_BUILD_ROOT
|
||||
fi
|
||||
|
||||
%clean
|
||||
|
||||
@ -487,63 +577,42 @@ fi
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
${CPACK_RPM_INSTALL_FILES}
|
||||
${CPACK_RPM_ABSOLUTE_INSTALL_FILES}
|
||||
|
||||
%changelog
|
||||
* Sun Apr 4 2010 Erk <eric.noulard@gmail.com>
|
||||
Add support for specifying RPM compression type
|
||||
* Sat Nov 28 2009 Erk <eric.noulard@gmail.com>
|
||||
Refix backup/restore install tree for OpenSuSE 11.2
|
||||
* Sun Nov 22 2009 Erk <eric.noulard@gmail.com>
|
||||
Include symlinks in the file list.
|
||||
* Sat Nov 14 2009 Erk <eric.noulard@gmail.com>
|
||||
Replace prep and build step with backup and restore
|
||||
of the previously CPack installed tree. This should
|
||||
mimic what is expected in rpmbuild usual steps
|
||||
* Wed Nov 11 2009 Erk <eric.noulard@gmail.com>
|
||||
Add support for USER defined pre/post[un]install scripts
|
||||
* Wed Oct 07 2009 Erk <eric.noulard@gmail.com>
|
||||
Add user custom spec file support
|
||||
* Sat Oct 03 2009 Kami <cmoidavid@gmail.com>
|
||||
Update to handle more precisely the files section
|
||||
* Mon Oct 03 2008 Erk <eric.noulard@gmail.com>
|
||||
Update generator to handle optional dependencies using Requires
|
||||
Update DEBUG output typos.
|
||||
* Mon Aug 25 2008 Erk <eric.noulard@gmail.com>
|
||||
Update generator to handle optional post-install
|
||||
* Tue Aug 16 2007 Erk <eric.noulard@gmail.com>
|
||||
Generated by CPack RPM Generator and associated macros
|
||||
\@CPACK_RPM_SPEC_CHANGELOG\@
|
||||
")
|
||||
# Stop here if we were asked to only generate a template USER spec file
|
||||
# The generated file may then be used as a template by user who wants
|
||||
# to customize their own spec file.
|
||||
# to customize their own spec file.
|
||||
IF(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE)
|
||||
MESSAGE(FATAL_ERROR "CPackRPM: STOP here Generated USER binary spec file templare is: ${CPACK_RPM_BINARY_SPECFILE}.in")
|
||||
ENDIF(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE)
|
||||
ENDIF(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE OR NOT CPACK_RPM_USER_BINARY_SPECFILE)
|
||||
|
||||
# After that we may either use a user provided spec file
|
||||
# or generate one using appropriate variables value.
|
||||
# or generate one using appropriate variables value.
|
||||
IF(CPACK_RPM_USER_BINARY_SPECFILE)
|
||||
# User may have specified SPECFILE just use it
|
||||
MESSAGE("CPackRPM: Will use USER specified spec file: ${CPACK_RPM_USER_BINARY_SPECFILE}")
|
||||
# The user provided file is processed for @var replacement
|
||||
CONFIGURE_FILE(${CPACK_RPM_USER_BINARY_SPECFILE} ${CPACK_RPM_BINARY_SPECFILE} @ONLY)
|
||||
ELSE(CPACK_RPM_USER_BINARY_SPECFILE)
|
||||
# No User specified spec file, will use the generated spec file
|
||||
MESSAGE("CPackRPM: Will use GENERATED spec file: ${CPACK_RPM_BINARY_SPECFILE}")
|
||||
# Note the just created file is processed for @var replacement
|
||||
# No User specified spec file, will use the generated spec file
|
||||
MESSAGE("CPackRPM: Will use GENERATED spec file: ${CPACK_RPM_BINARY_SPECFILE}")
|
||||
# Note the just created file is processed for @var replacement
|
||||
CONFIGURE_FILE(${CPACK_RPM_BINARY_SPECFILE}.in ${CPACK_RPM_BINARY_SPECFILE} @ONLY)
|
||||
ENDIF(CPACK_RPM_USER_BINARY_SPECFILE)
|
||||
|
||||
IF(RPMBUILD_EXECUTABLE)
|
||||
# Now call rpmbuild using the SPECFILE
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND "${RPMBUILD_EXECUTABLE}" -bb
|
||||
--buildroot "${CPACK_RPM_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}"
|
||||
COMMAND "${RPMBUILD_EXECUTABLE}" -bb
|
||||
--buildroot "${CPACK_RPM_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}"
|
||||
"${CPACK_RPM_BINARY_SPECFILE}"
|
||||
WORKING_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}"
|
||||
ERROR_FILE "${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild.err"
|
||||
OUTPUT_FILE "${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild.out")
|
||||
OUTPUT_FILE "${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild.out")
|
||||
IF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
MESSAGE("CPackRPM:Debug: You may consult rpmbuild logs in: ")
|
||||
MESSAGE("CPackRPM:Debug: - ${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild.err")
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
IF(CMAKE_BINARY_DIR)
|
||||
|
@ -55,7 +55,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
OPTION(BUILD_TESTING "Build the testing tree." ON)
|
||||
@ -163,6 +163,11 @@ IF(BUILD_TESTING)
|
||||
SET(DART_TESTING_TIMEOUT 1500 CACHE STRING
|
||||
"Maximum time allowed before CTest will kill the test.")
|
||||
|
||||
SET(CTEST_SUBMIT_RETRY_DELAY 5 CACHE STRING
|
||||
"How long to wait between timed-out CTest submissions.")
|
||||
SET(CTEST_SUBMIT_RETRY_COUNT 3 CACHE STRING
|
||||
"How many times to retry timed-out CTest submissions.")
|
||||
|
||||
FIND_PROGRAM(MEMORYCHECK_COMMAND
|
||||
NAMES purify valgrind boundscheck
|
||||
PATHS
|
||||
@ -223,8 +228,10 @@ IF(BUILD_TESTING)
|
||||
ENDIF(NOT BUILDNAME)
|
||||
|
||||
# the build command
|
||||
BUILD_COMMAND(MAKECOMMAND CONFIGURATION "\${CTEST_CONFIGURATION_TYPE}")
|
||||
SET(MAKECOMMAND ${MAKECOMMAND} CACHE STRING "Command to build the project")
|
||||
BUILD_COMMAND(MAKECOMMAND_DEFAULT_VALUE
|
||||
CONFIGURATION "\${CTEST_CONFIGURATION_TYPE}")
|
||||
SET(MAKECOMMAND ${MAKECOMMAND_DEFAULT_VALUE}
|
||||
CACHE STRING "Command to build the project")
|
||||
|
||||
# the default build configuration the ctest build handler will use
|
||||
# if there is no -C arg given to ctest:
|
||||
@ -262,7 +269,9 @@ IF(BUILD_TESTING)
|
||||
SCPCOMMAND
|
||||
SLURM_SBATCH_COMMAND
|
||||
SLURM_SRUN_COMMAND
|
||||
SITE
|
||||
SITE
|
||||
CTEST_SUBMIT_RETRY_DELAY
|
||||
CTEST_SUBMIT_RETRY_COUNT
|
||||
)
|
||||
# BUILDNAME
|
||||
IF(NOT RUN_FROM_DART)
|
||||
|
@ -11,7 +11,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# Determine the current system, so this information can be used
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
IF(NOT RUN_FROM_CTEST_OR_DART)
|
||||
@ -65,6 +65,7 @@ IF(NOT _CTEST_TARGETS_ADDED)
|
||||
${CMAKE_CTEST_COMMAND} ${__conf_types} -D ${mode}
|
||||
)
|
||||
SET_PROPERTY(TARGET ${mode} PROPERTY RULE_LAUNCH_CUSTOM "")
|
||||
SET_PROPERTY(TARGET ${mode} PROPERTY FOLDER "CTestDashboardTargets")
|
||||
ENDFOREACH(mode)
|
||||
|
||||
# For Makefile generators add more granular targets.
|
||||
@ -79,6 +80,7 @@ IF(NOT _CTEST_TARGETS_ADDED)
|
||||
${CMAKE_CTEST_COMMAND} ${__conf_types} -D ${mode}${testtype}
|
||||
)
|
||||
SET_PROPERTY(TARGET ${mode}${testtype} PROPERTY RULE_LAUNCH_CUSTOM "")
|
||||
SET_PROPERTY(TARGET ${mode}${testtype} PROPERTY FOLDER "CTestDashboardTargets")
|
||||
ENDFOREACH(testtype)
|
||||
ENDFOREACH(mode)
|
||||
ENDIF("${CMAKE_GENERATOR}" MATCHES Make)
|
||||
|
@ -17,7 +17,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
INCLUDE(CheckCSourceCompiles)
|
||||
|
@ -21,7 +21,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CHECK_C_SOURCE_COMPILES SOURCE VAR)
|
||||
|
@ -21,7 +21,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CHECK_C_SOURCE_RUNS SOURCE VAR)
|
||||
|
@ -17,7 +17,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
INCLUDE(CheckCXXSourceCompiles)
|
||||
|
@ -21,7 +21,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CHECK_CXX_SOURCE_COMPILES SOURCE VAR)
|
||||
|
@ -21,7 +21,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CHECK_CXX_SOURCE_RUNS SOURCE VAR)
|
||||
|
@ -19,7 +19,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
macro(CHECK_FORTRAN_FUNCTION_EXISTS FUNCTION VARIABLE)
|
||||
|
@ -22,7 +22,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CHECK_FUNCTION_EXISTS FUNCTION VARIABLE)
|
||||
|
@ -25,7 +25,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CHECK_INCLUDE_FILE INCLUDE VARIABLE)
|
||||
|
@ -25,7 +25,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CHECK_INCLUDE_FILE_CXX INCLUDE VARIABLE)
|
||||
|
@ -22,7 +22,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CHECK_INCLUDE_FILES INCLUDE VARIABLE)
|
||||
|
@ -23,7 +23,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CHECK_LIBRARY_EXISTS LIBRARY FUNCTION LOCATION VARIABLE)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MESSAGE(SEND_ERROR
|
||||
|
@ -25,7 +25,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
INCLUDE(CheckCSourceCompiles)
|
||||
|
@ -23,7 +23,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CHECK_SYMBOL_EXISTS SYMBOL FILES VARIABLE)
|
||||
|
@ -43,7 +43,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
include(CheckIncludeFile)
|
||||
|
@ -23,7 +23,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CHECK_VARIABLE_EXISTS VAR VARIABLE)
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This module is shared by multiple languages; use include blocker.
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This module is shared by multiple languages; use include blocker.
|
||||
|
@ -9,7 +9,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# This module is shared by multiple languages; use include blocker.
|
||||
|
@ -29,7 +29,7 @@
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
OPTION(BUILD_TESTING "Build the testing tree." ON)
|
||||
|
@ -84,3 +84,7 @@ CurlOptions: @CTEST_CURL_OPTIONS@
|
||||
# warning, if you add new options here that have to do with submit,
|
||||
# you have to update cmCTestSubmitCommand.cxx
|
||||
|
||||
# For CTest submissions that timeout, these options
|
||||
# specify behavior for retrying the submission
|
||||
CTestSubmitRetryDelay: @CTEST_SUBMIT_RETRY_DELAY@
|
||||
CTestSubmitRetryCount: @CTEST_SUBMIT_RETRY_COUNT@
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user