diff options
-rw-r--r-- | ChangeLog.manual | 20 | ||||
-rw-r--r-- | Modules/CMakeCCompilerId.c.in | 16 | ||||
-rw-r--r-- | Modules/CMakeCXXCompilerId.cpp.in | 16 | ||||
-rw-r--r-- | Modules/FindGettext.cmake | 2 | ||||
-rw-r--r-- | Modules/FindOpenSSL.cmake | 7 | ||||
-rw-r--r-- | Modules/FindSDL.cmake | 3 | ||||
-rw-r--r-- | Modules/Platform/Darwin.cmake | 1 | ||||
-rw-r--r-- | Source/CMakeVersion.cmake | 4 | ||||
-rw-r--r-- | Source/cmDocumentation.cxx | 2 | ||||
-rw-r--r-- | Source/cmGeneratorExpressionEvaluator.cxx | 5 | ||||
-rw-r--r-- | Source/cmGlobalGenerator.cxx | 1 | ||||
-rw-r--r-- | Source/cmQtAutomoc.cxx | 59 | ||||
-rw-r--r-- | Source/cmTarget.cxx | 11 | ||||
-rw-r--r-- | Source/cmTarget.h | 2 | ||||
-rw-r--r-- | Tests/CMakeLists.txt | 1 | ||||
-rw-r--r-- | Tests/GeneratorExpression/CMakeLists.txt | 4 | ||||
-rw-r--r-- | Tests/GeneratorExpression/check.cmake | 5 | ||||
-rwxr-xr-x | bootstrap | 2 |
18 files changed, 132 insertions, 29 deletions
diff --git a/ChangeLog.manual b/ChangeLog.manual index ecf03f5..aa55348 100644 --- a/ChangeLog.manual +++ b/ChangeLog.manual @@ -1,3 +1,23 @@ +Changes in CMake 2.8.10.1 (since 2.8.10) +---------------------------------------------- +Brad King (5): + Fix default PDB output directory (#13644) + Fix PathScale compiler id for Clang-based upstream + Update programmatically-reported copyright year (#13638) + FindSDL: Restore accidentally dropped search paths (#13651) + OS X: Fix default CMAKE_OSX_SYSROOT with deployment target + +Rolf Eike Beer (2): + FindOpenSSL: fix library selection on Windows (#13645) + FindOpenSSL: also find the non-MD debug libraries for MSVC + +Stephen Kelly (1): + GenEx: Use case insensitive comparison for $<CONFIG:...> + +Changes in CMake 2.8.10 (since 2.8.10-rc3) +---------------------------------------------- +None + Changes in CMake 2.8.10-rc3 (since 2.8.10-rc2) ---------------------------------------------- Rolf Eike Beer (2): diff --git a/Modules/CMakeCCompilerId.c.in b/Modules/CMakeCCompilerId.c.in index c5bde9a..2d76c7a 100644 --- a/Modules/CMakeCCompilerId.c.in +++ b/Modules/CMakeCCompilerId.c.in @@ -20,6 +20,14 @@ # define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) # endif +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + #elif defined(__clang__) # define COMPILER_ID "Clang" # define COMPILER_VERSION_MAJOR DEC(__clang_major__) @@ -95,14 +103,6 @@ # define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) # endif -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - #elif defined(_CRAYC) # define COMPILER_ID "Cray" # define COMPILER_VERSION_MAJOR DEC(_RELEASE) diff --git a/Modules/CMakeCXXCompilerId.cpp.in b/Modules/CMakeCXXCompilerId.cpp.in index 2c8dd4b..5e70a41 100644 --- a/Modules/CMakeCXXCompilerId.cpp.in +++ b/Modules/CMakeCXXCompilerId.cpp.in @@ -25,6 +25,14 @@ # define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) # endif +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + #elif defined(__clang__) # define COMPILER_ID "Clang" # define COMPILER_VERSION_MAJOR DEC(__clang_major__) @@ -100,14 +108,6 @@ # define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) # endif -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - #elif defined(_CRAYC) # define COMPILER_ID "Cray" # define COMPILER_VERSION_MAJOR DEC(_RELEASE) diff --git a/Modules/FindGettext.cmake b/Modules/FindGettext.cmake index f1c78ae..1a6bd39 100644 --- a/Modules/FindGettext.cmake +++ b/Modules/FindGettext.cmake @@ -209,5 +209,3 @@ function(GETTEXT_PROCESS_PO_FILES _lang) add_dependencies(pofiles ${uniqueTargetName}) endfunction() - -set(GETTEXT_FOUND ${Gettext_FOUND}) diff --git a/Modules/FindOpenSSL.cmake b/Modules/FindOpenSSL.cmake index e2cc427..224c88e 100644 --- a/Modules/FindOpenSSL.cmake +++ b/Modules/FindOpenSSL.cmake @@ -87,6 +87,7 @@ if(WIN32 AND NOT CYGWIN) find_library(LIB_EAY_DEBUG NAMES libeay32MDd + libeay32d ${_OPENSSL_ROOT_HINTS_AND_PATHS} PATH_SUFFIXES "lib" @@ -108,6 +109,7 @@ if(WIN32 AND NOT CYGWIN) find_library(SSL_EAY_DEBUG NAMES ssleay32MDd + ssleay32d ${_OPENSSL_ROOT_HINTS_AND_PATHS} PATH_SUFFIXES "lib" @@ -127,6 +129,11 @@ if(WIN32 AND NOT CYGWIN) "lib/VC" ) + set(LIB_EAY_LIBRARY_DEBUG "${LIB_EAY_DEBUG}") + set(LIB_EAY_LIBRARY_RELEASE "${LIB_EAY_RELEASE}") + set(SSL_EAY_LIBRARY_DEBUG "${SSL_EAY_DEBUG}") + set(SSL_EAY_LIBRARY_RELEASE "${SSL_EAY_RELEASE}") + include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake) select_library_configurations(LIB_EAY) select_library_configurations(SSL_EAY) diff --git a/Modules/FindSDL.cmake b/Modules/FindSDL.cmake index 9359323..f2e9f25 100644 --- a/Modules/FindSDL.cmake +++ b/Modules/FindSDL.cmake @@ -70,7 +70,7 @@ find_path(SDL_INCLUDE_DIR SDL.h HINTS ENV SDLDIR - PATH_SUFFIXES SDL SDL12 SDL11 + PATH_SUFFIXES include/SDL include/SDL12 include/SDL11 include ) # SDL-1.1 is the name used by FreeBSD ports... @@ -79,6 +79,7 @@ find_library(SDL_LIBRARY_TEMP NAMES SDL SDL-1.1 HINTS ENV SDLDIR + PATH_SUFFIXES lib ) if(NOT SDL_BUILDING_LIBRARY) diff --git a/Modules/Platform/Darwin.cmake b/Modules/Platform/Darwin.cmake index a401762..4e7e99c 100644 --- a/Modules/Platform/Darwin.cmake +++ b/Modules/Platform/Darwin.cmake @@ -107,6 +107,7 @@ elseif(NOT "x$ENV{SDKROOT}" STREQUAL "x" AND # Use the value of SDKROOT from the environment. set(_CMAKE_OSX_SYSROOT_DEFAULT "$ENV{SDKROOT}") elseif("${CMAKE_GENERATOR}" MATCHES Xcode + OR CMAKE_OSX_DEPLOYMENT_TARGET OR CMAKE_OSX_ARCHITECTURES MATCHES "[^;]" OR NOT EXISTS "/usr/include/sys/types.h") # Find installed SDKs in either Xcode-4.3+ or pre-4.3 SDKs directory. diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index ab65d90..29ac436e 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ set(CMake_VERSION_MAJOR 2) set(CMake_VERSION_MINOR 8) set(CMake_VERSION_PATCH 10) -set(CMake_VERSION_TWEAK 0) -set(CMake_VERSION_RC 3) +set(CMake_VERSION_TWEAK 1) +#set(CMake_VERSION_RC 3) diff --git a/Source/cmDocumentation.cxx b/Source/cmDocumentation.cxx index c1360ef..debde3b 100644 --- a/Source/cmDocumentation.cxx +++ b/Source/cmDocumentation.cxx @@ -155,7 +155,7 @@ static const char *cmDocumentationStandardSeeAlso[][3] = static const char *cmDocumentationCopyright[][3] = { {0, - "Copyright 2000-2009 Kitware, Inc., Insight Software Consortium. " + "Copyright 2000-2012 Kitware, Inc., Insight Software Consortium. " "All rights reserved.", 0}, {0, "Redistribution and use in source and binary forms, with or without " diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx index ee1b60a..2e123a4 100644 --- a/Source/cmGeneratorExpressionEvaluator.cxx +++ b/Source/cmGeneratorExpressionEvaluator.cxx @@ -16,6 +16,8 @@ #include "cmGeneratorExpressionDAGChecker.h" #include "cmGeneratorExpression.h" +#include <cmsys/String.h> + //---------------------------------------------------------------------------- #if !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x510 static @@ -253,7 +255,8 @@ static const struct ConfigurationTestNode : public cmGeneratorExpressionNode return parameters.front().empty() ? "1" : "0"; } - return *parameters.begin() == context->Config ? "1" : "0"; + return cmsysString_strcasecmp(parameters.begin()->c_str(), + context->Config) == 0 ? "1" : "0"; } } configurationTestNode; diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index b9de4d8..6c95ea8 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -828,6 +828,7 @@ void cmGlobalGenerator::Configure() this->LocalGenerators.clear(); this->TargetDependencies.clear(); this->TotalTargets.clear(); + this->ImportedTargets.clear(); this->LocalGeneratorToTargetMap.clear(); this->ProjectMap.clear(); this->RuleHashes.clear(); diff --git a/Source/cmQtAutomoc.cxx b/Source/cmQtAutomoc.cxx index 942c7ab..25614b8 100644 --- a/Source/cmQtAutomoc.cxx +++ b/Source/cmQtAutomoc.cxx @@ -195,6 +195,34 @@ void cmQtAutomoc::SetupAutomocTarget(cmTarget* target) } } + + const char* qtIncDir = 0; + const char* qtCoreIncDir = 0; + + // check whether ${QT_INCLUDE_DIR} is part of the implicit include dirs, + // see http://public.kitware.com/Bug/view.php?id=13667 + bool qtIncludeDirMayHaveBeenRemoved = false; + if (makefile->IsSet("QT_INCLUDE_DIR")) + { + qtIncDir = makefile->GetDefinition("QT_INCLUDE_DIR"); + std::string s = + makefile->GetSafeDefinition("CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES"); + std::vector<std::string> implIncDirs; + cmSystemTools::ExpandListArgument(s, implIncDirs); + if (std::find(implIncDirs.begin(), implIncDirs.end(),std::string(qtIncDir)) + != implIncDirs.end()) + { + qtIncludeDirMayHaveBeenRemoved = true; + if (makefile->IsSet("QT_QTCORE_INCLUDE_DIR")) + { + qtCoreIncDir = makefile->GetDefinition("QT_QTCORE_INCLUDE_DIR"); + } + } + } + + bool haveQtCoreIncDir = false; + bool haveQtIncDir = false; + std::vector<std::string> includeDirs; cmGeneratorTarget gtgt(target); localGen->GetIncludeDirectories(includeDirs, >gt, "CXX"); @@ -207,6 +235,37 @@ void cmQtAutomoc::SetupAutomocTarget(cmTarget* target) _moc_incs += sep; sep = ";"; _moc_incs += *incDirIt; + + if (qtIncludeDirMayHaveBeenRemoved && qtCoreIncDir && qtIncDir) // #13667 + { + if (*incDirIt == qtIncDir) + { + haveQtIncDir = true; + qtIncludeDirMayHaveBeenRemoved = false; // it's here, i.e. not removed + } + if (*incDirIt == qtCoreIncDir) + { + haveQtCoreIncDir = true; + } + } + } + + // Some projects (kdelibs, phonon) query the compiler for its default + // include search dirs, and add those to + // CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES. + // These may include e.g./usr/lib/qt/include . This is typically also part + // of ${QT_INCLUDES}. If this directory is then contained in the implicit + // include dirs, it is removed from the include dirs returned from the + // target above. So we add ${QT_INCLUDE_DIR} manually for moc if we detected + // that ${QT_QTCORE_INCLUDE_DIR} is among the include dirs (there shouldn't + // be a way to use Qt4 without using ${QT_QTCORE_INCLUDE_DIR} I think. + // See #13646 and #13667. + if (qtIncludeDirMayHaveBeenRemoved && qtCoreIncDir && qtIncDir + && (haveQtCoreIncDir == true) && (haveQtIncDir == false)) + { + _moc_incs += sep; + sep = ";"; + _moc_incs += qtIncDir; } const char* tmp = target->GetProperty("COMPILE_DEFINITIONS"); diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 423b350..f3eb52b 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -2584,7 +2584,10 @@ cmTarget::OutputInfo const* cmTarget::GetOutputInfo(const char* config) OutputInfo info; this->ComputeOutputDir(config, false, info.OutDir); this->ComputeOutputDir(config, true, info.ImpDir); - this->ComputePDBOutputDir(config, info.PdbDir); + if(!this->ComputePDBOutputDir(config, info.PdbDir)) + { + info.PdbDir = info.OutDir; + } OutputInfoMapType::value_type entry(config_upper, info); i = this->Internal->OutputInfoMap.insert(entry).first; } @@ -3940,7 +3943,7 @@ bool cmTarget::ComputeOutputDir(const char* config, } //---------------------------------------------------------------------------- -void cmTarget::ComputePDBOutputDir(const char* config, std::string& out) +bool cmTarget::ComputePDBOutputDir(const char* config, std::string& out) { // Look for a target property defining the target output directory // based on the target type. @@ -3980,8 +3983,7 @@ void cmTarget::ComputePDBOutputDir(const char* config, std::string& out) } if(out.empty()) { - // Default to the current output directory. - out = "."; + return false; } // Convert the output path to a full path in case it is @@ -3996,6 +3998,7 @@ void cmTarget::ComputePDBOutputDir(const char* config, std::string& out) this->Makefile->GetLocalGenerator()->GetGlobalGenerator()-> AppendDirectoryForConfig("/", config, "", out); } + return true; } //---------------------------------------------------------------------------- diff --git a/Source/cmTarget.h b/Source/cmTarget.h index 558bfab..e442d25 100644 --- a/Source/cmTarget.h +++ b/Source/cmTarget.h @@ -577,7 +577,7 @@ private: struct OutputInfo; OutputInfo const* GetOutputInfo(const char* config); bool ComputeOutputDir(const char* config, bool implib, std::string& out); - void ComputePDBOutputDir(const char* config, std::string& out); + bool ComputePDBOutputDir(const char* config, std::string& out); // Cache import information from properties for each configuration. struct ImportInfo; diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index b404333..bbf804b 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -556,6 +556,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ --build-generator ${CMAKE_TEST_GENERATOR} --build-project GeneratorExpression --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-options -DCMAKE_BUILD_TYPE=\${CTEST_CONFIGURATION_TYPE} ) list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/GeneratorExpression") diff --git a/Tests/GeneratorExpression/CMakeLists.txt b/Tests/GeneratorExpression/CMakeLists.txt index 891fa11..bb31476 100644 --- a/Tests/GeneratorExpression/CMakeLists.txt +++ b/Tests/GeneratorExpression/CMakeLists.txt @@ -16,6 +16,10 @@ add_custom_target(check ALL -Dtest_and_1_1=$<AND:1,1> -Dtest_config_0=$<CONFIG:$<CONFIGURATION>x> -Dtest_config_1=$<CONFIG:$<CONFIGURATION>> + -Dtest_config_debug=$<CONFIG:Debug>$<CONFIG:DEBUG>$<CONFIG:DeBuG> + -Dtest_config_release=$<CONFIG:Release>$<CONFIG:RELEASE>$<CONFIG:ReLeAsE> + -Dtest_config_relwithdebinfo=$<CONFIG:RelWithDebInfo>$<CONFIG:RELWITHDEBINFO>$<CONFIG:relwithdebinfo> + -Dtest_config_minsizerel=$<CONFIG:MinSizeRel>$<CONFIG:MINSIZEREL>$<CONFIG:minsizerel> -Dtest_not_0=$<NOT:0> -Dtest_not_1=$<NOT:1> -Dtest_or_0=$<OR:0> diff --git a/Tests/GeneratorExpression/check.cmake b/Tests/GeneratorExpression/check.cmake index 8ffa481..8745d57 100644 --- a/Tests/GeneratorExpression/check.cmake +++ b/Tests/GeneratorExpression/check.cmake @@ -17,6 +17,11 @@ check(test_and_1_0 "0") check(test_and_1_1 "1") check(test_config_0 "0") check(test_config_1 "1") +foreach(c debug release relwithdebinfo minsizerel) + if(NOT "${test_config_${c}}" MATCHES "^(0+|1+)$") + message(SEND_ERROR "test_config_${c} is \"${test_config_${c}}\", not all 0 or all 1") + endif() +endforeach() check(test_not_0 "1") check(test_not_1 "0") check(test_or_0 "0") @@ -357,7 +357,7 @@ Directory and file names: # Display CMake bootstrap usage cmake_version_display() { - echo "CMake ${cmake_version}, Copyright 2000-2011 Kitware, Inc." + echo "CMake ${cmake_version}, Copyright 2000-2012 Kitware, Inc." } # Display CMake bootstrap error, display the log file and exit |