Commit 055fb8fe authored by Bill Hoffman's avatar Bill Hoffman
Browse files

ENH: merge in stuff from head

parent 6b2db575
......@@ -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 7)
SET(CMake_VERSION_PATCH 8)
# for an actual release this should not be defined
#SET(CMake_VERSION_RC 11)
SET(CMake_VERSION_RC 1)
SET(CMake_VERSION "${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
SET(CMake_VERSION_FULL "${CMake_VERSION}.${CMake_VERSION_PATCH}")
......
Changes in CMake 2.4.8
* Fix for kde4-config location
* Fix for self extracting .sh files on solaris
* Remove KDE3_ENABLE_FINAL (did not work)
* KDE3 fix for 64 bit location of plugins
* mark PYTHON_EXECUTABLE as advanced
* Fix for version numbers on NetBSD
* Add more search directories (install prefix and cmake location)
* include WindowsPaths in Windows.cmake not just Windows-cl.cmake
* documentation fix for file, find_package, try_run
* add IS_ABSOLUTE to if
* INSTALL() everything which doesn't have a COMPONENT set, is assigned
to the COMPONENT "Unspecified"
* make #cmakedefine output match autoconf when undefined
* document cmake remove -f
* document order of -D and -P
* add support for DragonFly and GNU hurd
* fix for fortran depends doing too many scans
Changes in CMake 2.4.7
--- RC 11 ----
* Fix bug 5238 for cygwin versioned executables
......
......@@ -84,7 +84,7 @@ then
@CPACK_RESOURCE_FILE_LICENSE_CONTENT@
____cpack__here_doc____
echo
echo "Do you accept the license? [Yn]: "
echo "Do you accept the license? [yN]: "
read line leftover
case ${line} in
y* | Y*)
......@@ -123,7 +123,14 @@ echo ""
# take the archive portion of this file and pipe it to tar
# the NUMERIC parameter in this command should be one more
# than the number of lines in this header file
tail -n +###CPACK_HEADER_LENGTH### "$0" | gunzip | (cd "${toplevel}" && tar xf -) || cpack_echo_exit "Problem unpacking the @CPACK_PACKAGE_FILE_NAME@"
# there are tails which don't understand the "-n" argument, e.g. on SunOS
# OTOH there are tails which complain when not using the "-n" argument (e.g. GNU)
# so at first try to tail some file to see if tail fails if used with "-n"
# if so, don't use "-n"
use_new_tail_syntax="-n"
tail $use_new_tail_syntax +1 "$0" > /dev/null 2> /dev/null || use_new_tail_syntax=""
tail $use_new_tail_syntax +###CPACK_HEADER_LENGTH### "$0" | gunzip | (cd "${toplevel}" && tar xf -) || cpack_echo_exit "Problem unpacking the @CPACK_PACKAGE_FILE_NAME@"
echo "Unpacking finished successfully"
......
......@@ -13,7 +13,6 @@
#
# The following user adjustable options are provided:
#
# KDE3_ENABLE_FINAL - enable this for KDE-style enable-final all-in-one compilation
# KDE3_BUILD_TESTS - enable this to build KDE testcases
#
#
......@@ -47,18 +46,20 @@
# This will create and install a simple libtool file for the given target.
#
# KDE3_ADD_EXECUTABLE(name file1 ... fileN )
# Equivalent to ADD_EXECUTABLE(), but additionally supports KDE3_ENABLE_FINAL
# Currently identical to ADD_EXECUTABLE(), may provide some advanced features in the future.
#
# KDE3_ADD_KPART(name [WITH_PREFIX] file1 ... fileN )
# Create a KDE plugin (KPart, kioslave, etc.) from the given source files.
# It supports KDE3_ENABLE_FINAL
# If WITH_PREFIX is given, the resulting plugin will have the prefix "lib", otherwise it won't.
# It creates and installs an appropriate libtool la-file.
#
# KDE3_ADD_KDEINIT_EXECUTABLE(name file1 ... fileN )
# Create a KDE application in the form of a module loadable via kdeinit.
# A library named kdeinit_<name> will be created and a small executable which links to it.
# It supports KDE3_ENABLE_FINAL
#
# The option KDE3_ENABLE_FINAL to enable all-in-one compilation is
# no longer supported.
#
#
# Author: Alexander Neundorf <neundorf@kde.org>
......@@ -75,8 +76,6 @@ FIND_PACKAGE(Qt3 REQUIRED)
FIND_PACKAGE(X11 REQUIRED)
SET(QT_AND_KDECORE_LIBS ${QT_LIBRARIES} kdecore)
#add some KDE specific stuff
SET(KDE3_DEFINITIONS -DQT_CLEAN_NAMESPACE -D_GNU_SOURCE)
......@@ -167,8 +166,18 @@ FIND_LIBRARY(KDE3_KDECORE_LIBRARY NAMES kdecore
FIND_LIBRARY(KDE3_KDECORE_LIBRARY NAMES kdecore)
SET(QT_AND_KDECORE_LIBS ${QT_LIBRARIES} ${KDE3_KDECORE_LIBRARY})
GET_FILENAME_COMPONENT(KDE3_LIB_DIR ${KDE3_KDECORE_LIBRARY} PATH )
IF(NOT KDE3_LIBTOOL_DIR)
IF(KDE3_KDECORE_LIBRARY MATCHES lib64)
SET(KDE3_LIBTOOL_DIR /lib64/kde3)
ELSE(KDE3_KDECORE_LIBRARY MATCHES lib64)
SET(KDE3_LIBTOOL_DIR /lib/kde3)
ENDIF(KDE3_KDECORE_LIBRARY MATCHES lib64)
ENDIF(NOT KDE3_LIBTOOL_DIR)
#now search for the dcop utilities
FIND_PROGRAM(KDE3_DCOPIDL_EXECUTABLE NAMES dcopidl PATHS
$ENV{KDEDIR}/bin
......
......@@ -13,7 +13,8 @@
FILE(TO_CMAKE_PATH "$ENV{KDEDIRS}" _KDEDIRS)
# For KDE4 kde-config has been renamed to kde4-config
FIND_PROGRAM(KDE4_KDECONFIG_EXECUTABLE NAMES kde4-config
FIND_PROGRAM(KDE4_KDECONFIG_EXECUTABLE NAMES kde4-config
PATH_SUFFIXES bin # the suffix is for the paths coming from KDEDIRS
PATHS
${CMAKE_INSTALL_PREFIX}/bin
${_KDEDIRS}
......@@ -22,9 +23,7 @@ FIND_PROGRAM(KDE4_KDECONFIG_EXECUTABLE NAMES kde4-config
)
IF (NOT KDE4_KDECONFIG_EXECUTABLE)
FIND_PROGRAM(KDE4_KDECONFIG_EXECUTABLE NAMES kde4-config )
ENDIF (NOT KDE4_KDECONFIG_EXECUTABLE)
FIND_PROGRAM(KDE4_KDECONFIG_EXECUTABLE NAMES kde4-config )
IF (KDE4_KDECONFIG_EXECUTABLE)
# then ask kde4-config for the kde data dirs
......
......@@ -24,4 +24,4 @@ IF(PYTHON_EXECUTABLE)
SET(PYTHONINTERP_FOUND ON)
ENDIF(PYTHON_EXECUTABLE)
MARK_AS_ADVANCED(PYTHON_EXECUTABLE)
......@@ -321,7 +321,7 @@ MACRO(KDE3_INSTALL_LIBTOOL_FILE _target)
FILE(APPEND ${_laname} "# Directory that this library needs to be installed in:\n")
FILE(APPEND ${_laname} "libdir='${CMAKE_INSTALL_PREFIX}/lib/kde3'\n")
INSTALL_FILES(/lib/kde3 FILES ${_laname})
INSTALL_FILES(${KDE3_LIBTOOL_DIR} FILES ${_laname})
ENDMACRO(KDE3_INSTALL_LIBTOOL_FILE)
......@@ -334,7 +334,7 @@ MACRO(KDE3_CREATE_FINAL_FILE _filename)
ENDMACRO(KDE3_CREATE_FINAL_FILE)
OPTION(KDE3_ENABLE_FINAL "Enable final all-in-one compilation")
# OPTION(KDE3_ENABLE_FINAL "Enable final all-in-one compilation")
OPTION(KDE3_BUILD_TESTS "Build the tests")
......@@ -346,12 +346,7 @@ MACRO(KDE3_ADD_KPART _target_NAME _with_PREFIX)
SET(_first_SRC ${_with_PREFIX})
ENDIF (${_with_PREFIX} STREQUAL "WITH_PREFIX")
IF (KDE3_ENABLE_FINAL)
KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${_first_SRC} ${ARGN})
ADD_LIBRARY(${_target_NAME} MODULE ${_target_NAME}_final.cpp)
ELSE (KDE3_ENABLE_FINAL)
ADD_LIBRARY(${_target_NAME} MODULE ${_first_SRC} ${ARGN})
ENDIF (KDE3_ENABLE_FINAL)
IF(_first_SRC)
SET_TARGET_PROPERTIES(${_target_NAME} PROPERTIES PREFIX "")
......@@ -364,12 +359,7 @@ ENDMACRO(KDE3_ADD_KPART)
MACRO(KDE3_ADD_KDEINIT_EXECUTABLE _target_NAME )
IF (KDE3_ENABLE_FINAL)
KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${ARGN})
ADD_LIBRARY(kdeinit_${_target_NAME} SHARED ${_target_NAME}_final.cpp)
ELSE (KDE3_ENABLE_FINAL)
ADD_LIBRARY(kdeinit_${_target_NAME} SHARED ${ARGN} )
ENDIF (KDE3_ENABLE_FINAL)
CONFIGURE_FILE(${KDE3_MODULE_DIR}/kde3init_dummy.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp)
......@@ -381,12 +371,7 @@ ENDMACRO(KDE3_ADD_KDEINIT_EXECUTABLE)
MACRO(KDE3_ADD_EXECUTABLE _target_NAME )
IF (KDE3_ENABLE_FINAL)
KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${ARGN})
ADD_EXECUTABLE(${_target_NAME} ${_target_NAME}_final.cpp)
ELSE (KDE3_ENABLE_FINAL)
ADD_EXECUTABLE(${_target_NAME} ${ARGN} )
ENDIF (KDE3_ENABLE_FINAL)
ENDMACRO(KDE3_ADD_EXECUTABLE)
......
......@@ -5,5 +5,8 @@ IF(EXISTS /usr/include/dlfcn.h)
SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib
SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath
SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") # : or empty
SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,")
ENDIF(EXISTS /usr/include/dlfcn.h)
INCLUDE(Platform/UnixPaths)
# also add the install directory of the running cmake to the search directories
# CMAKE_ROOT is CMAKE_INSTALL_PREFIX/share/cmake, so we need to go two levels up
GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH)
GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
SET(CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_SYSTEM_INCLUDE_PATH}
# Standard
/include /usr/include /usr/local/include
......@@ -10,6 +15,10 @@ SET(CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_SYSTEM_INCLUDE_PATH}
# Other
/opt/local/include /usr/pkg/include
/opt/csw/include /opt/include
/usr/openwin/include
"${_CMAKE_INSTALL_DIR}/include"
"${CMAKE_INSTALL_PREFIX}/include"
)
SET(CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_SYSTEM_LIBRARY_PATH}
......@@ -25,10 +34,15 @@ SET(CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_SYSTEM_LIBRARY_PATH}
# Other
/opt/local/lib /usr/pkg/lib
/opt/csw/lib /opt/lib
/usr/openwin/lib
"${_CMAKE_INSTALL_DIR}/lib"
"${CMAKE_INSTALL_PREFIX}/lib"
)
SET(CMAKE_SYSTEM_PROGRAM_PATH ${CMAKE_SYSTEM_PROGRAM_PATH}
/bin /usr/bin /usr/local/bin /usr/pkg/bin /sbin
"${_CMAKE_INSTALL_DIR}/bin"
"${CMAKE_INSTALL_PREFIX}/bin"
)
SET(CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
......
......@@ -320,4 +320,3 @@ IF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake")
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXPlatform.cmake IMMEDIATE)
ENDIF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake")
INCLUDE(Platform/WindowsPaths)
......@@ -30,5 +30,4 @@ ENDIF(CMAKE_GENERATOR MATCHES "NMake")
#SET(CMAKE_END_TEMP_FILE "")
#SET(CMAKE_VERBOSE_MAKEFILE 1)
INCLUDE(Platform/WindowsPaths)
SET(CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_SYSTEM_INCLUDE_PATH} "$ENV{ProgramFiles}")
SET(CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_SYSTEM_LIBRARY_PATH} "$ENV{ProgramFiles}")
SET(CMAKE_SYSTEM_PROGRAM_PATH ${CMAKE_SYSTEM_PROGRAM_PATH} "$ENV{ProgramFiles}")
GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH)
GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
SET(CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_SYSTEM_INCLUDE_PATH}
"$ENV{ProgramFiles}" "${CMAKE_INSTALL_PREFIX}/include" "${_CMAKE_INSTALL_DIR}/include")
SET(CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_SYSTEM_LIBRARY_PATH}
"$ENV{ProgramFiles}" "${CMAKE_INSTALL_PREFIX}/lib" "${_CMAKE_INSTALL_DIR}/lib")
SET(CMAKE_SYSTEM_PROGRAM_PATH ${CMAKE_SYSTEM_PROGRAM_PATH}
"$ENV{ProgramFiles}" "${CMAKE_INSTALL_PREFIX}/bin" "${_CMAKE_INSTALL_DIR}/bin")
......@@ -228,17 +228,23 @@ int cmCPackTGZGenerator::CompressFiles(const char* outFileName,
std::auto_ptr<char> realNamePtr(realName);
strcpy(realName, outFileName);
int flags = O_WRONLY | O_CREAT;
int options = 0;
if(this->GeneratorVerbose)
{
options != TAR_VERBOSE;
}
#ifdef __CYGWIN__
options |= TAR_GNU;
#endif
if (tar_open(&t, realName,
&gztype,
flags, 0644,
(this->GeneratorVerbose?TAR_VERBOSE:0)
| 0) == -1)
options) == -1)
{
cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem with tar_open(): "
<< strerror(errno) << std::endl);
return 0;
}
std::vector<std::string>::const_iterator fileIt;
for ( fileIt = files.begin(); fileIt != files.end(); ++ fileIt )
{
......
......@@ -175,15 +175,21 @@ int cmCPackTarCompressGenerator::CompressFiles(const char* outFileName,
std::auto_ptr<char> realNamePtr(realName);
strcpy(realName, outFileName);
int flags = O_WRONLY | O_CREAT;
int options = 0;
if(this->GeneratorVerbose)
{
options != TAR_VERBOSE;
}
#ifdef __CYGWIN__
options |= TAR_GNU;
#endif
if (tar_open(&t, realName,
&compressType,
flags, 0644,
(this->GeneratorVerbose?TAR_VERBOSE:0)
| 0) == -1)
&compressType,
flags, 0644, options) == -1)
{
cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem with tar_open(): "
<< strerror(errno) << std::endl);
return 0;
cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem with tar_open(): "
<< strerror(errno) << std::endl);
return 0;
}
std::vector<std::string>::const_iterator fileIt;
......
......@@ -253,7 +253,7 @@ int main (int argc, char *argv[])
if ( !globalMF->ReadListFile(0, cpackConfigFile.c_str()) )
{
cmCPack_Log(&log, cmCPackLog::LOG_ERROR,
"Problem reding CPack config file: \""
"Problem reading CPack config file: \""
<< cpackConfigFile.c_str() << "\"" << std::endl);
return 1;
}
......
......@@ -139,7 +139,6 @@ bool cmDependsFortran::WriteDependencies(const char *src, const char *obj,
makeDepends << std::endl;
// Write module requirements to the output stream.
internalDepends << obj << ".requires" << std::endl;
for(std::set<cmStdString>::const_iterator i = parser.Requires.begin();
i != parser.Requires.end(); ++i)
{
......@@ -149,18 +148,15 @@ bool cmDependsFortran::WriteDependencies(const char *src, const char *obj,
// since we require some things add them to our list of requirements
makeDepends << obj << ".requires: " << i->c_str() << ".mod.proxy"
<< std::endl;
internalDepends << " " << i->c_str() << ".mod.proxy" << std::endl;
}
}
// Write provided modules to the output stream.
internalDepends << obj << ".mod.proxy" << std::endl;
for(std::set<cmStdString>::const_iterator i = parser.Provides.begin();
i != parser.Provides.end(); ++i)
{
makeDepends << i->c_str() << ".mod.proxy: " << obj
<< ".provides" << std::endl;
internalDepends << " " << i->c_str() << ".provides" << std::endl;
}
// If any modules are provided then they must be converted to stamp files.
......
......@@ -70,9 +70,9 @@ public:
" FILE(GLOB variable [RELATIVE path] [globbing expressions]...)\n"
" FILE(GLOB_RECURSE variable [RELATIVE path] \n"
" [globbing expressions]...)\n"
" FILE(REMOVE [directory]...)\n"
" FILE(REMOVE_RECURSE [directory]...)\n"
" FILE(MAKE_DIRECTORY [directory]...)\n"
" FILE(REMOVE [file1 ...])\n"
" FILE(REMOVE_RECURSE [file1 ...])\n"
" FILE(MAKE_DIRECTORY [directory1 directory2 ...])\n"
" FILE(RELATIVE_PATH variable directory file)\n"
" FILE(TO_CMAKE_PATH path result)\n"
" FILE(TO_NATIVE_PATH path result)\n"
......@@ -101,7 +101,11 @@ public:
"match the files.\n"
"Examples of recursive globbing include:\n"
" /dir/*.py - match all python files in /dir and subdirectories\n"
"MAKE_DIRECTORY will create a directory at the specified location\n"
"MAKE_DIRECTORY will create the given directories, also if their parent "
"directories don't exist yet\n"
"REMOVE will remove the given files, also in subdirectories\n"
"REMOVE_RECURSE will remove the given files and directories, also "
"non-empty directories\n"
"RELATIVE_PATH will determine relative path from directory to the given"
" file.\n"
"TO_CMAKE_PATH will convert path into a cmake style path with unix /. "
......
......@@ -66,7 +66,7 @@ public:
{
return
" FIND_PACKAGE(<name> [major.minor] [QUIET] [NO_MODULE]\n"
" [[REQUIRED|COMPONENTS] [componets...]])\n"
" [[REQUIRED|COMPONENTS] [components...]])\n"
"Finds and loads settings from an external project. <name>_FOUND will "
"be set to indicate whether the package was found. Settings that "
"can be used when <name>_FOUND is true are package-specific. The "
......
......@@ -303,6 +303,22 @@ bool cmIfCommand::IsTrue(const std::vector<std::string> &args,
IncrementArguments(newArgs,argP1,argP2);
reducible = 1;
}
// is the given path an absolute path ?
if (*arg == "IS_ABSOLUTE" && argP1 != newArgs.end())
{
if(cmSystemTools::FileIsFullPath((argP1)->c_str()))
{
*arg = "1";
}
else
{
*arg = "0";
}
newArgs.erase(argP1);
argP1 = arg;
IncrementArguments(newArgs,argP1,argP2);
reducible = 1;
}
// does a command exist
if (*arg == "COMMAND" && argP1 != newArgs.end())
{
......
......@@ -143,6 +143,8 @@ public:
" IF(IS_DIRECTORY directory-name)\n"
"True if the given name is a directory. "
"Behavior is well-defined only for full paths.\n"
" IF(IS_ABSOLUTE path)\n"
"True if the given path is an absolute path.\n "
" IF(variable MATCHES regex)\n"
" IF(string MATCHES regex)\n"
"True if the given string or variable's value matches the given "
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment