From 35b91ac5c0d781bcea5d013bcd62fa11c6841d6f Mon Sep 17 00:00:00 2001 From: Clinton Stimpson Date: Mon, 2 Aug 2010 09:39:02 -0600 Subject: [PATCH 001/170] Fix regex for moc includes when looking for frameworks. --- Modules/Qt4Macros.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Modules/Qt4Macros.cmake b/Modules/Qt4Macros.cmake index bd72c8f64..8553feb19 100644 --- a/Modules/Qt4Macros.cmake +++ b/Modules/Qt4Macros.cmake @@ -71,12 +71,12 @@ MACRO (QT4_GET_MOC_FLAGS _moc_flags) GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES) FOREACH(_current ${_inc_DIRS}) - IF("${_current}" MATCHES ".framework/?$") - STRING(REGEX REPLACE "/[^/]+.framework" "" framework_path "${_current}") + IF("${_current}" MATCHES "\\.framework/?$") + STRING(REGEX REPLACE "/[^/]+\\.framework" "" framework_path "${_current}") SET(${_moc_flags} ${${_moc_flags}} "-F${framework_path}") - ELSE("${_current}" MATCHES ".framework/?$") + ELSE("${_current}" MATCHES "\\.framework/?$") SET(${_moc_flags} ${${_moc_flags}} "-I${_current}") - ENDIF("${_current}" MATCHES ".framework/?$") + ENDIF("${_current}" MATCHES "\\.framework/?$") ENDFOREACH(_current ${_inc_DIRS}) GET_DIRECTORY_PROPERTY(_defines COMPILE_DEFINITIONS) From bd56626a4ad06d43c896c59c2065a3fd1cd3b73a Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Wed, 8 Sep 2010 14:50:14 -0400 Subject: [PATCH 002/170] Fixes for the OSF operating system build. --- Utilities/cmlibarchive/CMakeLists.txt | 8 +++++--- Utilities/cmlibarchive/build/cmake/config.h.in | 3 +++ Utilities/cmlibarchive/libarchive/archive.h | 8 ++++++-- Utilities/cmlibarchive/libarchive/archive_entry.h | 6 +++++- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Utilities/cmlibarchive/CMakeLists.txt b/Utilities/cmlibarchive/CMakeLists.txt index e95935a5b..8c10b2184 100644 --- a/Utilities/cmlibarchive/CMakeLists.txt +++ b/Utilities/cmlibarchive/CMakeLists.txt @@ -512,6 +512,8 @@ CHECK_TYPE_SIZE(int64_t INT64_T) IF(NOT HAVE_INT64_T) IF(WIN32) SET(int64_t "__int64") + ELSE(WIN32) + SET(int64_t "long long") ENDIF(WIN32) ENDIF(NOT HAVE_INT64_T) # @@ -568,9 +570,7 @@ ENDIF(NOT HAVE_UINT16_T) # CHECK_TYPE_SIZE(uint32_t UINT32_T) IF(NOT HAVE_UINT32_T) - IF(WIN32) - SET(uint32_t "unsigned int") - ENDIF(WIN32) + SET(uint32_t "unsigned int") ENDIF(NOT HAVE_UINT32_T) CHECK_TYPE_SIZE(int32_t INT32_T) IF(NOT HAVE_INT32_T) @@ -581,6 +581,8 @@ CHECK_TYPE_SIZE(uint64_t UINT64_T) IF(NOT HAVE_UINT64_T) IF(WIN32) SET(uint64_t "unsigned __int64") + ELSE(WIN32) + SET(uint64_t "unsigned long long") ENDIF(WIN32) ENDIF(NOT HAVE_UINT64_T) # diff --git a/Utilities/cmlibarchive/build/cmake/config.h.in b/Utilities/cmlibarchive/build/cmake/config.h.in index 9af45a06c..34dbce3c2 100644 --- a/Utilities/cmlibarchive/build/cmake/config.h.in +++ b/Utilities/cmlibarchive/build/cmake/config.h.in @@ -1,4 +1,7 @@ /* config.h. Generated from config.h.cmake by cmake configure */ +#if defined(__osf__) +# define _OSF_SOURCE +#endif /* Version number of bsdcpio */ #cmakedefine BSDCPIO_VERSION_STRING "${BSDCPIO_VERSION_STRING}" diff --git a/Utilities/cmlibarchive/libarchive/archive.h b/Utilities/cmlibarchive/libarchive/archive.h index 9d84121bb..9b918a82b 100644 --- a/Utilities/cmlibarchive/libarchive/archive.h +++ b/Utilities/cmlibarchive/libarchive/archive.h @@ -37,7 +37,7 @@ */ #if defined(__BORLANDC__) && __BORLANDC__ >= 0x560 # define __LA_STDINT_H -#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__) +#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__) && !defined(__osf__) # define __LA_STDINT_H #endif @@ -68,7 +68,11 @@ # endif #else #include /* ssize_t, uid_t, and gid_t */ -#define __LA_INT64_T int64_t +#if defined(__osf__) +# define __LA_INT64_T long long +#else +# define __LA_INT64_T int64_t +#endif #define __LA_SSIZE_T ssize_t #define __LA_UID_T uid_t #define __LA_GID_T gid_t diff --git a/Utilities/cmlibarchive/libarchive/archive_entry.h b/Utilities/cmlibarchive/libarchive/archive_entry.h index 9c7cd43ba..e85285f9d 100644 --- a/Utilities/cmlibarchive/libarchive/archive_entry.h +++ b/Utilities/cmlibarchive/libarchive/archive_entry.h @@ -61,7 +61,11 @@ # endif #else # include -#define __LA_INT64_T int64_t +#ifdef __osf__ +# define __LA_INT64_T long long +#else +# define __LA_INT64_T int64_t +#endif #define __LA_UID_T uid_t #define __LA_GID_T gid_t #define __LA_DEV_T dev_t From 1a0c166a266cade3bf07cc4d205dedfe2d570bd0 Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 20 Aug 2010 14:07:02 -0400 Subject: [PATCH 003/170] Store direct dependencies in solutions for VS >= 8 Since commit bc43b0f2 (Do not link library dependencies in VS solutions, 2009-10-20) CMake disables for VS >= 8 linking of a target to libraries that happen to be listed as solution-level dependencies. Therefore we can list the direct dependencies of each target in the solution file and let VS handle transitive dependencies automatically. --- Source/cmGlobalGenerator.cxx | 5 ++--- Source/cmGlobalVisualStudio8Generator.cxx | 14 ++++++++++++++ Source/cmGlobalVisualStudio8Generator.h | 2 ++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index c6d05b06a..820d22535 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -699,9 +699,8 @@ bool cmGlobalGenerator::IsDependedOn(const char* project, l != targets.end(); l++) { cmTarget& target = l->second; - std::set::const_iterator pos = - target.GetUtilities().find(targetIn->GetName()); - if(pos != target.GetUtilities().end()) + TargetDependSet const& tgtdeps = this->GetTargetDirectDepends(target); + if(tgtdeps.count(targetIn)) { return true; } diff --git a/Source/cmGlobalVisualStudio8Generator.cxx b/Source/cmGlobalVisualStudio8Generator.cxx index c5c9d5c1b..48f900344 100644 --- a/Source/cmGlobalVisualStudio8Generator.cxx +++ b/Source/cmGlobalVisualStudio8Generator.cxx @@ -288,6 +288,20 @@ cmGlobalVisualStudio8Generator } } +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio8Generator::WriteProjectDepends( + std::ostream& fout, const char*, const char*, cmTarget& t) +{ + TargetDependSet const& unordered = this->GetTargetDirectDepends(t); + OrderedTargetDependSet depends(unordered); + for(OrderedTargetDependSet::const_iterator i = depends.begin(); + i != depends.end(); ++i) + { + std::string guid = this->GetGUID((*i)->GetName()); + fout << "\t\t{" << guid << "} = {" << guid << "}\n"; + } +} + //---------------------------------------------------------------------------- bool cmGlobalVisualStudio8Generator::NeedLinkLibraryDependencies( cmTarget& target) diff --git a/Source/cmGlobalVisualStudio8Generator.h b/Source/cmGlobalVisualStudio8Generator.h index e0d5d8044..95b6a17c9 100644 --- a/Source/cmGlobalVisualStudio8Generator.h +++ b/Source/cmGlobalVisualStudio8Generator.h @@ -78,6 +78,8 @@ protected: virtual void WriteProjectConfigurations(std::ostream& fout, const char* name, bool partOfDefaultBuild); + virtual void WriteProjectDepends(std::ostream& fout, const char* name, + const char* path, cmTarget &t); const char* ArchitectureId; }; From 92c082b1c9269a2fcbb9472b02adb3dd57a283ea Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Fri, 10 Sep 2010 13:37:02 -0400 Subject: [PATCH 004/170] Add a fix for the inline keyword on the osf os. --- Utilities/cmlibarchive/libarchive/archive_endian.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Utilities/cmlibarchive/libarchive/archive_endian.h b/Utilities/cmlibarchive/libarchive/archive_endian.h index 067312d38..58abee6df 100644 --- a/Utilities/cmlibarchive/libarchive/archive_endian.h +++ b/Utilities/cmlibarchive/libarchive/archive_endian.h @@ -48,7 +48,7 @@ */ #if defined(__WATCOMC__) || defined(__sgi) || defined(__hpux) || defined(__BORLANDC__) || defined(__SUNPRO_C) #define inline -#elif defined(_MSC_VER) +#elif defined(_MSC_VER) || defined(__osf__) #define inline __inline #endif From c4a0f0b2d6bd212723106bf0b011eb28dee31dc3 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 15 Sep 2010 10:15:59 -0400 Subject: [PATCH 005/170] CMake 2.8.3-rc1 --- CMakeLists.txt | 6 +- ChangeLog.manual | 278 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 281 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e8b92866..0b7c2d84a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -400,9 +400,9 @@ ENDIF() # The CMake version number. SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) -SET(CMake_VERSION_PATCH 2) -#SET(CMake_VERSION_TWEAK 0) -#SET(CMake_VERSION_RC 1) +SET(CMake_VERSION_PATCH 3) +SET(CMake_VERSION_TWEAK 0) +SET(CMake_VERSION_RC 1) # Releases define a tweak level. IF(DEFINED CMake_VERSION_TWEAK) diff --git a/ChangeLog.manual b/ChangeLog.manual index 7b0a90135..2de73388c 100644 --- a/ChangeLog.manual +++ b/ChangeLog.manual @@ -1,3 +1,281 @@ +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 with one vector + 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 _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) From fd343a1a36c4f6ff62f67acfc5506fb2592858b3 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Tue, 21 Sep 2010 10:23:09 -0400 Subject: [PATCH 006/170] Add a "Contract" test for VTK. The test downloads and builds VTK. The idea is that we can make sure that CMake is staying backwards compatible by testing projects against CMake as the changes are made in CMake. Because these tests will take a long time to run, they will not be enabled by default. Instead, they will be enabled by putting a cache variable into CMake. --- Tests/CMakeLists.txt | 11 +++++++++- Tests/Contracts/vtk542/CMakeLists.txt | 30 +++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 Tests/Contracts/vtk542/CMakeLists.txt diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 5e88b5c40..82ea48bc7 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -11,7 +11,7 @@ MACRO(ADD_TEST_MACRO NAME COMMAND) --build-generator ${CMAKE_TEST_GENERATOR} --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} --build-project ${proj} - --test-command ${COMMAND}) + --test-command ${COMMAND} ${ARGN}) LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${dir}") ENDMACRO(ADD_TEST_MACRO) @@ -1757,6 +1757,15 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ -D source_dir:STRING=${CMAKE_CURRENT_SOURCE_DIR}/Tutorial/Step3 -D CMAKE_CTEST_COMMAND:STRING=${CMAKE_CTEST_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/CMakeWizardTest.cmake) + # If the cache variable CMAKE_CONTRACT_PROJECTS is set + # then the dashboard will run a contract with CMake test of that + # name. For example CMAKE_CONTRACT_PROJECTS = vtk542 would run + # the vtk542 contract test. + FOREACH(project ${CMAKE_CONTRACT_PROJECTS}) + ADD_TEST_MACRO(Contracts.${project} + VTK-build/bin/CommonCxxTests otherArrays) + SET_TESTS_PROPERTIES(Contracts.${project} PROPERTIES TIMEOUT 5400) + ENDFOREACH() ENDIF(BUILD_TESTING) SUBDIRS(CMakeTests) diff --git a/Tests/Contracts/vtk542/CMakeLists.txt b/Tests/Contracts/vtk542/CMakeLists.txt new file mode 100644 index 000000000..cfb8b1600 --- /dev/null +++ b/Tests/Contracts/vtk542/CMakeLists.txt @@ -0,0 +1,30 @@ +# The VTK external project for CMake +# --------------------------------------------------------------------------- +cmake_minimum_required(VERSION 2.8) +project(vtk542) +include(ExternalProject) + + +set(vtk_source "${CMAKE_CURRENT_BINARY_DIR}/VTK-source") +set(vtk_binary "${CMAKE_CURRENT_BINARY_DIR}/VTK-build") + +ExternalProject_Add(VTK + DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR} + URL "http://www.vtk.org/files/release/5.4/vtk-5.4.2.tar.gz" + URL_MD5 c2c797091d4b2128d9a1bd32c4b78227 + SOURCE_DIR ${vtk_source} + BINARY_DIR ${vtk_binary} + CMAKE_GENERATOR "${CMAKE_GENERATOR}" + CMAKE_ARGS + -DBUILD_EXAMPLES:BOOL=ON + -DBUILD_TESTING:BOOL=ON + INSTALL_COMMAND "" + ) +# make it so that each build will run make in the VTK build tree +ExternalProject_Add_Step(VTK forcebuild + COMMAND ${CMAKE_COMMAND} + -E remove ${CMAKE_CURRENT_BUILD_DIR}/VTK-prefix/src/VTK-stamp/VTK-build + DEPENDEES configure + DEPENDERS build + ALWAYS 1 + ) From 942ace83935fdb3272e026f21c56a6682b78d6de Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Tue, 21 Sep 2010 15:08:13 -0400 Subject: [PATCH 007/170] Fix contract test so it is not hard coded to the vtk542 test. --- Tests/CMakeLists.txt | 10 +++++++++- Tests/Contracts/vtk542/RunTest.cmake | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 Tests/Contracts/vtk542/RunTest.cmake diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 82ea48bc7..895cb2a0a 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1761,9 +1761,17 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ # then the dashboard will run a contract with CMake test of that # name. For example CMAKE_CONTRACT_PROJECTS = vtk542 would run # the vtk542 contract test. + # For each Contract test, the project should provide a directory + # with at least one CMakeLists.txt file that uses ExternalProject + # to download and configure the project. The directory should also + # contain a RunTest.cmake file that has a single set of the format: + # SET(project_RUN_TEST testToRun) + # The testToRun should be a test executable that can be run to + # smoke test the build. FOREACH(project ${CMAKE_CONTRACT_PROJECTS}) + INCLUDE(Contracts/${project}/RunTest.cmake) ADD_TEST_MACRO(Contracts.${project} - VTK-build/bin/CommonCxxTests otherArrays) + ${${project}_RUN_TEST}) SET_TESTS_PROPERTIES(Contracts.${project} PROPERTIES TIMEOUT 5400) ENDFOREACH() ENDIF(BUILD_TESTING) diff --git a/Tests/Contracts/vtk542/RunTest.cmake b/Tests/Contracts/vtk542/RunTest.cmake new file mode 100644 index 000000000..4f48e5cd2 --- /dev/null +++ b/Tests/Contracts/vtk542/RunTest.cmake @@ -0,0 +1 @@ +SET(vtk542_RUN_TEST VTK-build/bin/CommonCxxTests otherArrays) From e1fc9b902ac737c98ecaf236568d3e685ea3dce1 Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Sat, 25 Sep 2010 20:57:03 +0200 Subject: [PATCH 008/170] Add support for nasm assembler, patch by Peter Collingbourne (see #10069) Alex --- Modules/CMakeASM_NASMInformation.cmake | 30 ++++++++++++++++++++ Modules/CMakeDetermineASM_NASMCompiler.cmake | 13 +++++++++ Modules/CMakeTestASM_NASMCompiler.cmake | 9 ++++++ 3 files changed, 52 insertions(+) create mode 100644 Modules/CMakeASM_NASMInformation.cmake create mode 100644 Modules/CMakeDetermineASM_NASMCompiler.cmake create mode 100644 Modules/CMakeTestASM_NASMCompiler.cmake diff --git a/Modules/CMakeASM_NASMInformation.cmake b/Modules/CMakeASM_NASMInformation.cmake new file mode 100644 index 000000000..2a73acad3 --- /dev/null +++ b/Modules/CMakeASM_NASMInformation.cmake @@ -0,0 +1,30 @@ +# support for the nasm assembler + +set(CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS nasm) + +if(WIN32) + if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8) + SET(CMAKE_ASM_NASM_OBJECT_FORMAT win64) + else() + SET(CMAKE_ASM_NASM_OBJECT_FORMAT win32) + endif() +elseif(APPLE) + if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8) + SET(CMAKE_ASM_NASM_OBJECT_FORMAT macho64) + else() + SET(CMAKE_ASM_NASM_OBJECT_FORMAT macho) + endif() +else() + if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8) + SET(CMAKE_ASM_NASM_OBJECT_FORMAT elf64) + else() + SET(CMAKE_ASM_NASM_OBJECT_FORMAT elf) + endif() +endif() + +set(CMAKE_ASM_NASM_COMPILE_OBJECT " -f ${CMAKE_ASM_NASM_OBJECT_FORMAT} -o ") + +# Load the generic ASMInformation file: +set(ASM_DIALECT "_NASM") +include(CMakeASMInformation) +set(ASM_DIALECT) diff --git a/Modules/CMakeDetermineASM_NASMCompiler.cmake b/Modules/CMakeDetermineASM_NASMCompiler.cmake new file mode 100644 index 000000000..2c8cda568 --- /dev/null +++ b/Modules/CMakeDetermineASM_NASMCompiler.cmake @@ -0,0 +1,13 @@ +# Find the nasm assembler + +SET(CMAKE_ASM_NASM_COMPILER_INIT nasm) + +IF(NOT CMAKE_ASM_NASM_COMPILER) + FIND_PROGRAM(CMAKE_ASM_NASM_COMPILER nasm + "$ENV{ProgramFiles}/NASM") +ENDIF(NOT CMAKE_ASM_NASM_COMPILER) + +# Load the generic DetermineASM compiler file with the DIALECT set properly: +SET(ASM_DIALECT "_NASM") +INCLUDE(CMakeDetermineASMCompiler) +SET(ASM_DIALECT) diff --git a/Modules/CMakeTestASM_NASMCompiler.cmake b/Modules/CMakeTestASM_NASMCompiler.cmake new file mode 100644 index 000000000..ba0e658be --- /dev/null +++ b/Modules/CMakeTestASM_NASMCompiler.cmake @@ -0,0 +1,9 @@ +# This file is used by EnableLanguage in cmGlobalGenerator to +# determine that the selected ASM_NASM "compiler" works. +# For assembler this can only check whether the compiler has been found, +# because otherwise there would have to be a separate assembler source file +# for each assembler on every architecture. + +SET(ASM_DIALECT "_NASM") +INCLUDE(CMakeTestASMCompiler) +SET(ASM_DIALECT) From 7b337ac8e20437bf134319bf3131505f69892447 Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Sat, 25 Sep 2010 21:00:52 +0200 Subject: [PATCH 009/170] Improve misleading comments. (the assembler is not really tested) Alex --- Modules/CMakeTestASM-ATTCompiler.cmake | 8 ++++---- Modules/CMakeTestASMCompiler.cmake | 9 +++++---- Modules/CMakeTestASM_MASMCompiler.cmake | 8 ++++---- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Modules/CMakeTestASM-ATTCompiler.cmake b/Modules/CMakeTestASM-ATTCompiler.cmake index 3b7a74f18..581ad0c23 100644 --- a/Modules/CMakeTestASM-ATTCompiler.cmake +++ b/Modules/CMakeTestASM-ATTCompiler.cmake @@ -13,10 +13,10 @@ # License text for the above reference.) # This file is used by EnableLanguage in cmGlobalGenerator to -# determine that that selected ASM-ATT compiler can actually compile -# and link the most basic of programs. If not, a fatal error -# is set and cmake stops processing commands and will not generate -# any makefiles or projects. +# determine that the selected ASM-ATT "compiler" works. +# For assembler this can only check whether the compiler has been found, +# because otherwise there would have to be a separate assembler source file +# for each assembler on every architecture. SET(ASM_DIALECT "-ATT") INCLUDE(CMakeTestASMCompiler) diff --git a/Modules/CMakeTestASMCompiler.cmake b/Modules/CMakeTestASMCompiler.cmake index 54def8136..56cf3325e 100644 --- a/Modules/CMakeTestASMCompiler.cmake +++ b/Modules/CMakeTestASMCompiler.cmake @@ -13,10 +13,11 @@ # License text for the above reference.) # This file is used by EnableLanguage in cmGlobalGenerator to -# determine that that selected ASM compiler can actually compile -# and link the most basic of programs. If not, a fatal error -# is set and cmake stops processing commands and will not generate -# any makefiles or projects. +# determine that the selected ASM compiler works. +# For assembler this can only check whether the compiler has been found, +# because otherwise there would have to be a separate assembler source file +# for each assembler on every architecture. + IF(CMAKE_ASM${ASM_DIALECT}_COMPILER) SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_WORKS 1 CACHE INTERNAL "") ELSE(CMAKE_ASM${ASM_DIALECT}_COMPILER) diff --git a/Modules/CMakeTestASM_MASMCompiler.cmake b/Modules/CMakeTestASM_MASMCompiler.cmake index 84ca98f43..8369b942c 100644 --- a/Modules/CMakeTestASM_MASMCompiler.cmake +++ b/Modules/CMakeTestASM_MASMCompiler.cmake @@ -13,10 +13,10 @@ # License text for the above reference.) # This file is used by EnableLanguage in cmGlobalGenerator to -# determine that the selected ASM_MASM "compiler" (should be masm or masm64) -# can actually "compile" and link the most basic of programs. If not, a -# fatal error is set and cmake stops processing commands and will not generate -# any makefiles or projects. +# determine that the selected ASM_MASM "compiler" (should be masm or masm64) +# works. For assembler this can only check whether the compiler has been found, +# because otherwise there would have to be a separate assembler source file +# for each assembler on every architecture. SET(ASM_DIALECT "_MASM") INCLUDE(CMakeTestASMCompiler) From ffeca06a93eca70ef7505ac087cbb246e5191ed2 Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Mon, 27 Sep 2010 18:04:34 +0200 Subject: [PATCH 010/170] Add missing copyright headers Alex --- Modules/CMakeASM_NASMInformation.cmake | 14 ++++++++++++++ Modules/CMakeDetermineASM_NASMCompiler.cmake | 14 ++++++++++++++ Modules/CMakeTestASM_NASMCompiler.cmake | 14 ++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/Modules/CMakeASM_NASMInformation.cmake b/Modules/CMakeASM_NASMInformation.cmake index 2a73acad3..ca9b8ae9f 100644 --- a/Modules/CMakeASM_NASMInformation.cmake +++ b/Modules/CMakeASM_NASMInformation.cmake @@ -1,3 +1,17 @@ + +#============================================================================= +# Copyright 2008-2009 Kitware, Inc. +# +# 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.) + # support for the nasm assembler set(CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS nasm) diff --git a/Modules/CMakeDetermineASM_NASMCompiler.cmake b/Modules/CMakeDetermineASM_NASMCompiler.cmake index 2c8cda568..41326eedd 100644 --- a/Modules/CMakeDetermineASM_NASMCompiler.cmake +++ b/Modules/CMakeDetermineASM_NASMCompiler.cmake @@ -1,3 +1,17 @@ + +#============================================================================= +# Copyright 2008-2009 Kitware, Inc. +# +# 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.) + # Find the nasm assembler SET(CMAKE_ASM_NASM_COMPILER_INIT nasm) diff --git a/Modules/CMakeTestASM_NASMCompiler.cmake b/Modules/CMakeTestASM_NASMCompiler.cmake index ba0e658be..477c43bdd 100644 --- a/Modules/CMakeTestASM_NASMCompiler.cmake +++ b/Modules/CMakeTestASM_NASMCompiler.cmake @@ -1,3 +1,17 @@ + +#============================================================================= +# Copyright 2008-2009 Kitware, Inc. +# +# 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.) + # This file is used by EnableLanguage in cmGlobalGenerator to # determine that the selected ASM_NASM "compiler" works. # For assembler this can only check whether the compiler has been found, From 79dd9becadd39b518a90bbe4c86cd17a57ab1d54 Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Mon, 27 Sep 2010 22:14:39 +0200 Subject: [PATCH 011/170] We already have 2010, fix copyright year. Alex --- Modules/CMakeASM_NASMInformation.cmake | 2 +- Modules/CMakeDetermineASM_NASMCompiler.cmake | 2 +- Modules/CMakeTestASM_NASMCompiler.cmake | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/CMakeASM_NASMInformation.cmake b/Modules/CMakeASM_NASMInformation.cmake index ca9b8ae9f..4b533a7f8 100644 --- a/Modules/CMakeASM_NASMInformation.cmake +++ b/Modules/CMakeASM_NASMInformation.cmake @@ -1,6 +1,6 @@ #============================================================================= -# Copyright 2008-2009 Kitware, Inc. +# Copyright 2010 Kitware, Inc. # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. diff --git a/Modules/CMakeDetermineASM_NASMCompiler.cmake b/Modules/CMakeDetermineASM_NASMCompiler.cmake index 41326eedd..18aa8138f 100644 --- a/Modules/CMakeDetermineASM_NASMCompiler.cmake +++ b/Modules/CMakeDetermineASM_NASMCompiler.cmake @@ -1,6 +1,6 @@ #============================================================================= -# Copyright 2008-2009 Kitware, Inc. +# Copyright 2010 Kitware, Inc. # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. diff --git a/Modules/CMakeTestASM_NASMCompiler.cmake b/Modules/CMakeTestASM_NASMCompiler.cmake index 477c43bdd..a5e2bea0a 100644 --- a/Modules/CMakeTestASM_NASMCompiler.cmake +++ b/Modules/CMakeTestASM_NASMCompiler.cmake @@ -1,6 +1,6 @@ #============================================================================= -# Copyright 2008-2009 Kitware, Inc. +# Copyright 2010 Kitware, Inc. # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. From 5e6ba7d82d8c1e3ed8f7595cfd29cea0839be020 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 6 Oct 2010 10:39:10 -0400 Subject: [PATCH 012/170] CMake 2.8.3-rc2 --- CMakeLists.txt | 2 +- ChangeLog.manual | 80 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 60ee9e53d..c18c8d653 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -420,7 +420,7 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 3) SET(CMake_VERSION_TWEAK 0) -SET(CMake_VERSION_RC 1) +SET(CMake_VERSION_RC 2) # Releases define a tweak level. IF(DEFINED CMake_VERSION_TWEAK) diff --git a/ChangeLog.manual b/ChangeLog.manual index 2de73388c..c283685be 100644 --- a/ChangeLog.manual +++ b/ChangeLog.manual @@ -1,3 +1,83 @@ +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 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): From c81ad34e85fcc18fe8095b01e3b06d2cf1005155 Mon Sep 17 00:00:00 2001 From: David Cole Date: Fri, 8 Oct 2010 15:09:24 -0400 Subject: [PATCH 013/170] Add a contract test for building the CSE. To activate the CSE contract test on a given Linux machine's CMake dashboard, put CMAKE_CONTRACT_PROJECTS:STRING=cse-snapshot in the CMake dashboard's initial cache. The chosen snapshot does not generate subproject dependency info right now. That code was in a previous revision in the CSE's svn repo that apparently has not been merged into the present cse git repository master branch. After that is fixed up in the cse repo, we can update the tag here so that the snapshot built here can run a sub-project based dashboard script. For now, it runs as one big build step, building 'all'. --- Tests/CMakeLists.txt | 6 +- Tests/Contracts/cse-snapshot/CMakeLists.txt | 100 ++++++++++++++++++ .../Contracts/cse-snapshot/Dashboard.cmake.in | 76 +++++++++++++ Tests/Contracts/cse-snapshot/RunTest.cmake | 3 + 4 files changed, 184 insertions(+), 1 deletion(-) create mode 100644 Tests/Contracts/cse-snapshot/CMakeLists.txt create mode 100644 Tests/Contracts/cse-snapshot/Dashboard.cmake.in create mode 100644 Tests/Contracts/cse-snapshot/RunTest.cmake diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 895cb2a0a..ed12c650c 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -21,7 +21,11 @@ IF(DEFINED ENV{HOME} AND NOT CTEST_NO_TEST_HOME) FILE(MAKE_DIRECTORY "${TEST_HOME}") FILE(WRITE "${TEST_HOME}/.cvspass" ":pserver:anoncvs@www.cmake.org:/cvsroot/KWSys A\n") SET(TEST_HOME_ENV_CODE "# Fake a user home directory to avoid polluting the real one. -SET(ENV{HOME} \"${TEST_HOME}\")") +# But provide original ENV{HOME} value in ENV{CTEST_REAL_HOME} for tests that +# need access to the real HOME directory. +SET(ENV{CTEST_REAL_HOME} \"$ENV{HOME}\") +SET(ENV{HOME} \"${TEST_HOME}\") +") ENDIF() # Choose a default configuration for CTest tests. diff --git a/Tests/Contracts/cse-snapshot/CMakeLists.txt b/Tests/Contracts/cse-snapshot/CMakeLists.txt new file mode 100644 index 000000000..a2f5e9c5c --- /dev/null +++ b/Tests/Contracts/cse-snapshot/CMakeLists.txt @@ -0,0 +1,100 @@ +cmake_minimum_required(VERSION 2.8) +project(cse-snapshot) + +include(ExternalProject) + +include("${CMAKE_CURRENT_SOURCE_DIR}/LocalOverrides.cmake" OPTIONAL) +include("${CMAKE_CURRENT_BINARY_DIR}/LocalOverrides.cmake" OPTIONAL) + +if(NOT DEFINED HOME) + if(DEFINED ENV{CTEST_REAL_HOME}) + set(HOME "$ENV{CTEST_REAL_HOME}") + else() + set(HOME "$ENV{HOME}") + endif() +endif() + +set(tag "510345e4360ac3b07ddb29e527207297f7cc6d89") +string(SUBSTRING "${tag}" 0 8 shorttag) + +set(base_dir "${HOME}/.cmake/Contracts/${PROJECT_NAME}/${shorttag}") +set(binary_dir "${base_dir}/build") +set(script_dir "${base_dir}") +set(source_dir "${base_dir}/src") + +if(NOT DEFINED BUILDNAME) + set(BUILDNAME "CMakeContract-${shorttag}") +endif() + +if(NOT DEFINED SITE) + site_name(SITE) +endif() + +if(NOT DEFINED PROCESSOR_COUNT) + # Unknown: + set(PROCESSOR_COUNT 0) + + # Linux: + set(cpuinfo_file "/proc/cpuinfo") + if(EXISTS "${cpuinfo_file}") + file(STRINGS "${cpuinfo_file}" procs REGEX "^processor.: [0-9]+$") + list(LENGTH procs PROCESSOR_COUNT) + endif() + + # Mac: + if(APPLE) + find_program(cmd_sysctl "sysctl") + if(cmd_sysctl) + execute_process(COMMAND ${cmd_sysctl} -n hw.ncpu + OUTPUT_VARIABLE PROCESSOR_COUNT + OUTPUT_STRIP_TRAILING_WHITESPACE) + endif() + endif() + + # Windows: + if(WIN32) + set(PROCESSOR_COUNT "$ENV{NUMBER_OF_PROCESSORS}") + endif() +endif() + +find_package(Git) +if(NOT GIT_EXECUTABLE) + message(FATAL_ERROR "error: could not find git") + # adjust PATH to find git, or set GIT_EXECUTABLE in LocalOverrides.cmake +endif() + +configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/Dashboard.cmake.in" + "${script_dir}/Dashboard.cmake" + @ONLY) + +# Source dir for this project exists outside the CMake build tree because it +# is absolutely huge. +# +if(EXISTS "${source_dir}/.git") + # If it exists already, download is a complete no-op: + ExternalProject_Add(download-${PROJECT_NAME} + DOWNLOAD_COMMAND "" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + ) +else() + # If it does not yet exist, download clones the git repository: + ExternalProject_Add(download-${PROJECT_NAME} + SOURCE_DIR "${source_dir}" + GIT_REPOSITORY "git://public.kitware.com/cse.git" + GIT_TAG "${tag}" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + ) +endif() + +ExternalProject_Add(build-${PROJECT_NAME} + DOWNLOAD_COMMAND "" + CONFIGURE_COMMAND "" + BUILD_COMMAND ${CMAKE_CTEST_COMMAND} -S "${script_dir}/Dashboard.cmake" + INSTALL_COMMAND "" + DEPENDS download-${PROJECT_NAME} + ) diff --git a/Tests/Contracts/cse-snapshot/Dashboard.cmake.in b/Tests/Contracts/cse-snapshot/Dashboard.cmake.in new file mode 100644 index 000000000..138eb3f81 --- /dev/null +++ b/Tests/Contracts/cse-snapshot/Dashboard.cmake.in @@ -0,0 +1,76 @@ +# This "ctest -S" script may be configured to drive a nightly dashboard on any +# Linux machine. +# +set(CTEST_BINARY_DIRECTORY "@binary_dir@") +set(CTEST_BUILD_NAME "@BUILDNAME@") +set(CTEST_SITE "@SITE@") +set(CTEST_SOURCE_DIRECTORY "@source_dir@") +set(PROCESSOR_COUNT "@PROCESSOR_COUNT@") + +# Assume a Linux build, with a make that supports -j. Modify this script if +# assumption is ever invalid. +# +if(PROCESSOR_COUNT) + set(CTEST_BUILD_FLAGS "-j${PROCESSOR_COUNT}") +endif() + +set(CTEST_CMAKE_GENERATOR "Unix Makefiles") +set(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}") + +message("Cleaning binary dir '${CTEST_BINARY_DIRECTORY}'") +ctest_empty_binary_directory("${CTEST_BINARY_DIRECTORY}") + +# Intentionally no ctest_update step in this script. This script is run as a +# "Contract" test on a CMake dashboard submission using the just-built ctest +# as the driver. The download step in the Contract CMakeLists file takes care +# of setting up the source tree before calling this ctest -S script. The idea +# is that the source tree will be the same every day, so there should not be +# an "update" step for this build. + +message("Configuring CSE in binary dir '${CTEST_BINARY_DIRECTORY}'") +set_property(GLOBAL PROPERTY SubProject "CSE-toplevel") +set_property(GLOBAL PROPERTY Label "CSE-toplevel") + +ctest_start("Experimental") + +set(CSE_TOPLEVEL_OPTIONS + -DEXTERNAL_PROJECT_DASHBOARD_BUILD:BOOL=ON + -DEXTERNAL_PROJECT_TESTS:BOOL=ON + -DCSE_INSTALL_PREFIX:PATH=${CTEST_BINARY_DIRECTORY}/built + -DCSE_SUBSET:STRING=ALL + -DCTEST_SITE:STRING=${CTEST_SITE} +) + +ctest_configure(OPTIONS "${CSE_TOPLEVEL_OPTIONS}") + +# The configure step produces a file listing the CSE packages and dependencies. +# This file also generates Project.xml and stores it in ${PROJECT_XML}. +# +set(subprojects "") +if(EXISTS "${CTEST_BINARY_DIRECTORY}/CSEBuildtimeDepends.cmake") + message("Including CSEBuildtimeDepends.cmake") + include("${CTEST_BINARY_DIRECTORY}/CSEBuildtimeDepends.cmake") + set(subprojects ${CSE_ALL_SORTED}) + message("Submitting Project.xml") + ctest_submit(FILES ${PROJECT_XML}) +endif() + +message("Submitting CSE configure results") +ctest_submit() + +if(subprojects) + message("Building by looping over subprojects...") + foreach(subproject ${subprojects}) + message("########## ${subproject} ##########") + set_property(GLOBAL PROPERTY SubProject "${subproject}") + set_property(GLOBAL PROPERTY Label "${subproject}") + ctest_build(TARGET "${subproject}" APPEND) + message("Submitting ${subproject} build results") + ctest_submit(PARTS build) + endforeach() +else() + message("Building all...") + ctest_build(APPEND) + message("Submitting build results") + ctest_submit(PARTS build) +endif() diff --git a/Tests/Contracts/cse-snapshot/RunTest.cmake b/Tests/Contracts/cse-snapshot/RunTest.cmake new file mode 100644 index 000000000..7eb630116 --- /dev/null +++ b/Tests/Contracts/cse-snapshot/RunTest.cmake @@ -0,0 +1,3 @@ +set(exe "$ENV{HOME}/.cmake/Contracts/cse-snapshot/510345e4/build/built/Release/git-1.6.5.2/bin/git") +set(args help clone) +set(cse-snapshot_RUN_TEST ${exe} ${args}) From 249a9bb44d84b4cbe90cdd6daf19ed872360c64d Mon Sep 17 00:00:00 2001 From: Clinton Stimpson Date: Thu, 14 Oct 2010 13:58:43 -0600 Subject: [PATCH 014/170] cmake-gui: use BundleUtilities in place of custom script. BundleUtilities is better supported and allows including shared Qt libs on other platforms. Also removed limitation of static Qt for windows build of cmake-gui. --- .../CMakeIngestOSXBundleLibraries.cmake | 347 ------------------ Source/QtDialog/CMakeLists.txt | 32 +- 2 files changed, 16 insertions(+), 363 deletions(-) delete mode 100644 Source/QtDialog/CMakeIngestOSXBundleLibraries.cmake diff --git a/Source/QtDialog/CMakeIngestOSXBundleLibraries.cmake b/Source/QtDialog/CMakeIngestOSXBundleLibraries.cmake deleted file mode 100644 index 9f5cf0010..000000000 --- a/Source/QtDialog/CMakeIngestOSXBundleLibraries.cmake +++ /dev/null @@ -1,347 +0,0 @@ -# -# CMakeIngestOSXBundleLibraries.cmake -# -# Only for the Mac build. -# -# Depends on OS tools: -# otool -# install_name_tool -# -# This script ingests libraries and frameworks into an existing .app bundle and -# then uses install_name_tool to fixup the references to the newly embedded -# libraries so that they all refer to each other via "@executable_path." -# -# The main intent (and simplifying assumption used for developing the script) -# is to have a single executable .app bundle that becomes "self-contained" by -# copying all non-system libs that it depends on into itself. The further -# assumption is that all such dependencies are simple .dylib shared library -# files or Mac Framework libraries. -# -# This script can be used as part of the build via ADD_CUSTOM_COMMAND, or used -# only during make install via INSTALL SCRIPT. -# -if(NOT DEFINED input_file) - message(FATAL_ERROR " -${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): error: Variable input_file is not defined. - -Use a command line like this to use this script: - cmake \"-Dinput_file=filename\" \"-Dextra_libs=/path/to/lib1;/path/to/lib2\" \"-Dlib_path=/path/to/unqualified/libs\" -P \"${CMAKE_CURRENT_LIST_FILE}\" - -'input_file' should be the main executable inside a Mac bundle directory structure. -For example, use 'bin/paraview.app/Contents/MacOS/paraview' from a ParaView binary dir. - -'extra_libs' should be a semi-colon separated list of full path names to extra libraries -to copy into the bundle that cannot be derived from otool -L output. For example, you may -also want to fixup dynamically loaded plugins from your build tree and copy them into the -bundle. - -'lib_path' should be the path where to find libraries referenced without a path name in -otool -L output. - -") -endif(NOT DEFINED input_file) -message("ingest ${input_file}") -set(eol_char "E") - -if(APPLE) - set(dep_tool "otool") - set(dep_cmd_args "-L") - set(dep_regex "^\t([^\t]+) \\(compatibility version ([0-9]+.[0-9]+.[0-9]+), current version ([0-9]+.[0-9]+.[0-9]+)\\)${eol_char}$") -endif(APPLE) - -message("") -message("# Script \"${CMAKE_CURRENT_LIST_FILE}\" running...") -message("") -message("input_file: '${input_file}'") -message("extra_libs: '${extra_libs}'") -message("lib_path: '${lib_path}'") -message("") - -get_filename_component(input_file_full "${input_file}" ABSOLUTE) -message("input_file_full: '${input_file_full}'") - -get_filename_component(bundle "${input_file_full}/../../.." ABSOLUTE) -message("bundle: '${bundle}'") - - -find_program(dep_cmd ${dep_tool}) - -# find the full path to the framework in path set the result -# in pathout -macro(find_framework_full_path path pathout) - set(${pathout} "${path}") - if(NOT EXISTS "${path}") - set(FRAMEWORK_SEARCH "/Library/Frameworks" - "/System/Library/Frameworks" ) - set(__FOUND FALSE) - foreach(f ${FRAMEWORK_SEARCH}) - set(newd "${f}/${path}") - if(EXISTS "${newd}" AND NOT __FOUND) - set(${pathout} "${newd}") - set(__FOUND TRUE) - endif(EXISTS "${newd}" AND NOT __FOUND) - endforeach(f) - endif(NOT EXISTS "${path}") -endmacro(find_framework_full_path) - - -macro(append_unique au_list_var au_value) - set(${au_list_var} ${${au_list_var}} "${au_value}") -endmacro(append_unique) - - -macro(gather_dependents gd_target gd_dependents_var) - execute_process( - COMMAND ${dep_cmd} ${dep_cmd_args} ${gd_target} - OUTPUT_VARIABLE dep_tool_ov - ) - - string(REGEX REPLACE ";" "\\\\;" dep_candidates "${dep_tool_ov}") - string(REGEX REPLACE "\n" "${eol_char};" dep_candidates "${dep_candidates}") - - set(${gd_dependents_var} "") - - foreach(candidate ${dep_candidates}) - if("${candidate}" MATCHES "${dep_regex}") - string(REGEX REPLACE "${dep_regex}" "\\1" raw_item "${candidate}") - string(REGEX REPLACE "${dep_regex}" "\\2" raw_compat_version "${candidate}") - string(REGEX REPLACE "${dep_regex}" "\\3" raw_current_version "${candidate}") - - set(item "${raw_item}") - - string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\1" compat_major_version "${raw_compat_version}") - string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\2" compat_minor_version "${raw_compat_version}") - string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\3" compat_patch_version "${raw_compat_version}") - - string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\1" current_major_version "${raw_current_version}") - string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\2" current_minor_version "${raw_current_version}") - string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\3" current_patch_version "${raw_current_version}") - - #message("${raw_item} - compat ${raw_compat_version} - current ${raw_current_version}") - append_unique("${gd_dependents_var}" "${item}") - else("${candidate}" MATCHES "${dep_regex}") - if("${candidate}" STREQUAL "${gd_target}:${eol_char}") - #message("info: ignoring target name...") - else("${candidate}" STREQUAL "${gd_target}:${eol_char}") - message("error: candidate='${candidate}'") - endif("${candidate}" STREQUAL "${gd_target}:${eol_char}") - endif("${candidate}" MATCHES "${dep_regex}") - endforeach(candidate) -endmacro(gather_dependents) - - -message("Gathering dependent libraries for '${input_file_full}'...") -gather_dependents("${input_file_full}" deps) -message("") - - -# Order lexicographically: -# -list(SORT deps) - - -# Split into separate lists, "system" "embedded" and "nonsystem" libraries. -# System libs are assumed to be available on all target runtime Macs and do not -# need to be copied/fixed-up by this script. Embedded libraries are assumed to -# be in the bundle and fixed-up already. Only non-system, non-embedded libs -# need copying and fixing up... -# -set(system_deps "") -set(embedded_deps "") -set(nonsystem_deps "") - -foreach(d ${deps}) - set(d_is_embedded_lib 0) - set(d_is_system_lib 0) - - if("${d}" MATCHES "^(/System/Library|/usr/lib)") - set(d_is_system_lib 1) - else("${d}" MATCHES "^(/System/Library|/usr/lib)") - if("${d}" MATCHES "^@executable_path") - set(d_is_embedded_lib 1) - endif("${d}" MATCHES "^@executable_path") - endif("${d}" MATCHES "^(/System/Library|/usr/lib)") - - if(d_is_system_lib) - set(system_deps ${system_deps} "${d}") - else(d_is_system_lib) - if(d_is_embedded_lib) - set(embedded_deps ${embedded_deps} "${d}") - else(d_is_embedded_lib) - set(nonsystem_deps ${nonsystem_deps} "${d}") - endif(d_is_embedded_lib) - endif(d_is_system_lib) -endforeach(d) - -message("") -message("system_deps:") -foreach(d ${system_deps}) - message("${d}") -endforeach(d ${system_deps}) - -message("") -message("embedded_deps:") -foreach(d ${embedded_deps}) - message("${d}") -endforeach(d ${embedded_deps}) - -message("") -message("nonsystem_deps:") -foreach(d ${nonsystem_deps}) - message("${d}") -endforeach(d ${nonsystem_deps}) - -message("") - - -macro(copy_library_into_bundle clib_bundle clib_libsrc clib_dstlibs clib_fixups) - # - # If the source library is a framework, copy just the shared lib bit of the framework - # into the bundle under "${clib_bundle}/Contents/Frameworks" - if it is just a dylib - # copy it into the same directory with the main bundle executable under - # "${clib_bundle}/Contents/MacOS" - # - if("${clib_libsrc}" MATCHES ".framework/.*/.*/.*") - # make sure clib_libsrc is a full path to the framework as a framework - # maybe linked in with relative paths in some cases - find_framework_full_path("${clib_libsrc}" fw_full_src) - get_filename_component(fw_src "${fw_full_src}" ABSOLUTE) - get_filename_component(fw_srcdir "${clib_libsrc}/../../.." ABSOLUTE) - get_filename_component(fwdirname "${fw_srcdir}" NAME) - string(REGEX REPLACE "^(.*)\\.framework$" "\\1" fwname "${fwdirname}") - string(REGEX REPLACE "^.*/${fwname}\\.framework/(.*)$" "\\1" fwlibname "${clib_libsrc}") - set(fw_dstdir "${clib_bundle}/Contents/Frameworks") - -# message("") -# message("fwdirname: '${fwdirname}'") -# message("fwname: '${fwname}'") -# message("fwlibname: '${fwlibname}'") -# message("fw_src: '${fw_src}'") -# message("fw_srcdir: '${fw_srcdir}'") -# message("fw_dstdir: '${fw_dstdir}'") -# message("new_name: '@executable_path/../Frameworks/${fwdirname}/${fwlibname}'") -# message("") - - message("Copying ${fw_srcdir} into bundle...") - - # This command copies the *entire* framework recursively: - # -# execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory -# "${fw_srcdir}" "${fw_dstdir}" -# ) - - # This command copies just the main shared lib of the framework: - # (This technique will not work for frameworks that have necessary - # resource or auxiliary files...) - # - message("fw_src = [${fw_src}] fw_full_src = [${fw_full_src}]") - message("Copy: ${CMAKE_COMMAND} -E copy \"${fw_src}\" \"${fw_dstdir}/${fwlibname}\"") - execute_process(COMMAND ${CMAKE_COMMAND} -E copy - "${fw_src}" "${fw_dstdir}/${fwlibname}" - ) - - get_filename_component(fw_src_path "${fw_src}" PATH) - message("Checking ${fw_src_path}/Resources") - if(EXISTS "${fw_src_path}/Resources") - message("Copy: ${CMAKE_COMMAND} -E copy_directory \"${fw_src_path}/Resources/\" \"${fw_dstdir}/Resources/\"") - execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory - "${fw_src_path}/Resources/" "${fw_dstdir}/${fwdirname}/Resources/") - endif(EXISTS "${fw_src_path}/Resources") - - execute_process(COMMAND install_name_tool - -id "@executable_path/../Frameworks/${fwlibname}" - "${clib_bundle}/Contents/Frameworks/${fwlibname}" - ) - set(${clib_dstlibs} ${${clib_dstlibs}} - "${clib_bundle}/Contents/Frameworks/${fwlibname}" - ) - set(${clib_fixups} ${${clib_fixups}} - "-change" - "${clib_libsrc}" - "@executable_path/../Frameworks/${fwlibname}" - ) - else("${clib_libsrc}" MATCHES ".framework/.*/.*/.*") - if("${clib_libsrc}" MATCHES "/") - set(clib_libsrcfull "${clib_libsrc}") - else("${clib_libsrc}" MATCHES "/") - set(clib_libsrcfull "${lib_path}/${clib_libsrc}") - if(NOT EXISTS "${clib_libsrcfull}") - message(FATAL_ERROR "error: '${clib_libsrcfull}' does not exist...") - endif(NOT EXISTS "${clib_libsrcfull}") - endif("${clib_libsrc}" MATCHES "/") - - get_filename_component(dylib_src "${clib_libsrcfull}" ABSOLUTE) - get_filename_component(dylib_name "${dylib_src}" NAME) - set(dylib_dst "${clib_bundle}/Contents/MacOS/${dylib_name}") - -# message("dylib_src: ${dylib_src}") -# message("dylib_dst: ${dylib_dst}") -# message("new_name: '@executable_path/${dylib_name}'") - - message("Copying ${dylib_src} into bundle...") - execute_process(COMMAND ${CMAKE_COMMAND} -E copy - "${dylib_src}" "${dylib_dst}") - execute_process(COMMAND install_name_tool - -id "@executable_path/${dylib_name}" - "${dylib_dst}" - ) - set(${clib_dstlibs} ${${clib_dstlibs}} - "${dylib_dst}" - ) - set(${clib_fixups} ${${clib_fixups}} - "-change" - "${clib_libsrc}" - "@executable_path/${dylib_name}" - ) - endif("${clib_libsrc}" MATCHES ".framework/.*/.*/.*") -endmacro(copy_library_into_bundle) - - -# Copy dependent "nonsystem" libraries into the bundle: -# -message("Copying dependent libraries into bundle...") -set(srclibs ${nonsystem_deps} ${extra_libs}) -set(dstlibs "") -set(fixups "") -foreach(d ${srclibs}) - message("copy it --- ${d}") - copy_library_into_bundle("${bundle}" "${d}" dstlibs fixups) -endforeach(d) - -message("") -message("dstlibs='${dstlibs}'") -message("") -message("fixups='${fixups}'") -message("") - - -# Fixup references to copied libraries in the main bundle executable and in the -# copied libraries themselves: -# -if(NOT "${fixups}" STREQUAL "") - message("Fixing up references...") - foreach(d ${dstlibs} "${input_file_full}") - message("fixing up references in: '${d}'") - execute_process(COMMAND install_name_tool ${fixups} "${d}") - endforeach(d) - message("") -endif(NOT "${fixups}" STREQUAL "") - - -# List all references to eyeball them and make sure they look right: -# -message("Listing references...") -foreach(d ${dstlibs} "${input_file_full}") - execute_process(COMMAND otool -L "${d}") - message("") -endforeach(d) -message("") - - -# Output file: -# -#get_filename_component(script_name "${CMAKE_CURRENT_LIST_FILE}" NAME) -#file(WRITE "${input_file_full}_${script_name}" "# Script \"${CMAKE_CURRENT_LIST_FILE}\" completed.\n") -message("") -message("# Script \"${CMAKE_CURRENT_LIST_FILE}\" completed.") -message("") diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt index 405c9522e..4785188f0 100644 --- a/Source/QtDialog/CMakeLists.txt +++ b/Source/QtDialog/CMakeLists.txt @@ -19,13 +19,6 @@ ELSE(NOT QT4_FOUND) INCLUDE(${QT_USE_FILE}) SET(CMAKE_PACKAGE_QTGUI TRUE) - # i don't want to install or package the qt gui on windows - # unless qt is static - IF(WIN32 AND NOT QT_CONFIG MATCHES "static") - SET(CMAKE_PACKAGE_QTGUI FALSE) - MESSAGE(STATUS - "WARNING: QtDialog requires a static built qt for installation.") - ENDIF(WIN32 AND NOT QT_CONFIG MATCHES "static") SET(SRCS AddCacheEntry.cxx AddCacheEntry.h @@ -86,12 +79,8 @@ ELSE(NOT QT4_FOUND) SET(CMAKE_INSTALL_DESTINATION_ARGS BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}") ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.4) - # if qt is not static and we are on windows then skip the install - # I don't want to distribute qt dlls - IF(CMAKE_PACKAGE_QTGUI) - INSTALL(TARGETS cmake-gui RUNTIME DESTINATION bin - ${CMAKE_INSTALL_DESTINATION_ARGS}) - ENDIF(CMAKE_PACKAGE_QTGUI) + + INSTALL(TARGETS cmake-gui RUNTIME DESTINATION bin ${CMAKE_INSTALL_DESTINATION_ARGS}) IF(UNIX) # install a desktop file so CMake appears in the application start menu @@ -112,10 +101,21 @@ ELSE(NOT QT4_FOUND) "${CMake_BINARY_DIR}/Source/QtDialog/postupgrade.sh") INSTALL(CODE "execute_process(COMMAND ln -s \"../MacOS/${CMAKE_BUNDLE_NAME}\" cmake-gui WORKING_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin)") - INSTALL(CODE "set(input_file - \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/MacOS/${CMAKE_BUNDLE_NAME}\")") - INSTALL(SCRIPT "${CMake_SOURCE_DIR}/Source/QtDialog/CMakeIngestOSXBundleLibraries.cmake") ENDIF(APPLE) + + if(APPLE OR WIN32) + # install rules for including 3rd party libs such as Qt + # if a system Qt is used (e.g. installed in /usr/lib/), it will not be included in the installation + set(fixup_exe "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin/cmake-gui${CMAKE_EXECUTABLE_SUFFIX}") + if(APPLE) + set(fixup_exe "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/MacOS/${CMAKE_BUNDLE_NAME}") + endif(APPLE) + install(CODE " + include(\"${CMake_SOURCE_DIR}/Modules/BundleUtilities.cmake\") + fixup_bundle(\"${fixup_exe}\" \"\" \"${QT_LIBRARY_DIR};${QT_BINARY_DIR}\") + ") + endif(APPLE OR WIN32) + CONFIGURE_FILE("${QtDialog_SOURCE_DIR}/QtDialogCPack.cmake.in" "${QtDialog_BINARY_DIR}/QtDialogCPack.cmake" @ONLY) ENDIF(NOT QT4_FOUND) From cfba5ef111bf86e8820a4dff556b3a9edc1484cd Mon Sep 17 00:00:00 2001 From: Clinton Stimpson Date: Fri, 15 Oct 2010 16:36:14 -0600 Subject: [PATCH 015/170] Fix regression in 2dae2f1 which added find of Qt imports dir. --- Modules/FindQt4.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake index 45bbd2e58..6129329ee 100644 --- a/Modules/FindQt4.cmake +++ b/Modules/FindQt4.cmake @@ -482,7 +482,7 @@ IF (QT_QMAKE_EXECUTABLE) _qt4_query_qmake(QT_VERSION QTVERSION) # check for qt3 qmake and then try and find qmake4 or qmake-qt4 in the path - IF("${QTVERSION}" MATCHES "Unknown") + IF(NOT QTVERSION) SET(QT_QMAKE_EXECUTABLE NOTFOUND CACHE FILEPATH "" FORCE) FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake4 qmake-qt4 PATHS "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\4.0.0;InstallDir]/bin" @@ -493,7 +493,7 @@ IF (QT_QMAKE_EXECUTABLE) IF(QT_QMAKE_EXECUTABLE) _qt4_query_qmake(QT_VERSION QTVERSION) ENDIF(QT_QMAKE_EXECUTABLE) - ENDIF("${QTVERSION}" MATCHES "Unknown") + ENDIF(NOT QTVERSION) # check that we found the Qt4 qmake, Qt3 qmake output won't match here STRING(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+" qt_version_tmp "${QTVERSION}") From de0485459c448fe7ef4b8955d34d8313449f9337 Mon Sep 17 00:00:00 2001 From: Clinton Stimpson Date: Fri, 15 Oct 2010 16:46:39 -0600 Subject: [PATCH 016/170] Force cmake to run again when qrc dependency scanning needs to happen. --- Modules/Qt4Macros.cmake | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Modules/Qt4Macros.cmake b/Modules/Qt4Macros.cmake index 700d3a246..df07d254e 100644 --- a/Modules/Qt4Macros.cmake +++ b/Modules/Qt4Macros.cmake @@ -196,11 +196,16 @@ MACRO (QT4_ADD_RESOURCES outfiles ) ENDIF(NOT IS_ABSOLUTE "${_RC_FILE}") SET(_RC_DEPENDS ${_RC_DEPENDS} "${_RC_FILE}") ENDFOREACH(_RC_FILE) + # Since this cmake macro is doing the dependency scanning for these files, + # let's make a configured file and add it as a dependency so cmake is run + # again when dependencies need to be recomputed. + QT4_MAKE_OUTPUT_FILE("${infile}" "" "qrc.depends" out_depends) + CONFIGURE_FILE("${infile}" "${out_depends}" COPY_ONLY) ADD_CUSTOM_COMMAND(OUTPUT ${outfile} COMMAND ${QT_RCC_EXECUTABLE} ARGS ${rcc_options} -name ${outfilename} -o ${outfile} ${infile} MAIN_DEPENDENCY ${infile} - DEPENDS ${_RC_DEPENDS}) + DEPENDS ${_RC_DEPENDS} "${out_depends}") SET(${outfiles} ${${outfiles}} ${outfile}) ENDFOREACH (it) From 506805c999a5b91130e4811607a261117354d40a Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Mon, 18 Oct 2010 21:44:42 +0200 Subject: [PATCH 017/170] Make FindBISON work properly with non-C locales (#11326) Applying the patch attached to http://public.kitware.com/Bug/view.php?id=11326 It sets LC_ALL to C before calling execute_process(), so the output is in english. Alex --- Modules/FindBISON.cmake | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Modules/FindBISON.cmake b/Modules/FindBISON.cmake index 6021b1202..fc5daa646 100644 --- a/Modules/FindBISON.cmake +++ b/Modules/FindBISON.cmake @@ -51,12 +51,19 @@ FIND_PROGRAM(BISON_EXECUTABLE bison DOC "path to the bison executable") MARK_AS_ADVANCED(BISON_EXECUTABLE) IF(BISON_EXECUTABLE) + # the bison commands should be executed with the C locale, otherwise + # the message (which are parsed) may be translated + SET(_Bison_SAVED_LC_ALL "$ENV{LC_ALL}") + SET(ENV{LC_ALL} C) EXECUTE_PROCESS(COMMAND ${BISON_EXECUTABLE} --version OUTPUT_VARIABLE BISON_version_output ERROR_VARIABLE BISON_version_error RESULT_VARIABLE BISON_version_result OUTPUT_STRIP_TRAILING_WHITESPACE) + + SET(ENV{LC_ALL} ${_Bison_SAVED_LC_ALL}) + IF(NOT ${BISON_version_result} EQUAL 0) MESSAGE(SEND_ERROR "Command \"${BISON_EXECUTABLE} --version\" failed with output:\n${BISON_version_error}") ELSE() @@ -115,7 +122,7 @@ IF(BISON_EXECUTABLE) IF("${ARGV5}" STREQUAL "VERBOSE") BISON_TARGET_option_verbose(${Name} ${BisonOutput} "${ARGV6}") ENDIF() - + IF("${ARGV5}" STREQUAL "COMPILE_FLAGS") BISON_TARGET_option_extraopts("${ARGV6}") ENDIF() @@ -125,10 +132,10 @@ IF(BISON_EXECUTABLE) LIST(APPEND BISON_TARGET_cmdopt "-d") STRING(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\2" _fileext "${ARGV2}") STRING(REPLACE "c" "h" _fileext ${_fileext}) - STRING(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\1${_fileext}" + STRING(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\1${_fileext}" BISON_${Name}_OUTPUT_HEADER "${ARGV2}") LIST(APPEND BISON_TARGET_outputs "${BISON_${Name}_OUTPUT_HEADER}") - + ADD_CUSTOM_COMMAND(OUTPUT ${BISON_TARGET_outputs} ${BISON_TARGET_extraoutputs} COMMAND ${BISON_EXECUTABLE} @@ -136,7 +143,7 @@ IF(BISON_EXECUTABLE) DEPENDS ${ARGV1} COMMENT "[BISON][${Name}] Building parser with bison ${BISON_VERSION}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - + # define target variables SET(BISON_${Name}_DEFINED TRUE) SET(BISON_${Name}_INPUT ${ARGV1}) From 144ee51760c33c0486ee907a83cb42dde9c05432 Mon Sep 17 00:00:00 2001 From: David Cole Date: Wed, 20 Oct 2010 13:47:59 -0400 Subject: [PATCH 018/170] CMake 2.8.3-rc3 --- CMakeLists.txt | 2 +- ChangeLog.manual | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c18c8d653..0e46a6247 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -420,7 +420,7 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 3) SET(CMake_VERSION_TWEAK 0) -SET(CMake_VERSION_RC 2) +SET(CMake_VERSION_RC 3) # Releases define a tweak level. IF(DEFINED CMake_VERSION_TWEAK) diff --git a/ChangeLog.manual b/ChangeLog.manual index c283685be..cff9d0629 100644 --- a/ChangeLog.manual +++ b/ChangeLog.manual @@ -1,3 +1,30 @@ +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): From e614e9b3d7387b5aa1611f5547744e84b3a0645f Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Thu, 21 Oct 2010 20:51:46 +0200 Subject: [PATCH 019/170] Add support for yasm, a nasm compatible assembler Alex --- Modules/CMakeASM_NASMInformation.cmake | 2 +- Modules/CMakeDetermineASM_NASMCompiler.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/CMakeASM_NASMInformation.cmake b/Modules/CMakeASM_NASMInformation.cmake index 4b533a7f8..afe53b32b 100644 --- a/Modules/CMakeASM_NASMInformation.cmake +++ b/Modules/CMakeASM_NASMInformation.cmake @@ -14,7 +14,7 @@ # support for the nasm assembler -set(CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS nasm) +set(CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS nasm asm) if(WIN32) if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8) diff --git a/Modules/CMakeDetermineASM_NASMCompiler.cmake b/Modules/CMakeDetermineASM_NASMCompiler.cmake index 18aa8138f..d184c0a81 100644 --- a/Modules/CMakeDetermineASM_NASMCompiler.cmake +++ b/Modules/CMakeDetermineASM_NASMCompiler.cmake @@ -12,9 +12,9 @@ # (To distribute this file outside of CMake, substitute the full # License text for the above reference.) -# Find the nasm assembler +# Find the nasm assembler. yasm (http://www.tortall.net/projects/yasm/) is nasm compatible -SET(CMAKE_ASM_NASM_COMPILER_INIT nasm) +SET(CMAKE_ASM_NASM_COMPILER_INIT nasm yasm) IF(NOT CMAKE_ASM_NASM_COMPILER) FIND_PROGRAM(CMAKE_ASM_NASM_COMPILER nasm From d25c2eb0c0a942d60826e6263d96a2ba59b97b92 Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Thu, 21 Oct 2010 20:57:14 +0200 Subject: [PATCH 020/170] Use CMAKE_ASM_NASM_FLAGS for nasm instead of FLAGS Alex --- Modules/CMakeASM_NASMInformation.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/CMakeASM_NASMInformation.cmake b/Modules/CMakeASM_NASMInformation.cmake index afe53b32b..449d1d6a6 100644 --- a/Modules/CMakeASM_NASMInformation.cmake +++ b/Modules/CMakeASM_NASMInformation.cmake @@ -36,7 +36,7 @@ else() endif() endif() -set(CMAKE_ASM_NASM_COMPILE_OBJECT " -f ${CMAKE_ASM_NASM_OBJECT_FORMAT} -o ") +set(CMAKE_ASM_NASM_COMPILE_OBJECT " -f ${CMAKE_ASM_NASM_OBJECT_FORMAT} -o ") # Load the generic ASMInformation file: set(ASM_DIALECT "_NASM") From 1e4fd5fc9cf294400a2d6b07a02368da942187bc Mon Sep 17 00:00:00 2001 From: David Cole Date: Fri, 22 Oct 2010 14:31:36 -0400 Subject: [PATCH 021/170] Enable overriding contract test timeout values. Use a longer value as the default timeout (6 hours). For a per-contract-test timeout value, set ${project}_TEST_TIMEOUT in the project's RunTest.cmake file. To use a longer value for all non-specific contract tests, set a CMake cache variable named CMAKE_CONTRACT_TEST_TIMEOUT_DEFAULT. All timeout values are in seconds. Also, patch up last commit to defer evaluation of ENV{HOME} until EnforceConfig.cmake is included at ctest time. This allows Windows machines to have "\\" characters in the HOME environment variable if they want to. --- Tests/CMakeLists.txt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index ed12c650c..515585873 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -23,7 +23,7 @@ IF(DEFINED ENV{HOME} AND NOT CTEST_NO_TEST_HOME) SET(TEST_HOME_ENV_CODE "# Fake a user home directory to avoid polluting the real one. # But provide original ENV{HOME} value in ENV{CTEST_REAL_HOME} for tests that # need access to the real HOME directory. -SET(ENV{CTEST_REAL_HOME} \"$ENV{HOME}\") +SET(ENV{CTEST_REAL_HOME} \"\$ENV{HOME}\") SET(ENV{HOME} \"${TEST_HOME}\") ") ENDIF() @@ -1776,7 +1776,16 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ INCLUDE(Contracts/${project}/RunTest.cmake) ADD_TEST_MACRO(Contracts.${project} ${${project}_RUN_TEST}) - SET_TESTS_PROPERTIES(Contracts.${project} PROPERTIES TIMEOUT 5400) + # Contract test timeout in seconds. + # Default to 6 hours. + IF(DEFINED ${project}_TEST_TIMEOUT) + SET(timeout ${${project}_TEST_TIMEOUT}) + ELSEIF(CMAKE_CONTRACT_TEST_TIMEOUT_DEFAULT) + SET(timeout ${CMAKE_CONTRACT_TEST_TIMEOUT_DEFAULT}) + ELSE() + SET(timeout 21600) + ENDIF() + SET_TESTS_PROPERTIES(Contracts.${project} PROPERTIES TIMEOUT ${timeout}) ENDFOREACH() ENDIF(BUILD_TESTING) From f6f3ae5bcd3d560947cfde1c578c42dd979d0c47 Mon Sep 17 00:00:00 2001 From: David Cole Date: Thu, 28 Oct 2010 14:41:30 -0400 Subject: [PATCH 022/170] Update tag in the Contracts/cse-snapshot test. Also: - allow local variables 'repo' and 'tag' to be overridden by the optional LocalOverrides.cmake - print out STATUS messages to see the variable values in CMake configure output --- Tests/Contracts/cse-snapshot/CMakeLists.txt | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Tests/Contracts/cse-snapshot/CMakeLists.txt b/Tests/Contracts/cse-snapshot/CMakeLists.txt index a2f5e9c5c..913421010 100644 --- a/Tests/Contracts/cse-snapshot/CMakeLists.txt +++ b/Tests/Contracts/cse-snapshot/CMakeLists.txt @@ -13,8 +13,18 @@ if(NOT DEFINED HOME) set(HOME "$ENV{HOME}") endif() endif() +message(STATUS "HOME='${HOME}'") + +if(NOT DEFINED repo) + set(repo "git://public.kitware.com/cse.git") +endif() +message(STATUS "repo='${repo}'") + +if(NOT DEFINED tag) + set(tag "cc1dcb95439a21ab1d58f444d93481598414196e") +endif() +message(STATUS "tag='${tag}'") -set(tag "510345e4360ac3b07ddb29e527207297f7cc6d89") string(SUBSTRING "${tag}" 0 8 shorttag) set(base_dir "${HOME}/.cmake/Contracts/${PROJECT_NAME}/${shorttag}") @@ -25,10 +35,12 @@ set(source_dir "${base_dir}/src") if(NOT DEFINED BUILDNAME) set(BUILDNAME "CMakeContract-${shorttag}") endif() +message(STATUS "BUILDNAME='${BUILDNAME}'") if(NOT DEFINED SITE) site_name(SITE) endif() +message(STATUS "SITE='${SITE}'") if(NOT DEFINED PROCESSOR_COUNT) # Unknown: @@ -56,12 +68,14 @@ if(NOT DEFINED PROCESSOR_COUNT) set(PROCESSOR_COUNT "$ENV{NUMBER_OF_PROCESSORS}") endif() endif() +message(STATUS "PROCESSOR_COUNT='${PROCESSOR_COUNT}'") find_package(Git) if(NOT GIT_EXECUTABLE) message(FATAL_ERROR "error: could not find git") # adjust PATH to find git, or set GIT_EXECUTABLE in LocalOverrides.cmake endif() +message(STATUS "GIT_EXECUTABLE='${GIT_EXECUTABLE}'") configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/Dashboard.cmake.in" @@ -83,7 +97,7 @@ else() # If it does not yet exist, download clones the git repository: ExternalProject_Add(download-${PROJECT_NAME} SOURCE_DIR "${source_dir}" - GIT_REPOSITORY "git://public.kitware.com/cse.git" + GIT_REPOSITORY "${repo}" GIT_TAG "${tag}" CONFIGURE_COMMAND "" BUILD_COMMAND "" From fffe1c07d9029293ef58512890ceb62d8de1df2b Mon Sep 17 00:00:00 2001 From: Philip Lowman Date: Thu, 28 Oct 2010 22:51:18 -0400 Subject: [PATCH 023/170] 11363: FindBoost.cmake fails to find debug libraries in tagged layout install --- Modules/FindBoost.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake index 3ae4e1410..28296f1cc 100644 --- a/Modules/FindBoost.cmake +++ b/Modules/FindBoost.cmake @@ -916,6 +916,7 @@ ELSE (_boost_IN_CACHE) ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}-${Boost_LIB_VERSION} ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG} ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG} ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED} ${Boost_LIB_PREFIX}boost_${COMPONENT} ) if(_boost_STATIC_RUNTIME_WORKAROUND) From e5b50a9ada44f83978cd7c153fdc0c48cf6a6057 Mon Sep 17 00:00:00 2001 From: David Cole Date: Fri, 29 Oct 2010 15:21:36 -0400 Subject: [PATCH 024/170] CMake 2.8.3-rc4 --- CMakeLists.txt | 2 +- ChangeLog.manual | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e46a6247..f023b15a8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -420,7 +420,7 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 3) SET(CMake_VERSION_TWEAK 0) -SET(CMake_VERSION_RC 3) +SET(CMake_VERSION_RC 4) # Releases define a tweak level. IF(DEFINED CMake_VERSION_TWEAK) diff --git a/ChangeLog.manual b/ChangeLog.manual index cff9d0629..7edab54d1 100644 --- a/ChangeLog.manual +++ b/ChangeLog.manual @@ -1,3 +1,26 @@ +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): From c1a064ba79412d803830350b84fa25ebbf7130a7 Mon Sep 17 00:00:00 2001 From: KWSys Robot Date: Mon, 1 Nov 2010 00:01:05 -0400 Subject: [PATCH 025/170] KWSys Nightly Date Stamp --- Source/kwsys/kwsysDateStamp.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/kwsys/kwsysDateStamp.cmake b/Source/kwsys/kwsysDateStamp.cmake index a4306a5ae..9bfe76903 100644 --- a/Source/kwsys/kwsysDateStamp.cmake +++ b/Source/kwsys/kwsysDateStamp.cmake @@ -15,7 +15,7 @@ SET(KWSYS_DATE_STAMP_YEAR 2010) # KWSys version date month component. Format is MM. -SET(KWSYS_DATE_STAMP_MONTH 10) +SET(KWSYS_DATE_STAMP_MONTH 11) # KWSys version date day component. Format is DD. -SET(KWSYS_DATE_STAMP_DAY 31) +SET(KWSYS_DATE_STAMP_DAY 01) From 0476715b87e27c8234bc6c3ac9020cb09ac8be1b Mon Sep 17 00:00:00 2001 From: Clinton Stimpson Date: Mon, 1 Nov 2010 09:40:25 -0600 Subject: [PATCH 026/170] Fix regression to allow specifying a CMakeCache.txt file on the command line. --- Source/QtDialog/CMakeSetup.cxx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Source/QtDialog/CMakeSetup.cxx b/Source/QtDialog/CMakeSetup.cxx index 28f4697d0..7ba7f51ec 100644 --- a/Source/QtDialog/CMakeSetup.cxx +++ b/Source/QtDialog/CMakeSetup.cxx @@ -165,13 +165,25 @@ int main(int argc, char** argv) if(args.count() == 2) { cmsys_stl::string filePath = cmSystemTools::CollapseFullPath(args[1].toAscii().data()); + + // check if argument is a directory containing CMakeCache.txt cmsys_stl::string buildFilePath = cmSystemTools::CollapseFullPath("CMakeCache.txt", filePath.c_str()); + + // check if argument is a CMakeCache.txt file + if(cmSystemTools::GetFilenameName(filePath) == "CMakeCache.txt" && + cmSystemTools::FileExists(filePath.c_str())) + { + buildFilePath = filePath; + } + + // check if argument is a directory containing CMakeLists.txt cmsys_stl::string srcFilePath = cmSystemTools::CollapseFullPath("CMakeLists.txt", filePath.c_str()); + if(cmSystemTools::FileExists(buildFilePath.c_str())) { - dialog.setBinaryDirectory(filePath.c_str()); + dialog.setBinaryDirectory(cmSystemTools::GetFilenamePath(buildFilePath).c_str()); } else if(cmSystemTools::FileExists(srcFilePath.c_str())) { From aa350314db06da703b40c0c095a6212d3bab2e68 Mon Sep 17 00:00:00 2001 From: KWSys Robot Date: Tue, 2 Nov 2010 00:01:04 -0400 Subject: [PATCH 027/170] KWSys Nightly Date Stamp --- Source/kwsys/kwsysDateStamp.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/kwsys/kwsysDateStamp.cmake b/Source/kwsys/kwsysDateStamp.cmake index 9bfe76903..de8044fad 100644 --- a/Source/kwsys/kwsysDateStamp.cmake +++ b/Source/kwsys/kwsysDateStamp.cmake @@ -18,4 +18,4 @@ SET(KWSYS_DATE_STAMP_YEAR 2010) SET(KWSYS_DATE_STAMP_MONTH 11) # KWSys version date day component. Format is DD. -SET(KWSYS_DATE_STAMP_DAY 01) +SET(KWSYS_DATE_STAMP_DAY 02) From bb1df1ec8ea880c9859845b85828b8b724abb1ba Mon Sep 17 00:00:00 2001 From: David Cole Date: Tue, 2 Nov 2010 10:41:11 -0400 Subject: [PATCH 028/170] Make HTML test fail when --nonet arg is not available. Also, emit "xmllint" and "xmllint --version" output before failing so that we can inspect the output from all the dashboard machines in CDash test results. --- Utilities/CMakeLists.txt | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt index 4c9202c47..e1c882776 100644 --- a/Utilities/CMakeLists.txt +++ b/Utilities/CMakeLists.txt @@ -153,9 +153,33 @@ if(BUILD_TESTING) ${HTML_FILES} ) else() - add_test(CMake.HTML - ${LIBXML2_XMLLINT_EXECUTABLE} --valid --noout ${HTML_FILES} - ) + # Intentionally committing this chunk of code for one night's run on the + # Nightly dashboard suite. This will help us identify all machines with + # older versions of xmllint installed. (This should match the set of + # machines where this test is failing at the moment anyhow...) + # + # After we identify all of them, we can decide whether to simply make + # this else block empty, skipping the test, or whether there should be + # some alternative equivalent test on such machines... + # + set(script "${CMAKE_CURRENT_BINARY_DIR}/CMake.HTML.cmake") + + set(text "Intentionally fail when xmllint has no --nonet arg.") + set(text "${text} The CMake test suite should avoid network activity") + set(text "${text} when possible.") + + if(NOT EXISTS "${script}.in") + file(WRITE "${script}.in" "execute_process(COMMAND + \"${LIBXML2_XMLLINT_EXECUTABLE}\" OUTPUT_VARIABLE noargs) +message(\"\${noargs}\") +execute_process(COMMAND + \"${LIBXML2_XMLLINT_EXECUTABLE}\" --version OUTPUT_VARIABLE version) +message(\"\${version}\") +message(FATAL_ERROR \"${text}\") +") + endif() + configure_file("${script}.in" "${script}" @ONLY) + add_test(CMake.HTML ${CMAKE_CMAKE_COMMAND} -P ${script}) endif() endif() endif() From 5cf99388c3cf48e89c576b6f93af96fb4111be03 Mon Sep 17 00:00:00 2001 From: KWSys Robot Date: Wed, 3 Nov 2010 00:01:04 -0400 Subject: [PATCH 029/170] KWSys Nightly Date Stamp --- Source/kwsys/kwsysDateStamp.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/kwsys/kwsysDateStamp.cmake b/Source/kwsys/kwsysDateStamp.cmake index de8044fad..a20a71a84 100644 --- a/Source/kwsys/kwsysDateStamp.cmake +++ b/Source/kwsys/kwsysDateStamp.cmake @@ -18,4 +18,4 @@ SET(KWSYS_DATE_STAMP_YEAR 2010) SET(KWSYS_DATE_STAMP_MONTH 11) # KWSys version date day component. Format is DD. -SET(KWSYS_DATE_STAMP_DAY 02) +SET(KWSYS_DATE_STAMP_DAY 03) From dc36b3499403bad323d7300139fbf459c31f7a2c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 28 Oct 2010 11:13:00 -0400 Subject: [PATCH 030/170] Honor RULE_MESSAGES property for build target messages --- Source/cmGlobalUnixMakefileGenerator3.cxx | 172 ++++++++++++---------- Source/cmGlobalUnixMakefileGenerator3.h | 1 + 2 files changed, 96 insertions(+), 77 deletions(-) diff --git a/Source/cmGlobalUnixMakefileGenerator3.cxx b/Source/cmGlobalUnixMakefileGenerator3.cxx index 4e8e7e6d9..08eb3911f 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.cxx +++ b/Source/cmGlobalUnixMakefileGenerator3.cxx @@ -25,6 +25,7 @@ cmGlobalUnixMakefileGenerator3::cmGlobalUnixMakefileGenerator3() this->FindMakeProgramFile = "CMakeUnixFindMake.cmake"; this->ToolSupportsColor = true; this->ForceVerboseMakefiles = false; + this->NoRuleMessages = false; #if defined(_WIN32) || defined(__VMS) this->UseLinkScript = false; @@ -144,39 +145,48 @@ void cmGlobalUnixMakefileGenerator3::Generate() // first do superclass method this->cmGlobalGenerator::Generate(); - // initialize progress - unsigned long total = 0; - for(ProgressMapType::const_iterator pmi = this->ProgressMap.begin(); - pmi != this->ProgressMap.end(); ++pmi) + cmake* cm = this->GetCMakeInstance(); + if(const char* ruleStatus = cm->GetProperty("RULE_MESSAGES")) { - total += pmi->second.NumberOfActions; + this->NoRuleMessages = cmSystemTools::IsOff(ruleStatus); } - // write each target's progress.make this loop is done twice. Bascially the - // Generate pass counts all the actions, the first loop below determines - // how many actions have progress updates for each target and writes to - // corrrect variable values for everything except the all targets. The - // second loop actually writes out correct values for the all targets as - // well. This is because the all targets require more information that is - // computed in the first loop. - unsigned long current = 0; - for(ProgressMapType::iterator pmi = this->ProgressMap.begin(); - pmi != this->ProgressMap.end(); ++pmi) + if(!this->NoRuleMessages) { - pmi->second.WriteProgressVariables(total, current); + // initialize progress + unsigned long total = 0; + for(ProgressMapType::const_iterator pmi = this->ProgressMap.begin(); + pmi != this->ProgressMap.end(); ++pmi) + { + total += pmi->second.NumberOfActions; + } + + // write each target's progress.make this loop is done twice. Bascially the + // Generate pass counts all the actions, the first loop below determines + // how many actions have progress updates for each target and writes to + // corrrect variable values for everything except the all targets. The + // second loop actually writes out correct values for the all targets as + // well. This is because the all targets require more information that is + // computed in the first loop. + unsigned long current = 0; + for(ProgressMapType::iterator pmi = this->ProgressMap.begin(); + pmi != this->ProgressMap.end(); ++pmi) + { + pmi->second.WriteProgressVariables(total, current); + } + for(unsigned int i = 0; i < this->LocalGenerators.size(); ++i) + { + cmLocalUnixMakefileGenerator3 *lg = + static_cast(this->LocalGenerators[i]); + std::string markFileName = lg->GetMakefile()->GetStartOutputDirectory(); + markFileName += "/"; + markFileName += cmake::GetCMakeFilesDirectory(); + markFileName += "/progress.marks"; + cmGeneratedFileStream markFile(markFileName.c_str()); + markFile << this->CountProgressMarksInAll(lg) << "\n"; + } } - for(unsigned int i = 0; i < this->LocalGenerators.size(); ++i) - { - cmLocalUnixMakefileGenerator3 *lg = - static_cast(this->LocalGenerators[i]); - std::string markFileName = lg->GetMakefile()->GetStartOutputDirectory(); - markFileName += "/"; - markFileName += cmake::GetCMakeFilesDirectory(); - markFileName += "/progress.marks"; - cmGeneratedFileStream markFile(markFileName.c_str()); - markFile << this->CountProgressMarksInAll(lg) << "\n"; - } - + // write the main makefile this->WriteMainMakefile2(); this->WriteMainCMakefile(); @@ -738,31 +748,35 @@ cmGlobalUnixMakefileGenerator3 // Write the rule. localName += "/all"; depends.clear(); + std::string progressDir; - std::string progressDir = - lg->GetMakefile()->GetHomeOutputDirectory(); - progressDir += cmake::GetCMakeFilesDirectory(); + if(!this->NoRuleMessages) { - cmOStringStream progCmd; - progCmd << "$(CMAKE_COMMAND) -E cmake_progress_report "; - // all target counts - progCmd << lg->Convert(progressDir.c_str(), - cmLocalGenerator::FULL, - cmLocalGenerator::SHELL); - progCmd << " "; - std::vector& progFiles = - this->ProgressMap[&t->second].Marks; - for (std::vector::iterator i = progFiles.begin(); - i != progFiles.end(); ++i) + progressDir = + lg->GetMakefile()->GetHomeOutputDirectory(); + progressDir += cmake::GetCMakeFilesDirectory(); { - progCmd << " " << *i; + cmOStringStream progCmd; + progCmd << "$(CMAKE_COMMAND) -E cmake_progress_report "; + // all target counts + progCmd << lg->Convert(progressDir.c_str(), + cmLocalGenerator::FULL, + cmLocalGenerator::SHELL); + progCmd << " "; + std::vector& progFiles = + this->ProgressMap[&t->second].Marks; + for (std::vector::iterator i = progFiles.begin(); + i != progFiles.end(); ++i) + { + progCmd << " " << *i; + } + commands.push_back(progCmd.str()); } - commands.push_back(progCmd.str()); + progressDir = "Built target "; + progressDir += t->first; + lg->AppendEcho(commands,progressDir.c_str()); } - progressDir = "Built target "; - progressDir += t->first; - lg->AppendEcho(commands,progressDir.c_str()); - + this->AppendGlobalTargetDepends(depends,t->second); lg->WriteMakeRule(ruleFileStream, "All Build rule for target.", localName.c_str(), depends, commands, true); @@ -776,39 +790,43 @@ cmGlobalUnixMakefileGenerator3 lg->WriteMakeRule(ruleFileStream, "Include target in all.", "all", depends, commands, true); } - - // Write the rule. - commands.clear(); - progressDir = lg->GetMakefile()->GetHomeOutputDirectory(); - progressDir += cmake::GetCMakeFilesDirectory(); - - { - // TODO: Convert the total progress count to a make variable. - cmOStringStream progCmd; - progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start "; - // # in target - progCmd << lg->Convert(progressDir.c_str(), - cmLocalGenerator::FULL, - cmLocalGenerator::SHELL); - // - std::set emitted; - progCmd << " " - << this->CountProgressMarksInTarget(&t->second, emitted); - commands.push_back(progCmd.str()); - } + + if(!this->NoRuleMessages) + { + // Write the rule. + commands.clear(); + progressDir = lg->GetMakefile()->GetHomeOutputDirectory(); + progressDir += cmake::GetCMakeFilesDirectory(); + + { + // TODO: Convert the total progress count to a make variable. + cmOStringStream progCmd; + progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start "; + // # in target + progCmd << lg->Convert(progressDir.c_str(), + cmLocalGenerator::FULL, + cmLocalGenerator::SHELL); + // + std::set emitted; + progCmd << " " + << this->CountProgressMarksInTarget(&t->second, emitted); + commands.push_back(progCmd.str()); + } + } std::string tmp = cmake::GetCMakeFilesDirectoryPostSlash(); tmp += "Makefile2"; commands.push_back(lg->GetRecursiveMakeCall (tmp.c_str(),localName.c_str())); - { - cmOStringStream progCmd; - progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start "; // # 0 - progCmd << lg->Convert(progressDir.c_str(), - cmLocalGenerator::FULL, - cmLocalGenerator::SHELL); - progCmd << " 0"; - commands.push_back(progCmd.str()); - } + if(!this->NoRuleMessages) + { + cmOStringStream progCmd; + progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start "; // # 0 + progCmd << lg->Convert(progressDir.c_str(), + cmLocalGenerator::FULL, + cmLocalGenerator::SHELL); + progCmd << " 0"; + commands.push_back(progCmd.str()); + } depends.clear(); depends.push_back("cmake_check_build_system"); localName = lg->GetRelativeTargetDirectory(t->second); diff --git a/Source/cmGlobalUnixMakefileGenerator3.h b/Source/cmGlobalUnixMakefileGenerator3.h index f4995368a..01f5facb0 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.h +++ b/Source/cmGlobalUnixMakefileGenerator3.h @@ -170,6 +170,7 @@ protected: std::string EmptyRuleHackCommand; bool ForceVerboseMakefiles; + bool NoRuleMessages; // Store per-target progress counters. struct TargetProgress From 63d21c1f8efeb2f2337221119c479d75bbb0b7c0 Mon Sep 17 00:00:00 2001 From: David Cole Date: Wed, 3 Nov 2010 13:38:38 -0400 Subject: [PATCH 031/170] CMake 2.8.3 --- CMakeLists.txt | 2 +- ChangeLog.manual | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f023b15a8..be5a67f72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -420,7 +420,7 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 3) SET(CMake_VERSION_TWEAK 0) -SET(CMake_VERSION_RC 4) +#SET(CMake_VERSION_RC 4) # Releases define a tweak level. IF(DEFINED CMake_VERSION_TWEAK) diff --git a/ChangeLog.manual b/ChangeLog.manual index 7edab54d1..c2e2cdf29 100644 --- a/ChangeLog.manual +++ b/ChangeLog.manual @@ -1,3 +1,5 @@ +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): From 1674961a3f4186fdb6194af152f806db858fe558 Mon Sep 17 00:00:00 2001 From: David Cole Date: Wed, 3 Nov 2010 16:42:13 -0400 Subject: [PATCH 032/170] Begin post-2.8.3 development --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index be5a67f72..98bde02b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -419,8 +419,8 @@ ENDIF() SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 3) -SET(CMake_VERSION_TWEAK 0) -#SET(CMake_VERSION_RC 4) +#SET(CMake_VERSION_TWEAK 0) +#SET(CMake_VERSION_RC 1) # Releases define a tweak level. IF(DEFINED CMake_VERSION_TWEAK) From b58e44edfb8e4267028a4754a25114d3bfad0abe Mon Sep 17 00:00:00 2001 From: KWSys Robot Date: Thu, 4 Nov 2010 00:01:04 -0400 Subject: [PATCH 033/170] KWSys Nightly Date Stamp --- Source/kwsys/kwsysDateStamp.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/kwsys/kwsysDateStamp.cmake b/Source/kwsys/kwsysDateStamp.cmake index a20a71a84..83fc8b1cf 100644 --- a/Source/kwsys/kwsysDateStamp.cmake +++ b/Source/kwsys/kwsysDateStamp.cmake @@ -18,4 +18,4 @@ SET(KWSYS_DATE_STAMP_YEAR 2010) SET(KWSYS_DATE_STAMP_MONTH 11) # KWSys version date day component. Format is DD. -SET(KWSYS_DATE_STAMP_DAY 03) +SET(KWSYS_DATE_STAMP_DAY 04) From 79e02333a6753dd92a58d704c04f18a6d9189523 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 4 Nov 2010 08:49:06 -0400 Subject: [PATCH 034/170] BUG: Fix compiler flag test for non-English MSVC (#11336) Approach suggested by John Stark. --- Modules/CheckCCompilerFlag.cmake | 3 ++- Modules/CheckCXXCompilerFlag.cmake | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Modules/CheckCCompilerFlag.cmake b/Modules/CheckCCompilerFlag.cmake index 0068617bb..cf519b1c1 100644 --- a/Modules/CheckCCompilerFlag.cmake +++ b/Modules/CheckCCompilerFlag.cmake @@ -7,7 +7,7 @@ # that can modify the build. #============================================================================= -# Copyright 2006-2009 Kitware, Inc. +# Copyright 2006-2010 Kitware, Inc. # Copyright 2006 Alexander Neundorf # # Distributed under the OSI-approved BSD License (the "License"); @@ -29,6 +29,7 @@ MACRO (CHECK_C_COMPILER_FLAG _FLAG _RESULT) # Some compilers do not fail with a bad flag FAIL_REGEX "unrecognized .*option" # GNU FAIL_REGEX "ignoring unknown option" # MSVC + FAIL_REGEX "warning D9002" # MSVC, any lang FAIL_REGEX "[Uu]nknown option" # HP FAIL_REGEX "[Ww]arning: [Oo]ption" # SunPro FAIL_REGEX "command option .* is not recognized" # XL diff --git a/Modules/CheckCXXCompilerFlag.cmake b/Modules/CheckCXXCompilerFlag.cmake index d8e471548..788bf35b4 100644 --- a/Modules/CheckCXXCompilerFlag.cmake +++ b/Modules/CheckCXXCompilerFlag.cmake @@ -7,7 +7,7 @@ # modify the build. #============================================================================= -# Copyright 2006-2009 Kitware, Inc. +# Copyright 2006-2010 Kitware, Inc. # Copyright 2006 Alexander Neundorf # # Distributed under the OSI-approved BSD License (the "License"); @@ -29,6 +29,7 @@ MACRO (CHECK_CXX_COMPILER_FLAG _FLAG _RESULT) # Some compilers do not fail with a bad flag FAIL_REGEX "unrecognized .*option" # GNU FAIL_REGEX "ignoring unknown option" # MSVC + FAIL_REGEX "warning D9002" # MSVC, any lang FAIL_REGEX "[Uu]nknown option" # HP FAIL_REGEX "[Ww]arning: [Oo]ption" # SunPro FAIL_REGEX "command option .* is not recognized" # XL From 5d3cfdc1f8baf7485bfb89981c3a5eb550325bc3 Mon Sep 17 00:00:00 2001 From: David Cole Date: Thu, 4 Nov 2010 10:07:11 -0400 Subject: [PATCH 035/170] No CMake.HTML test if xmllint has no --nonet. In commit bb1df1ec, we temporarily ran an alternate test, guaranteed to fail when the --help output of xmllint did not contain --nonet and --path. This commit simply eliminates the test altogether in this condition rather than make an attempt (doomed to fail) to pull down the dtd over the internet. On date=2010-11-04, the CMake dashboard results showed that the test failed on the following CMake dashboard machines: dash8.kitware dash8.kitwarein.com dashsun1 dashsun1.kitware ferrari This is a very small subset of the dashboard machines, and we have enough proof from enough other machines that the test passes with xmllint versions new enough to have the --nonet support. Therefore, eliminate the CMake.HTML test on machines with old versions of xmllint. To run the test, make sure you run it on a machine with a new enough xmllint. --- Utilities/CMakeLists.txt | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt index e1c882776..8b3e7f658 100644 --- a/Utilities/CMakeLists.txt +++ b/Utilities/CMakeLists.txt @@ -152,34 +152,6 @@ if(BUILD_TESTING) ${LIBXML2_XMLLINT_EXECUTABLE} --valid --noout --nonet --path . ${HTML_FILES} ) - else() - # Intentionally committing this chunk of code for one night's run on the - # Nightly dashboard suite. This will help us identify all machines with - # older versions of xmllint installed. (This should match the set of - # machines where this test is failing at the moment anyhow...) - # - # After we identify all of them, we can decide whether to simply make - # this else block empty, skipping the test, or whether there should be - # some alternative equivalent test on such machines... - # - set(script "${CMAKE_CURRENT_BINARY_DIR}/CMake.HTML.cmake") - - set(text "Intentionally fail when xmllint has no --nonet arg.") - set(text "${text} The CMake test suite should avoid network activity") - set(text "${text} when possible.") - - if(NOT EXISTS "${script}.in") - file(WRITE "${script}.in" "execute_process(COMMAND - \"${LIBXML2_XMLLINT_EXECUTABLE}\" OUTPUT_VARIABLE noargs) -message(\"\${noargs}\") -execute_process(COMMAND - \"${LIBXML2_XMLLINT_EXECUTABLE}\" --version OUTPUT_VARIABLE version) -message(\"\${version}\") -message(FATAL_ERROR \"${text}\") -") - endif() - configure_file("${script}.in" "${script}" @ONLY) - add_test(CMake.HTML ${CMAKE_CMAKE_COMMAND} -P ${script}) endif() endif() endif() From 947de96030723fa231ed1ddc9d94d755f3d68d0b Mon Sep 17 00:00:00 2001 From: KWSys Robot Date: Fri, 5 Nov 2010 00:01:08 -0400 Subject: [PATCH 036/170] KWSys Nightly Date Stamp --- Source/kwsys/kwsysDateStamp.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/kwsys/kwsysDateStamp.cmake b/Source/kwsys/kwsysDateStamp.cmake index 83fc8b1cf..f94e21238 100644 --- a/Source/kwsys/kwsysDateStamp.cmake +++ b/Source/kwsys/kwsysDateStamp.cmake @@ -18,4 +18,4 @@ SET(KWSYS_DATE_STAMP_YEAR 2010) SET(KWSYS_DATE_STAMP_MONTH 11) # KWSys version date day component. Format is DD. -SET(KWSYS_DATE_STAMP_DAY 04) +SET(KWSYS_DATE_STAMP_DAY 05) From 80edcc6a86d7b5e00073c5cd2584383f971b7645 Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 5 Nov 2010 08:08:37 -0400 Subject: [PATCH 037/170] Document custom command behavior without DEPENDS (#11407) The behavior of add_custom_command when no DEPENDS option is specified matches that of standard Make behavior, but it does not hurt to describe it explicitly. --- Source/cmAddCustomCommandCommand.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/cmAddCustomCommandCommand.h b/Source/cmAddCustomCommandCommand.h index c67caa545..6c5e1afb0 100644 --- a/Source/cmAddCustomCommandCommand.h +++ b/Source/cmAddCustomCommandCommand.h @@ -152,6 +152,9 @@ public: "If any dependency is an OUTPUT of another custom command in the " "same directory (CMakeLists.txt file) CMake automatically brings the " "other custom command into the target in which this command is built. " + "If DEPENDS is not specified the command will run whenever the OUTPUT " + "is missing; if the command does not actually create the OUTPUT then " + "the rule will always run. " "If DEPENDS specifies any target (created by an ADD_* command) " "a target-level dependency is created to make sure the target is " "built before any target using this custom command. Additionally, " From 07cfa57ec5f9f906e075512646100719a0a615aa Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 5 Nov 2010 08:33:47 -0400 Subject: [PATCH 038/170] Consolidate duplicate link rule make dependency code Factor code previously duplicated for library and executable rules into a common method. --- .../cmMakefileExecutableTargetGenerator.cxx | 27 +--------------- Source/cmMakefileLibraryTargetGenerator.cxx | 25 +-------------- Source/cmMakefileTargetGenerator.cxx | 31 +++++++++++++++++++ Source/cmMakefileTargetGenerator.h | 3 ++ 4 files changed, 36 insertions(+), 50 deletions(-) diff --git a/Source/cmMakefileExecutableTargetGenerator.cxx b/Source/cmMakefileExecutableTargetGenerator.cxx index a5e319dd0..4426241c5 100644 --- a/Source/cmMakefileExecutableTargetGenerator.cxx +++ b/Source/cmMakefileExecutableTargetGenerator.cxx @@ -82,34 +82,9 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink) { std::vector commands; - std::string relPath = this->LocalGenerator->GetHomeRelativeOutputPath(); - std::string objTarget; - // Build list of dependencies. std::vector depends; - for(std::vector::const_iterator obj = this->Objects.begin(); - obj != this->Objects.end(); ++obj) - { - objTarget = relPath; - objTarget += *obj; - depends.push_back(objTarget); - } - - // Add dependencies on targets that must be built first. - this->AppendTargetDepends(depends); - - // Add a dependency on the rule file itself. - this->LocalGenerator->AppendRuleDepend(depends, - this->BuildFileNameFull.c_str()); - - for(std::vector::const_iterator obj = - this->ExternalObjects.begin(); - obj != this->ExternalObjects.end(); ++obj) - { - depends.push_back(*obj); - } - - // from here up is the same for exe or lib + this->AppendLinkDepends(depends); // Get the name of the executable to generate. std::string targetName; diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx index dff91fe03..049a338c9 100644 --- a/Source/cmMakefileLibraryTargetGenerator.cxx +++ b/Source/cmMakefileLibraryTargetGenerator.cxx @@ -308,33 +308,10 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules // code duplication. std::vector commands; - std::string relPath = this->LocalGenerator->GetHomeRelativeOutputPath(); - std::string objTarget; - // Build list of dependencies. std::vector depends; - for(std::vector::const_iterator obj = this->Objects.begin(); - obj != this->Objects.end(); ++obj) - { - objTarget = relPath; - objTarget += *obj; - depends.push_back(objTarget); - } + this->AppendLinkDepends(depends); - // Add dependencies on targets that must be built first. - this->AppendTargetDepends(depends); - - // Add a dependency on the rule file itself. - this->LocalGenerator->AppendRuleDepend(depends, - this->BuildFileNameFull.c_str()); - - for(std::vector::const_iterator obj - = this->ExternalObjects.begin(); - obj != this->ExternalObjects.end(); ++obj) - { - depends.push_back(*obj); - } - // Get the language to use for linking this library. const char* linkLanguage = this->Target->GetLinkerLanguage(this->ConfigName); diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx index d5d65852a..0c150df36 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -1505,6 +1505,37 @@ void cmMakefileTargetGenerator } } +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator +::AppendLinkDepends(std::vector& depends) +{ + // Add dependencies on the compiled object files. + std::string relPath = this->LocalGenerator->GetHomeRelativeOutputPath(); + std::string objTarget; + for(std::vector::const_iterator obj = this->Objects.begin(); + obj != this->Objects.end(); ++obj) + { + objTarget = relPath; + objTarget += *obj; + depends.push_back(objTarget); + } + + // Add dependencies on targets that must be built first. + this->AppendTargetDepends(depends); + + // Add a dependency on the rule file itself. + this->LocalGenerator->AppendRuleDepend(depends, + this->BuildFileNameFull.c_str()); + + // Add dependencies on the external object files. + for(std::vector::const_iterator obj + = this->ExternalObjects.begin(); + obj != this->ExternalObjects.end(); ++obj) + { + depends.push_back(*obj); + } +} + //---------------------------------------------------------------------------- void cmMakefileTargetGenerator ::CloseFileStreams() diff --git a/Source/cmMakefileTargetGenerator.h b/Source/cmMakefileTargetGenerator.h index 4ee2b39b6..c9aede2f2 100644 --- a/Source/cmMakefileTargetGenerator.h +++ b/Source/cmMakefileTargetGenerator.h @@ -115,6 +115,9 @@ protected: // append intertarget dependencies void AppendTargetDepends(std::vector& depends); + // Append link rule dependencies (objects, etc.). + void AppendLinkDepends(std::vector& depends); + /** In order to support parallel builds for custom commands with multiple outputs the outputs are given a serial order, and only the first output actually has the build rule. Other outputs From 95f149e61f1ad8c8cadd74f2dbe36a2613815cc2 Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 5 Nov 2010 09:05:08 -0400 Subject: [PATCH 039/170] Define LINK_DEPENDS target property (#11406) Custom Makefile link rules may need to depend on linker scripts. Define this property to allow user-specified link-time dependencies. --- Source/cmMakefileTargetGenerator.cxx | 7 +++++++ Source/cmTarget.cxx | 12 ++++++++++++ Tests/BuildDepends/CMakeLists.txt | 23 +++++++++++++++++++++++ Tests/BuildDepends/Project/CMakeLists.txt | 5 +++++ Tests/BuildDepends/Project/linkdep.cxx | 4 ++++ 5 files changed, 51 insertions(+) create mode 100644 Tests/BuildDepends/Project/linkdep.cxx diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx index 0c150df36..9153f3a6b 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -1534,6 +1534,13 @@ void cmMakefileTargetGenerator { depends.push_back(*obj); } + + // Add user-specified dependencies. + if(const char* linkDepends = + this->Target->GetProperty("LINK_DEPENDS")) + { + cmSystemTools::ExpandListArgument(linkDepends, depends); + } } //---------------------------------------------------------------------------- diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 538025732..ca61b1fc3 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -531,6 +531,18 @@ void cmTarget::DefineProperties(cmake *cm) "Use the MAP_IMPORTED_CONFIG_ property to map imported " "configurations explicitly."); + cm->DefineProperty + ("LINK_DEPENDS", cmProperty::TARGET, + "Additional files on which a target binary depends for linking.", + "Specifies a semicolon-separated list of full-paths to files on which " + "the link rule for this target depends. " + "The target binary will be linked if any of the named files is newer " + "than it." + "\n" + "This property is ignored by non-Makefile generators. " + "It is intended to specify dependencies on \"linker scripts\" for " + "custom Makefile link rules."); + cm->DefineProperty ("LINK_INTERFACE_LIBRARIES", cmProperty::TARGET, "List public interface libraries for a shared library or executable.", diff --git a/Tests/BuildDepends/CMakeLists.txt b/Tests/BuildDepends/CMakeLists.txt index 871464086..31392b5e4 100644 --- a/Tests/BuildDepends/CMakeLists.txt +++ b/Tests/BuildDepends/CMakeLists.txt @@ -34,6 +34,12 @@ if(WIN32 AND "${CMAKE_CXX_COMPILER_ID}" MATCHES "Intel") set(_cmake_options "-DCMAKE_EXE_LINKER_FLAGS=") endif() +if("${CMAKE_GENERATOR}" MATCHES "Make") + set(TEST_LINK_DEPENDS ${BuildDepends_BINARY_DIR}/Project/linkdep.txt) + file(WRITE ${TEST_LINK_DEPENDS} "1") +endif() +list(APPEND _cmake_options "-DTEST_LINK_DEPENDS=${TEST_LINK_DEPENDS}") + file(MAKE_DIRECTORY ${BuildDepends_BINARY_DIR}/Project) message("Creating Project/foo.cxx") write_file(${BuildDepends_BINARY_DIR}/Project/foo.cxx @@ -131,6 +137,10 @@ file(WRITE ${BuildDepends_BINARY_DIR}/Project/zot_macro_dir.hxx file(WRITE ${BuildDepends_BINARY_DIR}/Project/zot_macro_tgt.hxx "static const char* zot_macro_tgt = \"zot_macro_tgt changed\";\n") +if(TEST_LINK_DEPENDS) + file(WRITE ${TEST_LINK_DEPENDS} "2") +endif() + help_xcode_depends() message("Building project second time") @@ -194,3 +204,16 @@ if("${out}" STREQUAL "${VALUE_CHANGED}") else("${out}" STREQUAL "${VALUE_CHANGED}") message(SEND_ERROR "Project did not rebuild properly!") endif("${out}" STREQUAL "${VALUE_CHANGED}") + +if(TEST_LINK_DEPENDS) + set(linkdep ${BuildDepends_BINARY_DIR}/Project/linkdep${CMAKE_EXECUTABLE_SUFFIX}) + if(${linkdep} IS_NEWER_THAN ${TEST_LINK_DEPENDS}) + message("LINK_DEPENDS worked") + else() + message(SEND_ERROR "LINK_DEPENDS failed. Executable + ${linkdep} +is not newer than dependency + ${TEST_LINK_DEPENDS} +") + endif() +endif() diff --git a/Tests/BuildDepends/Project/CMakeLists.txt b/Tests/BuildDepends/Project/CMakeLists.txt index e9d129682..70a2f3701 100644 --- a/Tests/BuildDepends/Project/CMakeLists.txt +++ b/Tests/BuildDepends/Project/CMakeLists.txt @@ -80,3 +80,8 @@ set_property( DIRECTORY PROPERTY IMPLICIT_DEPENDS_INCLUDE_TRANSFORM "ZOT_DIR(%)=" ) + +if(TEST_LINK_DEPENDS) + add_executable(linkdep linkdep.cxx) + set_property(TARGET linkdep PROPERTY LINK_DEPENDS ${TEST_LINK_DEPENDS}) +endif() diff --git a/Tests/BuildDepends/Project/linkdep.cxx b/Tests/BuildDepends/Project/linkdep.cxx new file mode 100644 index 000000000..f8b643afb --- /dev/null +++ b/Tests/BuildDepends/Project/linkdep.cxx @@ -0,0 +1,4 @@ +int main() +{ + return 0; +} From c5a47ad148a7a470eaebd350917ea0e036e77ac9 Mon Sep 17 00:00:00 2001 From: KWSys Robot Date: Sat, 6 Nov 2010 00:01:12 -0400 Subject: [PATCH 040/170] KWSys Nightly Date Stamp --- Source/kwsys/kwsysDateStamp.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/kwsys/kwsysDateStamp.cmake b/Source/kwsys/kwsysDateStamp.cmake index f94e21238..eaee778c0 100644 --- a/Source/kwsys/kwsysDateStamp.cmake +++ b/Source/kwsys/kwsysDateStamp.cmake @@ -18,4 +18,4 @@ SET(KWSYS_DATE_STAMP_YEAR 2010) SET(KWSYS_DATE_STAMP_MONTH 11) # KWSys version date day component. Format is DD. -SET(KWSYS_DATE_STAMP_DAY 05) +SET(KWSYS_DATE_STAMP_DAY 06) From d95017deec954ad81253c9d545eaeb323c52ac0e Mon Sep 17 00:00:00 2001 From: KWSys Robot Date: Sun, 7 Nov 2010 00:01:03 -0400 Subject: [PATCH 041/170] KWSys Nightly Date Stamp --- Source/kwsys/kwsysDateStamp.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/kwsys/kwsysDateStamp.cmake b/Source/kwsys/kwsysDateStamp.cmake index eaee778c0..61c813137 100644 --- a/Source/kwsys/kwsysDateStamp.cmake +++ b/Source/kwsys/kwsysDateStamp.cmake @@ -18,4 +18,4 @@ SET(KWSYS_DATE_STAMP_YEAR 2010) SET(KWSYS_DATE_STAMP_MONTH 11) # KWSys version date day component. Format is DD. -SET(KWSYS_DATE_STAMP_DAY 06) +SET(KWSYS_DATE_STAMP_DAY 07) From da778eeb4b095e0d09f60e00e55c9e6ec43b7d7a Mon Sep 17 00:00:00 2001 From: KWSys Robot Date: Mon, 8 Nov 2010 00:01:03 -0500 Subject: [PATCH 042/170] KWSys Nightly Date Stamp --- Source/kwsys/kwsysDateStamp.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/kwsys/kwsysDateStamp.cmake b/Source/kwsys/kwsysDateStamp.cmake index 61c813137..69c7cb81f 100644 --- a/Source/kwsys/kwsysDateStamp.cmake +++ b/Source/kwsys/kwsysDateStamp.cmake @@ -18,4 +18,4 @@ SET(KWSYS_DATE_STAMP_YEAR 2010) SET(KWSYS_DATE_STAMP_MONTH 11) # KWSys version date day component. Format is DD. -SET(KWSYS_DATE_STAMP_DAY 07) +SET(KWSYS_DATE_STAMP_DAY 08) From 20ceccc4f28474c89af5797640852f966b731be4 Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Mon, 8 Nov 2010 11:06:56 -0500 Subject: [PATCH 043/170] FindPerlLibs: Fix for Mac locally applied patches Previously FindPerlLibs did not work with the Mac stock Perl because it includes patches. From "perl -V": Locally applied patches: /Library/Perl/Updates/ comes before system perl directories installprivlib and installarchlib points to the Updates directory Adjust paths accordingly. --- Modules/FindPerlLibs.cmake | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Modules/FindPerlLibs.cmake b/Modules/FindPerlLibs.cmake index 4cb026392..0d620e346 100644 --- a/Modules/FindPerlLibs.cmake +++ b/Modules/FindPerlLibs.cmake @@ -147,6 +147,32 @@ if (PERL_EXECUTABLE) string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_VENDORLIB ${PERL_VENDORLIB_OUTPUT_VARIABLE}) endif (NOT PERL_VENDORLIB_RESULT_VARIABLE) + macro(perl_adjust_darwin_lib_variable varname) + string( TOUPPER PERL_${varname} FINDPERL_VARNAME ) + string( TOLOWER install${varname} PERL_VARNAME ) + + if (NOT PERL_MINUSV_OUTPUT_VARIABLE) + execute_process( + COMMAND + ${PERL_EXECUTABLE} -V + OUTPUT_VARIABLE + PERL_MINUSV_OUTPUT_VARIABLE + RESULT_VARIABLE + PERL_MINUSV_RESULT_VARIABLE + ) + endif() + + if (NOT PERL_MINUSV_RESULT_VARIABLE) + string(REGEX MATCH "(${PERL_VARNAME}.*points? to the Updates directory)" + PERL_NEEDS_ADJUSTMENT ${PERL_MINUSV_OUTPUT_VARIABLE}) + + if (PERL_NEEDS_ADJUSTMENT) + string(REGEX REPLACE "(.*)/Updates/" "/System/\\1/" ${FINDPERL_VARNAME} ${${FINDPERL_VARNAME}}) + endif (PERL_NEEDS_ADJUSTMENT) + + endif (NOT PERL_MINUSV_RESULT_VARIABLE) + endmacro() + ### PERL_ARCHLIB execute_process( COMMAND @@ -158,6 +184,7 @@ if (PERL_EXECUTABLE) ) if (NOT PERL_ARCHLIB_RESULT_VARIABLE) string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_ARCHLIB ${PERL_ARCHLIB_OUTPUT_VARIABLE}) + perl_adjust_darwin_lib_variable( ARCHLIB ) endif (NOT PERL_ARCHLIB_RESULT_VARIABLE) ### PERL_PRIVLIB @@ -171,6 +198,7 @@ if (PERL_EXECUTABLE) ) if (NOT PERL_PRIVLIB_RESULT_VARIABLE) string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_PRIVLIB ${PERL_PRIVLIB_OUTPUT_VARIABLE}) + perl_adjust_darwin_lib_variable( PRIVLIB ) endif (NOT PERL_PRIVLIB_RESULT_VARIABLE) From 1e26f7c68b9cc1bbaf173cb6a7c6137bb2d829f8 Mon Sep 17 00:00:00 2001 From: David Cole Date: Mon, 8 Nov 2010 11:29:28 -0500 Subject: [PATCH 044/170] Suppress "loop was vectorized" "warnings." Eliminate appearance on dashboard results from Intel compilers. --- CTestCustom.cmake.in | 1 + 1 file changed, 1 insertion(+) diff --git a/CTestCustom.cmake.in b/CTestCustom.cmake.in index d5789ede9..882fa4cc7 100644 --- a/CTestCustom.cmake.in +++ b/CTestCustom.cmake.in @@ -24,6 +24,7 @@ SET(CTEST_CUSTOM_WARNING_EXCEPTION "is not used for resolving any symbol" "Clock skew detected" "remark\\(1209" + "remark: .*LOOP WAS VECTORIZED" "LINK : warning LNK4089: all references to.*ADVAPI32.dll.*discarded by /OPT:REF" "LINK : warning LNK4089: all references to.*USER32.dll.*discarded by /OPT:REF" "Warning: library was too large for page size.*" From bbb3d81d383737f4111f7303b36c23c537aaf17a Mon Sep 17 00:00:00 2001 From: KWSys Robot Date: Tue, 9 Nov 2010 00:01:04 -0500 Subject: [PATCH 045/170] KWSys Nightly Date Stamp --- Source/kwsys/kwsysDateStamp.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/kwsys/kwsysDateStamp.cmake b/Source/kwsys/kwsysDateStamp.cmake index 69c7cb81f..5ff8eec6f 100644 --- a/Source/kwsys/kwsysDateStamp.cmake +++ b/Source/kwsys/kwsysDateStamp.cmake @@ -18,4 +18,4 @@ SET(KWSYS_DATE_STAMP_YEAR 2010) SET(KWSYS_DATE_STAMP_MONTH 11) # KWSys version date day component. Format is DD. -SET(KWSYS_DATE_STAMP_DAY 08) +SET(KWSYS_DATE_STAMP_DAY 09) From d8e0bfa7863f817cd226eca65626525f6b1d1f57 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 9 Nov 2010 10:41:45 -0500 Subject: [PATCH 046/170] KWSys: Teach SystemInformation about WinXP Pro and Win7 Modify a few lines in the function QueryOSInformation. Change-Id: Ief8327144fdf5588354d4ce8240eb0206722e77e Author: Marius Staring --- Source/kwsys/SystemInformation.cxx | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Source/kwsys/SystemInformation.cxx b/Source/kwsys/SystemInformation.cxx index 936c1f71b..4818ce9a9 100644 --- a/Source/kwsys/SystemInformation.cxx +++ b/Source/kwsys/SystemInformation.cxx @@ -3304,28 +3304,37 @@ bool SystemInformationImplementation::QueryOSInformation() { case VER_PLATFORM_WIN32_NT: // Test for the product. - if (osvi.dwMajorVersion <= 4) + if (osvi.dwMajorVersion <= 4) { this->OSRelease = "NT"; } - if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0) + if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0) { this->OSRelease = "2000"; } - if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1) + if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1) + { + this->OSRelease = "XP"; + } + // XP Professional x64 + if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2) { this->OSRelease = "XP"; } #ifdef VER_NT_WORKSTATION // Test for product type. - if (bOsVersionInfoEx) + if (bOsVersionInfoEx) { - if (osvi.wProductType == VER_NT_WORKSTATION) + if (osvi.wProductType == VER_NT_WORKSTATION) { - if (osvi.dwMajorVersion == 6) + if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 0) { this->OSRelease = "Vista"; } + if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 1) + { + this->OSRelease = "7"; + } // VER_SUITE_PERSONAL may not be defined #ifdef VER_SUITE_PERSONAL else From a39ee97c6cfe19e2170e0e5eccbfb8b1be3b1f48 Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Tue, 9 Nov 2010 21:51:59 +0100 Subject: [PATCH 047/170] Fix #11421: FindQt3.cmake doesn't honor the REQUIRED keyword Alex --- Modules/FindQt3.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/FindQt3.cmake b/Modules/FindQt3.cmake index 3606a5f4f..1319de27d 100644 --- a/Modules/FindQt3.cmake +++ b/Modules/FindQt3.cmake @@ -242,9 +242,9 @@ IF (QT_MIN_VERSION) ENDIF (QT_MIN_VERSION) # if the include a library are found then we have it -IF(QT_INCLUDE_DIR AND QT_QT_LIBRARY) - SET( QT_FOUND "YES" ) -ENDIF(QT_INCLUDE_DIR AND QT_QT_LIBRARY) +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Qt3 DEFAULT_MSG QT_QT_LIBRARY QT_INCLUDE_DIR QT_MOC_EXECUTABLE) +SET(QT_FOUND ${QT3_FOUND} ) IF(QT_FOUND) SET( QT_LIBRARIES ${QT_LIBRARIES} ${QT_QT_LIBRARY} ) From 3d79e7d58ca0ebb63ffaba4ed16c1ea8c6bcf91d Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 9 Nov 2010 17:48:18 -0500 Subject: [PATCH 048/170] Fix Intel .vfproj SubSystem attribute values The SubSystem attribute value must be "subSystemConsole" or "subSystemWindows", not "1" or "2". Commit 20f49730 (Reset platform/compiler info status for each language, 2010-09-28) exposed this bug by (correctly) passing the /libs:dll flag to the compiler, which chokes the linker if a value for "/subsystem:" is not given. --- Source/cmLocalVisualStudio7Generator.cxx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index cb34bb6cf..ffe26b128 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -1098,11 +1098,13 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout, } if ( target.GetPropertyAsBool("WIN32_EXECUTABLE") ) { - fout << "\t\t\t\tSubSystem=\"2\"\n"; + fout << "\t\t\t\tSubSystem=\"" + << (this->FortranProject? "subSystemWindows" : "2") << "\"\n"; } else { - fout << "\t\t\t\tSubSystem=\"1\"\n"; + fout << "\t\t\t\tSubSystem=\"" + << (this->FortranProject? "subSystemConsole" : "1") << "\"\n"; } std::string stackVar = "CMAKE_"; stackVar += linkLanguage; From 22aec406e6df44dcde0fa98e694455306febeaf1 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 9 Nov 2010 17:54:40 -0500 Subject: [PATCH 049/170] Set Intel .vfproj RuntimeLibrary attribute Look for the "/threads", "/libs:dll", and "/dbglibs" flags and convert them to the proper RuntimeLibrary attribute value in the IDE. This is a 3-to-1 flag mapping and such needs special handling in the parser. --- Source/cmLocalVisualStudio7Generator.cxx | 1 + Source/cmVisualStudioGeneratorOptions.cxx | 51 +++++++++++++++++++++++ Source/cmVisualStudioGeneratorOptions.h | 5 +++ 3 files changed, 57 insertions(+) diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index ffe26b128..7fd7fd254 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -669,6 +669,7 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout, targetOptions.FixExceptionHandlingDefault(); targetOptions.Parse(flags.c_str()); targetOptions.Parse(defineFlags.c_str()); + targetOptions.ParseFinish(); targetOptions.AddDefines (this->Makefile->GetProperty("COMPILE_DEFINITIONS")); targetOptions.AddDefines(target.GetProperty("COMPILE_DEFINITIONS")); diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx index 972af955d..f1bad9c1d 100644 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@ -45,6 +45,10 @@ cmVisualStudioGeneratorOptions // Slash options are allowed for VS. this->AllowSlash = true; + + this->FortranRuntimeDebug = false; + this->FortranRuntimeDLL = false; + this->FortranRuntimeMT = false; } //---------------------------------------------------------------------------- @@ -132,9 +136,56 @@ void cmVisualStudioGeneratorOptions::Parse(const char* flags) } } +//---------------------------------------------------------------------------- +void cmVisualStudioGeneratorOptions::ParseFinish() +{ + if(this->CurrentTool == FortranCompiler) + { + // "RuntimeLibrary" attribute values: + // "rtMultiThreaded", "0", /threads /libs:static + // "rtMultiThreadedDLL", "2", /threads /libs:dll + // "rtMultiThreadedDebug", "1", /threads /dbglibs /libs:static + // "rtMultiThreadedDebugDLL", "3", /threads /dbglibs /libs:dll + // These seem unimplemented by the IDE: + // "rtSingleThreaded", "4", /libs:static + // "rtSingleThreadedDLL", "10", /libs:dll + // "rtSingleThreadedDebug", "5", /dbglibs /libs:static + // "rtSingleThreadedDebugDLL", "11", /dbglibs /libs:dll + std::string rl = "rtMultiThreaded"; + rl += this->FortranRuntimeDebug? "Debug" : ""; + rl += this->FortranRuntimeDLL? "DLL" : ""; + this->FlagMap["RuntimeLibrary"] = rl; + } +} + //---------------------------------------------------------------------------- void cmVisualStudioGeneratorOptions::StoreUnknownFlag(const char* flag) { + // Look for Intel Fortran flags that do not map well in the flag table. + if(this->CurrentTool == FortranCompiler) + { + if(strcmp(flag, "/dbglibs") == 0) + { + this->FortranRuntimeDebug = true; + return; + } + if(strcmp(flag, "/threads") == 0) + { + this->FortranRuntimeMT = true; + return; + } + if(strcmp(flag, "/libs:dll") == 0) + { + this->FortranRuntimeDLL = true; + return; + } + if(strcmp(flag, "/libs:static") == 0) + { + this->FortranRuntimeDLL = false; + return; + } + } + // This option is not known. Store it in the output flags. this->FlagString += " "; this->FlagString += diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h index f7d1a0224..8619ba0b2 100644 --- a/Source/cmVisualStudioGeneratorOptions.h +++ b/Source/cmVisualStudioGeneratorOptions.h @@ -39,6 +39,7 @@ public: // Store options from command line flags. void Parse(const char* flags); + void ParseFinish(); // Fix the ExceptionHandling option to default to off. void FixExceptionHandlingDefault(); @@ -67,6 +68,10 @@ private: Tool CurrentTool; cmVisualStudio10TargetGenerator* TargetGenerator; + bool FortranRuntimeDebug; + bool FortranRuntimeDLL; + bool FortranRuntimeMT; + virtual void StoreUnknownFlag(const char* flag); }; From 1321eb979671bb99f4d5c973e633f760fb2e3923 Mon Sep 17 00:00:00 2001 From: Philip Lowman Date: Tue, 9 Nov 2010 21:43:08 -0500 Subject: [PATCH 050/170] 11429: FindGTK2 does not find libraries built for Visual Studio 2010 Adds support for detecting builds of FindGTK2 with Visual Studio 2010. Thanks to Vincent Levesque for the patch. --- Modules/FindGTK2.cmake | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Modules/FindGTK2.cmake b/Modules/FindGTK2.cmake index d8b4f6313..1e5994619 100644 --- a/Modules/FindGTK2.cmake +++ b/Modules/FindGTK2.cmake @@ -66,6 +66,10 @@ # (To distribute this file outside of CMake, substitute the full # License text for the above reference.) +# Version 1.3 (11/9/2010) (CMake 2.8.4) +# * 11429: Add support for detecting GTK2 built with Visual Studio 10. +# Thanks to Vincent Levesque for the patch. + # Version 1.2 (8/30/2010) (CMake 2.8.3) # * Merge patch for detecting gdk-pixbuf library (split off # from core GTK in 2.21). Thanks to Vincent Untz for the patch @@ -237,15 +241,16 @@ function(_GTK2_FIND_LIBRARY _var _lib _expand_vc _append_version) set(_library ${_lib}) - if(_expand_vc) - # Add vc80/vc90 midfixes + if(_expand_vc AND MSVC) + # Add vc80/vc90/vc100 midfixes if(MSVC80) set(_library ${_library}-vc80) - set(_library_d ${_library}-d) elseif(MSVC90) set(_library ${_library}-vc90) - set(_library_d ${_library}-d) + elseif(MSVC10) + set(_library ${_library}-vc100) endif() + set(_library_d ${_library}-d) endif() if(GTK2_DEBUG) From c5762cf58c70f82479586e3938a85e60f9474a6c Mon Sep 17 00:00:00 2001 From: KWSys Robot Date: Wed, 10 Nov 2010 00:01:14 -0500 Subject: [PATCH 051/170] KWSys Nightly Date Stamp --- Source/kwsys/kwsysDateStamp.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/kwsys/kwsysDateStamp.cmake b/Source/kwsys/kwsysDateStamp.cmake index 5ff8eec6f..f367ade2f 100644 --- a/Source/kwsys/kwsysDateStamp.cmake +++ b/Source/kwsys/kwsysDateStamp.cmake @@ -18,4 +18,4 @@ SET(KWSYS_DATE_STAMP_YEAR 2010) SET(KWSYS_DATE_STAMP_MONTH 11) # KWSys version date day component. Format is DD. -SET(KWSYS_DATE_STAMP_DAY 09) +SET(KWSYS_DATE_STAMP_DAY 10) From b3cf739e2c784fbd6c8a93c1ac91bd4bcea5acbf Mon Sep 17 00:00:00 2001 From: David Cole Date: Wed, 10 Nov 2010 09:06:09 -0500 Subject: [PATCH 052/170] Honor FOLDER on include_external_msproject targets (#11436) Add FOLDER property usage to the VSExternalInclude test and inspect results manually to verify behavior. Thanks to Jens Auer for the bug report. --- Source/cmGlobalVisualStudio7Generator.cxx | 78 ++++++++++++----------- Tests/VSExternalInclude/CMakeLists.txt | 8 +++ 2 files changed, 49 insertions(+), 37 deletions(-) diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx index 2b9e5baef..45d6a74bc 100644 --- a/Source/cmGlobalVisualStudio7Generator.cxx +++ b/Source/cmGlobalVisualStudio7Generator.cxx @@ -279,6 +279,8 @@ void cmGlobalVisualStudio7Generator::WriteTargetsToSolution( projectTargets.begin(); tt != projectTargets.end(); ++tt) { cmTarget* target = *tt; + bool written = false; + // handle external vc project files const char* expath = target->GetProperty("EXTERNAL_MSPROJECT"); if(expath) @@ -287,6 +289,7 @@ void cmGlobalVisualStudio7Generator::WriteTargetsToSolution( std::string location = expath; this->WriteExternalProject(fout, project.c_str(), location.c_str(), target->GetUtilities()); + written = true; } else { @@ -300,47 +303,48 @@ void cmGlobalVisualStudio7Generator::WriteTargetsToSolution( cmLocalGenerator::START_OUTPUT); this->WriteProject(fout, vcprojName, dir.c_str(), *target); + written = true; + } + } - // Create "solution folder" information from FOLDER target property - // - if (this->UseFolderProperty()) + // Create "solution folder" information from FOLDER target property + // + if (written && this->UseFolderProperty()) + { + const char *targetFolder = target->GetProperty("FOLDER"); + if (targetFolder) + { + std::vector tokens = + cmSystemTools::SplitString(targetFolder, '/', false); + + std::string cumulativePath = ""; + + for(std::vector::iterator iter = tokens.begin(); + iter != tokens.end(); ++iter) { - const char *targetFolder = target->GetProperty("FOLDER"); - if (targetFolder) + if(!iter->size()) { - std::vector tokens = - cmSystemTools::SplitString(targetFolder, '/', false); - - std::string cumulativePath = ""; - - for(std::vector::iterator iter = tokens.begin(); - iter != tokens.end(); ++iter) - { - if(!iter->size()) - { - continue; - } - - if (cumulativePath.empty()) - { - cumulativePath = "CMAKE_FOLDER_GUID_" + *iter; - } - else - { - VisualStudioFolders[cumulativePath].insert( - cumulativePath + "/" + *iter); - - cumulativePath = cumulativePath + "/" + *iter; - } - - this->CreateGUID(cumulativePath.c_str()); - } - - if (!cumulativePath.empty()) - { - VisualStudioFolders[cumulativePath].insert(target->GetName()); - } + continue; } + + if (cumulativePath.empty()) + { + cumulativePath = "CMAKE_FOLDER_GUID_" + *iter; + } + else + { + VisualStudioFolders[cumulativePath].insert( + cumulativePath + "/" + *iter); + + cumulativePath = cumulativePath + "/" + *iter; + } + + this->CreateGUID(cumulativePath.c_str()); + } + + if (!cumulativePath.empty()) + { + VisualStudioFolders[cumulativePath].insert(target->GetName()); } } } diff --git a/Tests/VSExternalInclude/CMakeLists.txt b/Tests/VSExternalInclude/CMakeLists.txt index 931e63620..1e6896801 100644 --- a/Tests/VSExternalInclude/CMakeLists.txt +++ b/Tests/VSExternalInclude/CMakeLists.txt @@ -50,3 +50,11 @@ IF(MSVC10) ADD_DEPENDENCIES(VSExternalInclude lib1) ENDIF() +# Interaction testing between the FOLDER target property and +# INCLUDE_EXTERNAL_MSPROJECT targets: +set_target_properties(VSExternalInclude PROPERTIES FOLDER folder1/folder2) +set_target_properties(lib1 PROPERTIES FOLDER folder1/folder2) +set_target_properties(lib2 PROPERTIES FOLDER folder1/folder2) +add_custom_target(EmptyCustomTarget) +set_target_properties(EmptyCustomTarget PROPERTIES FOLDER folder1/folder2) +set_property(GLOBAL PROPERTY USE_FOLDERS ON) From f4aa65cdf52968e6bdd60a76c8e80b90398df389 Mon Sep 17 00:00:00 2001 From: KWSys Robot Date: Thu, 11 Nov 2010 00:01:06 -0500 Subject: [PATCH 053/170] KWSys Nightly Date Stamp --- Source/kwsys/kwsysDateStamp.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/kwsys/kwsysDateStamp.cmake b/Source/kwsys/kwsysDateStamp.cmake index f367ade2f..9771f5534 100644 --- a/Source/kwsys/kwsysDateStamp.cmake +++ b/Source/kwsys/kwsysDateStamp.cmake @@ -18,4 +18,4 @@ SET(KWSYS_DATE_STAMP_YEAR 2010) SET(KWSYS_DATE_STAMP_MONTH 11) # KWSys version date day component. Format is DD. -SET(KWSYS_DATE_STAMP_DAY 10) +SET(KWSYS_DATE_STAMP_DAY 11) From 7b1421b88553f4c1fa685be5bd84a5e950490317 Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Thu, 11 Nov 2010 22:02:07 +0100 Subject: [PATCH 054/170] Remove trailing whitespace Alex --- Source/cmExtraCodeBlocksGenerator.cxx | 74 ++++++------- Source/cmExtraCodeBlocksGenerator.h | 6 +- Source/cmExtraEclipseCDT4Generator.cxx | 66 ++++++------ Source/cmExtraEclipseCDT4Generator.h | 4 +- Source/cmGlobalGenerator.h | 44 ++++---- Source/cmGlobalUnixMakefileGenerator3.cxx | 122 +++++++++++----------- Source/cmGlobalUnixMakefileGenerator3.h | 28 ++--- Source/cmLocalUnixMakefileGenerator3.cxx | 72 ++++++------- 8 files changed, 208 insertions(+), 208 deletions(-) diff --git a/Source/cmExtraCodeBlocksGenerator.cxx b/Source/cmExtraCodeBlocksGenerator.cxx index e6d7a6d1f..822d62ae4 100644 --- a/Source/cmExtraCodeBlocksGenerator.cxx +++ b/Source/cmExtraCodeBlocksGenerator.cxx @@ -23,7 +23,7 @@ #include /* Some useful URLs: -Homepage: +Homepage: http://www.codeblocks.org File format docs: @@ -107,7 +107,7 @@ void cmExtraCodeBlocksGenerator::CreateProjectFile( /* Tree is used to create a "Virtual Folder" in CodeBlocks, in which all CMake files this project depends on will be put. This means additionally to the "Sources" and "Headers" virtual folders of CodeBlocks, there will - now also be a "CMake Files" virtual folder. + now also be a "CMake Files" virtual folder. Patch by Daniel Teske (which use C::B project files in QtCreator).*/ struct Tree @@ -115,24 +115,24 @@ struct Tree std::string path; //only one component of the path std::vector folders; std::vector files; - void InsertPath(const std::vector& splitted, - std::vector::size_type start, + void InsertPath(const std::vector& splitted, + std::vector::size_type start, const std::string& fileName); void BuildVirtualFolder(std::string& virtualFolders) const; - void BuildVirtualFolderImpl(std::string& virtualFolders, + void BuildVirtualFolderImpl(std::string& virtualFolders, const std::string& prefix) const; void BuildUnit(std::string& unitString, const std::string& fsPath) const; - void BuildUnitImpl(std::string& unitString, - const std::string& virtualFolderPath, + void BuildUnitImpl(std::string& unitString, + const std::string& virtualFolderPath, const std::string& fsPath) const; }; -void Tree::InsertPath(const std::vector& splitted, - std::vector::size_type start, +void Tree::InsertPath(const std::vector& splitted, + std::vector::size_type start, const std::string& fileName) { - if (start == splitted.size()) + if (start == splitted.size()) { files.push_back(fileName); return; @@ -301,7 +301,7 @@ void cmExtraCodeBlocksGenerator } // Now build a virtual tree string - std::string virtualFolders; + std::string virtualFolders; tree.BuildVirtualFolder(virtualFolders); // And one for std::string unitFiles; @@ -323,7 +323,7 @@ void cmExtraCodeBlocksGenerator this->AppendTarget(fout, "all", 0, make.c_str(), mf, compiler.c_str()); - // add all executable and library targets and some of the GLOBAL + // add all executable and library targets and some of the GLOBAL // and UTILITY targets for (std::vector::const_iterator lg=lgs.begin(); lg!=lgs.end(); lg++) @@ -338,9 +338,9 @@ void cmExtraCodeBlocksGenerator case cmTarget::GLOBAL_TARGET: { bool insertTarget = false; - // Only add the global targets from CMAKE_BINARY_DIR, + // Only add the global targets from CMAKE_BINARY_DIR, // not from the subdirs - if (strcmp(makefile->GetStartOutputDirectory(), + if (strcmp(makefile->GetStartOutputDirectory(), makefile->GetHomeOutputDirectory())==0) { insertTarget = true; @@ -362,7 +362,7 @@ void cmExtraCodeBlocksGenerator } if (insertTarget) { - this->AppendTarget(fout, ti->first.c_str(), 0, + this->AppendTarget(fout, ti->first.c_str(), 0, make.c_str(), makefile, compiler.c_str()); } } @@ -372,13 +372,13 @@ void cmExtraCodeBlocksGenerator // Experimental-"sub"targets as e.g. NightlyStart if (((ti->first.find("Nightly")==0) &&(ti->first!="Nightly")) || ((ti->first.find("Continuous")==0)&&(ti->first!="Continuous")) - || ((ti->first.find("Experimental")==0) + || ((ti->first.find("Experimental")==0) && (ti->first!="Experimental"))) { break; } - this->AppendTarget(fout, ti->first.c_str(), 0, + this->AppendTarget(fout, ti->first.c_str(), 0, make.c_str(), makefile, compiler.c_str()); break; case cmTarget::EXECUTABLE: @@ -386,11 +386,11 @@ void cmExtraCodeBlocksGenerator case cmTarget::SHARED_LIBRARY: case cmTarget::MODULE_LIBRARY: { - this->AppendTarget(fout, ti->first.c_str(), &ti->second, + this->AppendTarget(fout, ti->first.c_str(), &ti->second, make.c_str(), makefile, compiler.c_str()); std::string fastTarget = ti->first; fastTarget += "/fast"; - this->AppendTarget(fout, fastTarget.c_str(), &ti->second, + this->AppendTarget(fout, fastTarget.c_str(), &ti->second, make.c_str(), makefile, compiler.c_str()); } break; @@ -437,7 +437,7 @@ void cmExtraCodeBlocksGenerator { for(std::vector::const_iterator ext = mf->GetSourceExtensions().begin(); - ext != mf->GetSourceExtensions().end(); + ext != mf->GetSourceExtensions().end(); ++ext) { if ((*si)->GetExtension() == *ext) @@ -467,11 +467,11 @@ void cmExtraCodeBlocksGenerator // The following loop tries to add header files matching to implementation // files to the project. It does that by iterating over all source files, - // replacing the file name extension with ".h" and checks whether such a + // replacing the file name extension with ".h" and checks whether such a // file exists. If it does, it is inserted into the map of files. // A very similar version of that code exists also in the kdevelop // project generator. - for (std::map::const_iterator + for (std::map::const_iterator sit=cFiles.begin(); sit!=cFiles.end(); ++sit) @@ -483,7 +483,7 @@ void cmExtraCodeBlocksGenerator // check if there's a matching header around for(std::vector::const_iterator ext = mf->GetHeaderExtensions().begin(); - ext != mf->GetHeaderExtensions().end(); + ext != mf->GetHeaderExtensions().end(); ++ext) { std::string hname=headerBasename; @@ -506,7 +506,7 @@ void cmExtraCodeBlocksGenerator // insert all source files in the CodeBlocks project // first the C/C++ implementation files, then all others - for (std::map::const_iterator + for (std::map::const_iterator sit=cFiles.begin(); sit!=cFiles.end(); ++sit) @@ -514,7 +514,7 @@ void cmExtraCodeBlocksGenerator fout<<" first <<"\">\n" " \n"; } - for (std::set::const_iterator + for (std::set::const_iterator sit=otherFiles.begin(); sit!=otherFiles.end(); ++sit) @@ -577,7 +577,7 @@ void cmExtraCodeBlocksGenerator::AppendTarget(cmGeneratedFileStream& fout, "