Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Fred Wright
CMake
Commits
4bf136ff
Commit
4bf136ff
authored
Feb 05, 2007
by
Bill Hoffman
Browse files
ENH: merge in changes from branch
parent
86d7c4d7
Changes
46
Hide whitespace changes
Inline
Side-by-side
CMakeLists.txt
View file @
4bf136ff
...
...
@@ -5,9 +5,9 @@ MARK_AS_ADVANCED(CMAKE_BACKWARDS_COMPATIBILITY)
# The CMake version number.
SET
(
CMake_VERSION_MAJOR 2
)
SET
(
CMake_VERSION_MINOR 4
)
SET
(
CMake_VERSION_PATCH
6
)
SET
(
CMake_VERSION_PATCH
7
)
# for an actual release this should not be defined
#
SET(CMake_VERSION_RC
2
)
SET
(
CMake_VERSION_RC
1
)
SET
(
CMake_VERSION
"
${
CMake_VERSION_MAJOR
}
.
${
CMake_VERSION_MINOR
}
"
)
SET
(
CMake_VERSION_FULL
"
${
CMake_VERSION
}
.
${
CMake_VERSION_PATCH
}
"
)
...
...
@@ -390,9 +390,44 @@ IF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
SET
(
CPACK_SOURCE_STRIP_FILES
""
)
SET
(
CPACK_PACKAGE_EXECUTABLES
"ccmake"
"CMake"
)
ENDIF
(
WIN32 AND NOT UNIX
)
# cygwin specific packaging stuff
IF
(
CYGWIN
)
SET
(
CPACK_PACKAGE_NAME cmake
)
# setup the name of the package for cygwin cmake-2.4.3
SET
(
CPACK_PACKAGE_FILE_NAME
"
${
CPACK_PACKAGE_NAME
}
-
${
CMake_VERSION_MAJOR
}
.
${
CMake_VERSION_MINOR
}
.
${
CMake_VERSION_PATCH
}
"
)
# the source has the same name as the binary
SET
(
CPACK_SOURCE_PACKAGE_FILE_NAME
${
CPACK_PACKAGE_FILE_NAME
}
)
# Create a cygwin version number in case there are changes for cygwin
# that are not reflected upstream in CMake
SET
(
CPACK_CYGWIN_PATCH_NUMBER 1
)
# if we are on cygwin and have cpack, then force the
# doc, data and man dirs to conform to cygwin style directories
SET
(
CMAKE_DOC_DIR
"/share/doc/
${
CPACK_PACKAGE_FILE_NAME
}
"
)
SET
(
CMAKE_DATA_DIR
"/share/
${
CPACK_PACKAGE_FILE_NAME
}
"
)
SET
(
CMAKE_MAN_DIR
"/share/man"
)
# let the user know we just forced these values
MESSAGE
(
STATUS
"Setup for Cygwin packaging"
)
MESSAGE
(
STATUS
"Override cache CMAKE_DOC_DIR =
${
CMAKE_DOC_DIR
}
"
)
MESSAGE
(
STATUS
"Override cache CMAKE_DATA_DIR =
${
CMAKE_DATA_DIR
}
"
)
MESSAGE
(
STATUS
"Override cache CMAKE_MAN_DIR =
${
CMAKE_MAN_DIR
}
"
)
# These files are required by the cmCPackCygwinSourceGenerator and the files
# put into the release tar files.
SET
(
CPACK_CYGWIN_BUILD_SCRIPT
"
${
CMake_BINARY_DIR
}
/@CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@.sh"
)
SET
(
CPACK_CYGWIN_PATCH_FILE
"
${
CMake_BINARY_DIR
}
/@CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@.patch"
)
# include the sub directory for cygwin releases
SUBDIRS
(
Utilities/Release/Cygwin
)
# when packaging source make sure the .build directory is not included
SET
(
CPACK_SOURCE_IGNORE_FILES
"/CVS/"
"/
\\\\
.build/"
"/
\\\\
.svn/"
"
\\\\
.swp$"
"
\\\\
.#"
"/#"
"~$"
)
ENDIF
(
CYGWIN
)
# include CPack model once all variables are set
INCLUDE
(
CPack
)
ENDIF
(
EXISTS
"
${
CMAKE_ROOT
}
/Modules/CPack.cmake"
)
# configure the CTestScript.cmake file into the binary directory
CONFIGURE_FILE
(
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/Templates/CTestScript.cmake.in"
"
${
CMAKE_CURRENT_BINARY_DIR
}
/CTestScript.cmake"
@ONLY IMMEDIATE
)
...
...
ChangeLog.manual
View file @
4bf136ff
Changes in CMake 2.4.7
* Add support for cygwin setup packages to setup
* Fix uninstall with DESTDIR
* If COMPILE_FLAGS is changed on a target the object files will now recompile
* Fix Bug 3512 - precompiled header flag mapping on VS.
* Do not run custom commands with relative paths if the working directory is set.
* Fix bugs 3277, 4341, 4341 make pdb files match the target name correctly
* handle user set NODEFAULTLIB correctly in VS projects
* Fix external project for VS 2005 service pack 1 GUID not set correctly
* Fix Kdevelop problem where files could end up duplicated
Changes in CMake 2.4.6
* Remove svn test in ctestctest3
...
...
Modules/CPack.cmake
View file @
4bf136ff
...
...
@@ -99,6 +99,10 @@ IF(NOT CPACK_GENERATOR)
SET
(
CPACK_GENERATOR
"STGZ;TGZ;TZ"
)
ENDIF
(
APPLE
)
SET
(
CPACK_SOURCE_GENERATOR
"TGZ;TZ"
)
IF
(
CYGWIN
)
SET
(
CPACK_SOURCE_GENERATOR
"CygwinSource"
)
SET
(
CPACK_GENERATOR
"CygwinBinary"
)
ENDIF
(
CYGWIN
)
ELSE
(
UNIX
)
SET
(
CPACK_GENERATOR
"NSIS;ZIP"
)
SET
(
CPACK_SOURCE_GENERATOR
"ZIP"
)
...
...
Modules/FindKDE4.cmake
View file @
4bf136ff
# Find KDE4 and provide all necessary variables and macros to compile software for it.
# It looks for KDE 4 in the following directories in the given order:
# - CMAKE_INSTALL_PREFIX
# - KDEDIR
# - KDEDIR
S
# - /opt/kde4
# - /opt/kde
#
# Please look in FindKDE4Internal.cmake and KDE4Macros.cmake for more information.
# They are installed with the KDE 4 libraries in $KDEDIR/share/apps/cmake/modules/.
# They are installed with the KDE 4 libraries in $KDEDIR
S
/share/apps/cmake/modules/.
#
# Author: Alexander Neundorf <neundorf@kde.org>
...
...
Modules/FindPkgConfig.cmake
0 → 100644
View file @
4bf136ff
# - a pkg-config module for CMake
#
# Usage:
# pkg_check_modules(<PREFIX> [REQUIRED] <MODULE> [<MODULE>]*)
# checks for all the given modules
#
# pkg_search_module(<PREFIX> [REQUIRED] <MODULE> [<MODULE>]*)
# checks for given modules and uses the first working one
#
# When the 'REQUIRED' argument was set, macros will fail with an error
# when module(s) could not be found
#
# It sets the following variables:
# PKG_CONFIG_FOUND ... true iff pkg-config works on the system
# PKG_CONFIG_EXECUTABLE ... pathname of the pkg-config program
# <PREFIX>_FOUND ... set to 1 iff module(s) exist
#
# For the following variables two sets of values exist; first one is the
# common one and has the given PREFIX. The second set contains flags
# which are given out when pkgconfig was called with the '--static'
# option.
# <XPREFIX>_LIBRARIES ... only the libraries (w/o the '-l')
# <XPREFIX>_LIBRARY_DIRS ... the paths of the libraries (w/o the '-L')
# <XPREFIX>_LDFLAGS ... all required linker flags
# <XPREFIX>_LDFLAGS_OTHERS ... all other linker flags
# <XPREFIX>_INCLUDE_DIRS ... the '-I' preprocessor flags (w/o the '-I')
# <XPREFIX>_CFLAGS ... all required cflags
# <XPREFIX>_CFLAGS_OTHERS ... the other compiler flags
#
# <XPREFIX> = <PREFIX> for common case
# <XPREFIX> = <PREFIX>_STATIC for static linking
#
# There are some special variables whose prefix depends on the count
# of given modules. When there is only one module, <PREFIX> stays
# unchanged. When there are multiple modules, the prefix will be
# changed to <PREFIX>_<MODNAME>:
# <XPREFIX>_VERSION ... version of the module
# <XPREFIX>_PREFIX ... prefix-directory of the module
# <XPREFIX>_INCLUDEDIR ... include-dir of the module
# <XPREFIX>_LIBDIR ... lib-dir of the module
#
# <XPREFIX> = <PREFIX> when |MODULES| == 1, else
# <XPREFIX> = <PREFIX>_<MODNAME>
#
# A <MODULE> parameter can have the following formats:
# {MODNAME} ... matches any version
# {MODNAME}>={VERSION} ... at least version <VERSION> is required
# {MODNAME}={VERSION} ... exactly version <VERSION> is required
# {MODNAME}<={VERSION} ... modules must not be newer than <VERSION>
#
# Examples
# pkg_check_modules (GLIB2 glib-2.0)
#
# pkg_check_modules (GLIB2 glib-2.0>=2.10)
# requires at least version 2.10 of glib2 and defines e.g.
# GLIB2_VERSION=2.10.3
#
# pkg_check_modules (FOO glib-2.0>=2.10 gtk+-2.0)
# requires both glib2 and gtk2, and defines e.g.
# FOO_glib-2.0_VERSION=2.10.3
# FOO_gtk+-2.0_VERSION=2.8.20
#
# pkg_check_modules (XRENDER REQUIRED xrender)
# defines e.g.:
# XRENDER_LIBRARIES=Xrender;X11
# XRENDER_STATIC_LIBRARIES=Xrender;X11;pthread;Xau;Xdmcp
#
# pkg_search_module (BAR libxml-2.0 libxml2 libxml>=2)
# Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
# Redistribution and use, with or without modification, are permitted
# provided that the following conditions are met:
#
# 1. Redistributions must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# 2. The name of the author may not be used to endorse or promote
# products derived from this software without specific prior
# written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
### Common stuff ####
set
(
PKG_CONFIG_VERSION 1
)
set
(
PKG_CONFIG_FOUND 0
)
find_program
(
PKG_CONFIG_EXECUTABLE NAMES pkg-config DOC
"pkg-config executable"
)
mark_as_advanced
(
PKG_CONFIG_EXECUTABLE
)
if
(
PKG_CONFIG_EXECUTABLE
)
set
(
PKG_CONFIG_FOUND 1
)
endif
(
PKG_CONFIG_EXECUTABLE
)
# Unsets the given variables
macro
(
_pkgconfig_unset var
)
set
(
${
var
}
""
CACHE INTERNAL
""
)
endmacro
(
_pkgconfig_unset
)
macro
(
_pkgconfig_set var value
)
set
(
${
var
}
${
value
}
CACHE INTERNAL
""
)
endmacro
(
_pkgconfig_set
)
# Invokes pkgconfig, cleans up the result and sets variables
macro
(
_pkgconfig_invoke _pkglist _prefix _varname _regexp
)
set
(
_pkgconfig_invoke_result
)
execute_process
(
COMMAND
${
PKG_CONFIG_EXECUTABLE
}
${
ARGN
}
${
_pkglist
}
OUTPUT_VARIABLE _pkgconfig_invoke_result
RESULT_VARIABLE _pkgconfig_failed
)
if
(
_pkgconfig_failed
)
set
(
_pkgconfig_
${
_varname
}
""
)
_pkgconfig_unset
(
${
_prefix
}
_
${
_varname
}
)
else
(
_pkgconfig_failed
)
string
(
REGEX REPLACE
"[
\r\n
]"
" "
_pkgconfig_invoke_result
"
${
_pkgconfig_invoke_result
}
"
)
string
(
REGEX REPLACE
" +$"
""
_pkgconfig_invoke_result
"
${
_pkgconfig_invoke_result
}
"
)
if
(
NOT
${
_regexp
}
STREQUAL
""
)
string
(
REGEX REPLACE
"
${
_regexp
}
"
" "
_pkgconfig_invoke_result
"
${
_pkgconfig_invoke_result
}
"
)
endif
(
NOT
${
_regexp
}
STREQUAL
""
)
separate_arguments
(
_pkgconfig_invoke_result
)
#message(STATUS " ${_varname} ... ${_pkgconfig_invoke_result}")
set
(
_pkgconfig_
${
_varname
}
${
_pkgconfig_invoke_result
}
)
_pkgconfig_set
(
${
_prefix
}
_
${
_varname
}
"
${
_pkgconfig_invoke_result
}
"
)
endif
(
_pkgconfig_failed
)
endmacro
(
_pkgconfig_invoke
)
# Invokes pkgconfig two times; once without '--static' and once with
# '--static'
macro
(
_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp
)
_pkgconfig_invoke
(
"
${
_pkglist
}
"
${
_prefix
}
${
_varname
}
"
${
cleanup_regexp
}
"
${
ARGN
}
)
_pkgconfig_invoke
(
"
${
_pkglist
}
"
${
_prefix
}
STATIC_
${
_varname
}
"
${
cleanup_regexp
}
"
--static
${
ARGN
}
)
endmacro
(
_pkgconfig_invoke_dyn
)
# Splits given arguments into options and a package list
macro
(
_pkgconfig_parse_options _result _is_req
)
set
(
${
_is_req
}
0
)
foreach
(
_pkg
${
ARGN
}
)
if
(
_pkg STREQUAL
"REQUIRED"
)
set
(
${
_is_req
}
1
)
endif
(
_pkg STREQUAL
"REQUIRED"
)
endforeach
(
_pkg
${
ARGN
}
)
set
(
${
_result
}
${
ARGN
}
)
list
(
REMOVE_ITEM
${
_result
}
"REQUIRED"
)
endmacro
(
_pkgconfig_parse_options
)
###
macro
(
_pkg_check_modules_internal _is_required _is_silent _prefix
)
_pkgconfig_unset
(
${
_prefix
}
_FOUND
)
_pkgconfig_unset
(
${
_prefix
}
_VERSION
)
_pkgconfig_unset
(
${
_prefix
}
_PREFIX
)
_pkgconfig_unset
(
${
_prefix
}
_INCLUDEDIR
)
_pkgconfig_unset
(
${
_prefix
}
_LIBDIR
)
_pkgconfig_unset
(
${
_prefix
}
_LIBS
)
_pkgconfig_unset
(
${
_prefix
}
_LIBS_L
)
_pkgconfig_unset
(
${
_prefix
}
_LIBS_PATHS
)
_pkgconfig_unset
(
${
_prefix
}
_LIBS_OTHER
)
_pkgconfig_unset
(
${
_prefix
}
_CFLAGS
)
_pkgconfig_unset
(
${
_prefix
}
_CFLAGS_I
)
_pkgconfig_unset
(
${
_prefix
}
_CFLAGS_OTHER
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_LIBDIR
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_LIBS
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_LIBS_L
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_LIBS_PATHS
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_LIBS_OTHER
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_CFLAGS
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_CFLAGS_I
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_CFLAGS_OTHER
)
# create a better addressable variable of the modules and calculate its size
set
(
_pkg_check_modules_list
${
ARGN
}
)
list
(
LENGTH _pkg_check_modules_list _pkg_check_modules_cnt
)
if
(
PKG_CONFIG_EXECUTABLE
)
# give out status message telling checked module
if
(
NOT
${
_is_silent
}
)
if
(
_pkg_check_modules_cnt EQUAL 1
)
message
(
STATUS
"checking for module '
${
_pkg_check_modules_list
}
'"
)
else
(
_pkg_check_modules_cnt EQUAL 1
)
message
(
STATUS
"checking for modules '
${
_pkg_check_modules_list
}
'"
)
endif
(
_pkg_check_modules_cnt EQUAL 1
)
endif
(
NOT
${
_is_silent
}
)
set
(
_pkg_check_modules_packages
)
set
(
_pkg_check_modules_failed
)
# iterate through module list and check whether they exist and match the required version
foreach
(
_pkg_check_modules_pkg
${
_pkg_check_modules_list
}
)
set
(
_pkg_check_modules_exist_query
)
# check whether version is given
if
(
_pkg_check_modules_pkg MATCHES
".*(>=|=|<=).*"
)
string
(
REGEX REPLACE
"(.*[^><])(>=|=|<=)(.*)"
"
\\
1"
_pkg_check_modules_pkg_name
"
${
_pkg_check_modules_pkg
}
"
)
string
(
REGEX REPLACE
"(.*[^><])(>=|=|<=)(.*)"
"
\\
2"
_pkg_check_modules_pkg_op
"
${
_pkg_check_modules_pkg
}
"
)
string
(
REGEX REPLACE
"(.*[^><])(>=|=|<=)(.*)"
"
\\
3"
_pkg_check_modules_pkg_ver
"
${
_pkg_check_modules_pkg
}
"
)
else
(
_pkg_check_modules_pkg MATCHES
".*(>=|=|<=).*"
)
set
(
_pkg_check_modules_pkg_name
"
${
_pkg_check_modules_pkg
}
"
)
set
(
_pkg_check_modules_pkg_op
)
set
(
_pkg_check_modules_pkg_ver
)
endif
(
_pkg_check_modules_pkg MATCHES
".*(>=|=|<=).*"
)
# handle the operands
if
(
_pkg_check_modules_pkg_op STREQUAL
">="
)
list
(
APPEND _pkg_check_modules_exist_query --atleast-version
)
endif
(
_pkg_check_modules_pkg_op STREQUAL
">="
)
if
(
_pkg_check_modules_pkg_op STREQUAL
"="
)
list
(
APPEND _pkg_check_modules_exist_query --exact-version
)
endif
(
_pkg_check_modules_pkg_op STREQUAL
"="
)
if
(
_pkg_check_modules_pkg_op STREQUAL
"<="
)
list
(
APPEND _pkg_check_modules_exist_query --max-version
)
endif
(
_pkg_check_modules_pkg_op STREQUAL
"<="
)
# create the final query which is of the format:
# * --atleast-version <version> <pkg-name>
# * --exact-version <version> <pkg-name>
# * --max-version <version> <pkg-name>
# * --exists <pkg-name>
if
(
_pkg_check_modules_pkg_op
)
list
(
APPEND _pkg_check_modules_exist_query
"
${
_pkg_check_modules_pkg_ver
}
"
)
else
(
_pkg_check_modules_pkg_op
)
list
(
APPEND _pkg_check_modules_exist_query --exists
)
endif
(
_pkg_check_modules_pkg_op
)
_pkgconfig_unset
(
${
_prefix
}
_
${
_pkg_check_modules_pkg_name
}
_VERSION
)
_pkgconfig_unset
(
${
_prefix
}
_
${
_pkg_check_modules_pkg_name
}
_PREFIX
)
_pkgconfig_unset
(
${
_prefix
}
_
${
_pkg_check_modules_pkg_name
}
_INCLUDEDIR
)
_pkgconfig_unset
(
${
_prefix
}
_
${
_pkg_check_modules_pkg_name
}
_LIBDIR
)
list
(
APPEND _pkg_check_modules_exist_query
"
${
_pkg_check_modules_pkg_name
}
"
)
list
(
APPEND _pkg_check_modules_packages
"
${
_pkg_check_modules_pkg_name
}
"
)
# execute the query
execute_process
(
COMMAND
${
PKG_CONFIG_EXECUTABLE
}
${
_pkg_check_modules_exist_query
}
RESULT_VARIABLE _pkgconfig_retval
)
# evaluate result and tell failures
if
(
_pkgconfig_retval
)
if
(
NOT
${
_is_silent
}
)
message
(
STATUS
" package '
${
_pkg_check_modules_pkg
}
' not found"
)
endif
(
NOT
${
_is_silent
}
)
set
(
_pkg_check_modules_failed 1
)
endif
(
_pkgconfig_retval
)
endforeach
(
_pkg_check_modules_pkg
)
if
(
_pkg_check_modules_failed
)
# fail when requested
if
(
${
_is_required
}
)
message
(
SEND_ERROR
"A required package was not found"
)
endif
(
${
_is_required
}
)
else
(
_pkg_check_modules_failed
)
# when we are here, we checked whether requested modules
# exist. Now, go through them and set variables
_pkgconfig_set
(
${
_prefix
}
_FOUND 1
)
list
(
LENGTH _pkg_check_modules_packages pkg_count
)
# iterate through all modules again and set individual variables
foreach
(
_pkg_check_modules_pkg
${
_pkg_check_modules_packages
}
)
# handle case when there is only one package required
if
(
pkg_count EQUAL 1
)
set
(
_pkg_check_prefix
"
${
_prefix
}
"
)
else
(
pkg_count EQUAL 1
)
set
(
_pkg_check_prefix
"
${
_prefix
}
_
${
_pkg_check_modules_pkg
}
"
)
endif
(
pkg_count EQUAL 1
)
_pkgconfig_invoke
(
${
_pkg_check_modules_pkg
}
"
${
_pkg_check_prefix
}
"
VERSION
""
--modversion
)
_pkgconfig_invoke
(
${
_pkg_check_modules_pkg
}
"
${
_pkg_check_prefix
}
"
PREFIX
""
--variable=prefix
)
_pkgconfig_invoke
(
${
_pkg_check_modules_pkg
}
"
${
_pkg_check_prefix
}
"
INCLUDEDIR
""
--variable=includedir
)
_pkgconfig_invoke
(
${
_pkg_check_modules_pkg
}
"
${
_pkg_check_prefix
}
"
LIBDIR
""
--variable=libdir
)
message
(
STATUS
" found
${
_pkg_check_modules_pkg
}
, version
${
_pkgconfig_VERSION
}
"
)
endforeach
(
_pkg_check_modules_pkg
)
# set variables which are combined for multiple modules
_pkgconfig_invoke_dyn
(
"
${
_pkg_check_modules_packages
}
"
"
${
_prefix
}
"
LIBRARIES
"(^| )-l"
--libs-only-l
)
_pkgconfig_invoke_dyn
(
"
${
_pkg_check_modules_packages
}
"
"
${
_prefix
}
"
LIBRARY_DIRS
"(^| )-L"
--libs-only-L
)
_pkgconfig_invoke_dyn
(
"
${
_pkg_check_modules_packages
}
"
"
${
_prefix
}
"
LDFLAGS
""
--libs
)
_pkgconfig_invoke_dyn
(
"
${
_pkg_check_modules_packages
}
"
"
${
_prefix
}
"
LDFLAGS_OTHER
""
--libs-only-other
)
_pkgconfig_invoke_dyn
(
"
${
_pkg_check_modules_packages
}
"
"
${
_prefix
}
"
INCLUDE_DIRS
"(^| )-I"
--cflags-only-I
)
_pkgconfig_invoke_dyn
(
"
${
_pkg_check_modules_packages
}
"
"
${
_prefix
}
"
CFLAGS
""
--cflags
)
_pkgconfig_invoke_dyn
(
"
${
_pkg_check_modules_packages
}
"
"
${
_prefix
}
"
CFLAGS_OTHER
""
--cflags-only-other
)
endif
(
_pkg_check_modules_failed
)
else
(
PKG_CONFIG_EXECUTABLE
)
if
(
${
_is_required
}
)
message
(
SEND_ERROR
"pkg-config tool not found"
)
endif
(
${
_is_required
}
)
endif
(
PKG_CONFIG_EXECUTABLE
)
endmacro
(
_pkg_check_modules_internal
)
###
### User visible macros start here
###
###
macro
(
pkg_check_modules _prefix _module0
)
# check cached value
if
(
NOT DEFINED __pkg_config_checked_
${
_prefix
}
OR __pkg_config_checked_
${
_prefix
}
LESS
${
PKG_CONFIG_VERSION
}
)
_pkgconfig_parse_options
(
_pkg_modules _pkg_is_required
"
${
_module0
}
"
${
ARGN
}
)
_pkg_check_modules_internal
(
"
${
_pkg_is_required
}
"
0
"
${
_prefix
}
"
${
_pkg_modules
}
)
_pkgconfig_set
(
__pkg_config_checked_
${
_prefix
}
${
PKG_CONFIG_VERSION
}
)
endif
(
NOT DEFINED __pkg_config_checked_
${
_prefix
}
OR __pkg_config_checked_
${
_prefix
}
LESS
${
PKG_CONFIG_VERSION
}
)
endmacro
(
pkg_check_modules
)
###
macro
(
pkg_search_module _prefix _module0
)
# check cached value
if
(
NOT DEFINED __pkg_config_checked_
${
_prefix
}
OR __pkg_config_checked_
${
_prefix
}
LESS
${
PKG_CONFIG_VERSION
}
)
set
(
_pkg_modules_found 0
)
_pkgconfig_parse_options
(
_pkg_modules_alt _pkg_is_required
"
${
_module0
}
"
${
ARGN
}
)
message
(
STATUS
"checking for one of the modules '
${
_pkg_modules_alt
}
'"
)
# iterate through all modules and stop at the first working one.
foreach
(
_pkg_alt
${
_pkg_modules_alt
}
)
if
(
NOT _pkg_modules_found
)
_pkg_check_modules_internal
(
0 1
"
${
_prefix
}
"
"
${
_pkg_alt
}
"
)
endif
(
NOT _pkg_modules_found
)
if
(
${
_prefix
}
_FOUND
)
set
(
_pkg_modules_found 1
)
endif
(
${
_prefix
}
_FOUND
)
endforeach
(
_pkg_alt
)
if
(
NOT
${
_prefix
}
_FOUND
)
if
(
${
_pkg_is_required
}
)
message
(
SEND_ERROR
"None of the required '
${
_pkg_modules_alt
}
' found"
)
endif
(
${
_pkg_is_required
}
)
endif
(
NOT
${
_prefix
}
_FOUND
)
_pkgconfig_set
(
__pkg_config_checked_
${
_prefix
}
${
PKG_CONFIG_VERSION
}
)
endif
(
NOT DEFINED __pkg_config_checked_
${
_prefix
}
OR __pkg_config_checked_
${
_prefix
}
LESS
${
PKG_CONFIG_VERSION
}
)
endmacro
(
pkg_search_module
)
### Local Variables:
### mode: cmake
### End:
Modules/FindXMLRPC.cmake
View file @
4bf136ff
...
...
@@ -104,6 +104,7 @@ IF(XMLRPC_FOUND)
PATHS
${
XMLRPC_LIBRARY_DIRS
}
NO_DEFAULT_PATH
)
FIND_LIBRARY
(
XMLRPC_
${
name
}
_LIBRARY NAMES
${
name
}
)
MARK_AS_ADVANCED
(
XMLRPC_
${
name
}
_LIBRARY
)
# If any library is not found then the whole package is not found.
...
...
Source/CMakeLists.txt
View file @
4bf136ff
...
...
@@ -167,8 +167,7 @@ SET(SRCS
# Kdevelop only works on UNIX and not windows
IF
(
UNIX
)
SET
(
SRCS
${
SRCS
}
cmGlobalKdevelopGenerator.cxx
cmLocalKdevelopGenerator.cxx
)
cmGlobalKdevelopGenerator.cxx
)
ENDIF
(
UNIX
)
# XCode only works on apple
IF
(
APPLE
)
...
...
@@ -278,15 +277,17 @@ TARGET_LINK_LIBRARIES(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES} ${CMAKE_XMLRPC_L
#
SET
(
CPACK_SRCS
CPack/cmCPackGenerators.cxx
CPack/cmCPack
STGZ
Generator.cxx
CPack/cmCPack
TGZGenerator
.cxx
CPack/cmCPack
Generic
Generator.cxx
CPack/cmCPack
Log
.cxx
CPack/cmCPackNSISGenerator.cxx
CPack/cmCPackPackageMakerGenerator.cxx
CPack/cmCPackZIPGenerator.cxx
CPack/cmCPackSTGZGenerator.cxx
CPack/cmCPackTGZGenerator.cxx
CPack/cmCPackTarBZip2Generator.cxx
CPack/cmCPackTarCompressGenerator.cxx
CPack/cmCPackGenericGenerator.cxx
CPack/cmCPackLog.cxx
CPack/cmCPackZIPGenerator.cxx
CPack/cmCPackCygwinBinaryGenerator.cxx
CPack/cmCPackCygwinSourceGenerator.cxx
)
# Build CPackLib
ADD_LIBRARY
(
CPackLib
${
CPACK_SRCS
}
)
...
...
@@ -308,6 +309,7 @@ IF(WIN32)
IF
(
NOT UNIX
)
ADD_EXECUTABLE
(
cmw9xcom cmw9xcom.cxx
)
TARGET_LINK_LIBRARIES
(
cmw9xcom CMakeLib
)
INSTALL_TARGETS
(
/bin cmw9xcom
)
ENDIF
(
NOT UNIX
)
ENDIF
(
WIN32
)
...
...
Source/CPack/cmCPackCygwinBinaryGenerator.cxx
0 → 100644
View file @
4bf136ff
/*=========================================================================
Program: CMake - Cross-Platform Makefile Generator
Module: $RCSfile$
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#include
"cmCPackCygwinBinaryGenerator.h"
#include
"cmake.h"
#include
"cmGlobalGenerator.h"
#include
"cmLocalGenerator.h"
#include
"cmSystemTools.h"
#include
"cmMakefile.h"
#include
"cmGeneratedFileStream.h"
#include
"cmCPackLog.h"
#include
<cmsys/SystemTools.hxx>
//----------------------------------------------------------------------
cmCPackCygwinBinaryGenerator
::
cmCPackCygwinBinaryGenerator
()
{
this
->
Compress
=
false
;
}
//----------------------------------------------------------------------
cmCPackCygwinBinaryGenerator
::~
cmCPackCygwinBinaryGenerator
()
{
}
//----------------------------------------------------------------------
int
cmCPackCygwinBinaryGenerator
::
InitializeInternal
()
{
this
->
SetOptionIfNotSet
(
"CPACK_INCLUDE_TOPLEVEL_DIRECTORY"
,
"0"
);
std
::
vector
<
std
::
string
>
path
;
std
::
string
pkgPath
=
cmSystemTools
::
FindProgram
(
"bzip2"
,
path
,
false
);
if
(
pkgPath
.
empty
()
)
{
cmCPackLogger
(
cmCPackLog
::
LOG_ERROR
,
"Cannot find BZip2"
<<
std
::
endl
);
return
0
;
}
this
->
SetOptionIfNotSet
(
"CPACK_INSTALLER_PROGRAM"
,
pkgPath
.
c_str
());
cmCPackLogger
(
cmCPackLog
::
LOG_VERBOSE
,
"Found Compress program: "
<<
pkgPath
.
c_str
()
<<
std
::
endl
);
return
this
->
Superclass
::
InitializeInternal
();
}
//----------------------------------------------------------------------
int
cmCPackCygwinBinaryGenerator
::
CompressFiles
(
const
char
*
outFileName
,
const
char
*
toplevel
,
const
std
::
vector
<
std
::
string
>&
files
)
{
std
::
string
packageName
=
this
->
GetOption
(
"CPACK_PACKAGE_NAME"
);
packageName
+=
"-"
;
packageName
+=
this
->
GetOption
(
"CPACK_PACKAGE_VERSION"
);
packageName
=
cmsys
::
SystemTools
::
LowerCase
(
packageName
);
std
::
string
manifest
=
"/usr/share/doc/"
;
manifest
+=
packageName
;
manifest
+=
"/MANIFEST"
;
std
::
string
manifestFile
=
this
->
GetOption
(
"CPACK_TEMPORARY_DIRECTORY"
);
// Create a MANIFEST file that contains all of the files in
// the tar file
std
::
string
tempdir
=
manifestFile
;
manifestFile
+=
manifest
;
// create an extra scope to force the stream
// to create the file before the super class is called
{
cmGeneratedFileStream
ofs
(
manifestFile
.
c_str
());
for
(
std
::
vector
<
std
::
string
>::
const_iterator
i
=
files
.
begin
();
i
!=
files
.
end
();
++
i
)
{
// remove the temp dir and replace with /usr
ofs
<<
(
*
i
).
substr
(
tempdir
.
size
())
<<
"
\n
"
;
}
ofs
<<
manifest
<<
"
\n
"
;
}
// add the manifest file to the list of all files
std
::
vector
<
std
::
string
>
filesWithManifest
=
files
;
filesWithManifest
.
push_back
(
manifestFile
);
// create the bzip2 tar file
return
this
->
Superclass
::
CompressFiles
(
outFileName
,
toplevel
,
filesWithManifest
);
}