summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog.manual575
-rw-r--r--Docs/bash-completion/cmake8
-rw-r--r--Docs/bash-completion/cpack6
-rw-r--r--Docs/bash-completion/ctest2
-rw-r--r--Modules/CMakeDetermineCompilerId.cmake6
-rw-r--r--Modules/FindCUDA.cmake17
-rw-r--r--Modules/FindHDF5.cmake38
-rw-r--r--Modules/FindPNG.cmake14
-rw-r--r--Modules/FortranCInterface/Detect.cmake2
-rw-r--r--Modules/Platform/Darwin.cmake9
-rw-r--r--Modules/Platform/Windows-MSVC.cmake18
-rw-r--r--Source/CMakeVersion.cmake4
-rw-r--r--Source/CTest/cmParseGTMCoverage.cxx4
-rw-r--r--Source/cmDocumentVariables.cxx106
-rw-r--r--Source/cmDocumentation.cxx4
-rw-r--r--Source/cmExportInstallFileGenerator.cxx2
-rw-r--r--Source/cmGeneratorExpression.cxx19
-rw-r--r--Source/cmGeneratorExpressionEvaluator.cxx5
-rw-r--r--Source/cmGeneratorTarget.cxx6
-rw-r--r--Source/cmGlobalGenerator.cxx12
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx88
-rw-r--r--Source/cmLocalVisualStudio7Generator.cxx18
-rw-r--r--Source/cmMakefile.cxx58
-rw-r--r--Source/cmMakefileTargetGenerator.cxx10
-rw-r--r--Source/cmQtAutomoc.cxx46
-rw-r--r--Source/cmTarget.cxx8
-rw-r--r--Tests/Architecture/CMakeLists.txt4
-rw-r--r--Tests/BuildDepends/CMakeLists.txt2
-rw-r--r--Tests/BuildDepends/Project/CMakeLists.txt4
-rw-r--r--Tests/CMakeOnly/AllFindModules/CMakeLists.txt11
-rw-r--r--Tests/ExportImport/Export/CMakeLists.txt2
-rw-r--r--Tests/MakeClean/ToClean/CMakeLists.txt12
-rw-r--r--Tests/QtAutomoc/CMakeLists.txt2
-rw-r--r--Tests/QtAutomoc/gadget.cpp4
-rw-r--r--Tests/QtAutomoc/gadget.h18
-rw-r--r--Tests/RunCMake/CMP0022/CMP0022-WARN-stderr.txt9
-rw-r--r--Tests/RunCMake/CMP0022/CMP0022-WARN-tll-stderr.txt9
-rwxr-xr-xbootstrap5
38 files changed, 960 insertions, 207 deletions
diff --git a/ChangeLog.manual b/ChangeLog.manual
index 134b4aa..0e84fb6 100644
--- a/ChangeLog.manual
+++ b/ChangeLog.manual
@@ -1,3 +1,578 @@
+Changes in CMake 2.8.12 (since 2.8.12-rc4)
+------------------------------------------
+Brad King (4):
+ Xcode: Fix test architecture selection for Xcode >= 5
+ Xcode: Teach Tests/BuildDepends to allow LINK_DEPENDS_NO_SHARED failure
+ Xcode: Drop XCODE_DEPEND_HELPER for Xcode >= 5
+ Xcode: Fix OBJECT library support for Xcode 5 (#14254)
+
+Stephen Kelly (1):
+ Genex: Fix processing multiple include directories for relative paths
+
+Changes in CMake 2.8.12-rc4 (since 2.8.12-rc3)
+----------------------------------------------
+Brad King (8):
+ VS: Future-proof Intel project format selection
+ MSVC: Drop /link from executable link lines with Ninja
+ FindCUDA: Always list custom command outputs in their targets
+ FindPNG: Honor old PNG_LIBRARY if provided (#14398)
+ FindHDF5: Fix regression in per-configuration library selection
+ bash-completion: Future-proof --help-*-list "cXXXX version" filtering
+ OS X: Search system SDKs for frameworks
+ Use first custom command for the same output (#14446)
+
+Patrick Gansterer (3):
+ MSVC: Fix version test for linking corelibc on Windows CE (#14420)
+ MSVC: Fix WinCE arch family preprocessor symbol (#14436)
+ VS: Use version-specific subsystem for WinCE compiler id (#14440)
+
+Rolf Eike Beer (1):
+ bootstrap: try better workaround for builds on Linux/HPPA
+
+Stephen Kelly (3):
+ Add differing target property content to policy CMP0022 warning
+ Fix CMP0022 warning when no old-style property is set
+ genex: Fix preprocessing with incomplete content (#14410).
+
+Changes in CMake 2.8.12-rc3 (since 2.8.12-rc2)
+----------------------------------------------
+Robert Maynard (1):
+ cmMakefile: Do not track CMake temporary files.
+
+Changes in CMake 2.8.12-rc2 (since 2.8.12-rc1)
+----------------------------------------------
+Brad King (2):
+ Fix RunCMake.Configure test expectation newline matching
+ Clean up install rules of CMake itself (#14371)
+
+Clinton Stimpson (1):
+ OSX: Allow an empty INSTALL_NAME_DIR to override MACOSX_RPATH.
+
+Eric Bélanger (1):
+ FindImageMagick: Find libraries named with HDRI support (#14348)
+
+Raphael Kubo da Costa (1):
+ FindTCL: Add BSD paths for Tcl/Tk 8.6
+
+Robert Maynard (2):
+ VS: Generate ToolsVersion matching each VS version
+ cmMakefile: Do not track configured files known to be temporary
+
+Rolf Eike Beer (1):
+ CheckC*CompilerFlag: add documentation what to expect from a positive result
+
+Stephen Kelly (6):
+ Fix OLD behavior of CMP0021.
+ try_compile: Extract IMPORTED targets from LINK_DEPENDENT_LIBRARIES
+ try_compile: Extract IMPORTED targets from INTERFACE_LINK_LIBRARIES
+ Genex: Fix evaluation of MAP_IMPORTED_CONFIG_<CONFIG>
+ Fix some whitespace errors in docs.
+ Normalize system directories from the interface target property
+
+Yury G. Kudryashov (1):
+ CPack: Fix a typo in documentation
+
+Zack Galbreath (1):
+ CTest: Fix GTM coverage parsing line offset bug
+
+Changes in CMake 2.8.12-rc1 (since 2.8.11.2)
+--------------------------------------------
+Adam J. Weigold (1):
+ CPackWIX: Add support for custom WiX templates
+
+Alex Neundorf (12):
+ CMakeSystem: include toolchain file after setting CMAKE_HOST_ (#13796)
+ Add support files for C, C++ and ASM for the IAR toolchain.
+ Add regexps for the IAR toolchain to the vendor list.
+ Add IAR to the CMakeDetectC(XX)CompilerID.c(pp).in
+ cmake-gui: use shortcut F only for "Find in Output"
+ Eclipse: fix #14204 and #14205: no file links to directories
+ automoc: add a global AUTOMOC_TARGETS_FOLDER property
+ install: do not strip dll import libraries (#14123)
+ ExportTargets: add one more comment to the generated file.
+ Add documentation for the --graphviz support
+ graphvizoptions: add copyright notice
+ add macros cmake_print_properties() and cmake_print_variables()
+
+Alexander Mohr (1):
+ VS: Detect MSVC compiler id on ARM toolchain
+
+Andreas Mohr (10):
+ Fix spelling and typos (affecting users)
+ Fix spelling and typos (affecting binary data / module messages)
+ Fix spelling and typos (non-binary)
+ Fix spelling and typos (product names)
+ FindwxWidgets: add DOC strings with usual style
+ Explain distribution of Win9x binary on all Windows versions.
+ VS10: add detailed comment about MIDL processing
+ Docs: Update description of CMAKE_(BUILD_TYPE|CONFIGURATION_TYPES)
+ Docs: Clarify that CMAKE_*_(PREFIX|SUFFIX) affect filenames
+ Docs: Clarify wording "flag used" => "flag (to|will) be used"
+
+Ben Boeckel (12):
+ set_property: Do not remove a property when APPENDing nothing
+ Tests/RunCMake: Document stripping of expected output
+ export: Error when exporting a target without a language
+ variable_watch: Store client data as pointers
+ variable_watch: Add a deleter for the client data
+ variable_watch: Match client_data when finding duplicates
+ variable_watch: Allow specifying the data to match in RemoveWatch
+ variable_watch: Prevent making extra entries in the watch map
+ variable_watch: Fix a typo in the error message
+ variable_watch: Don't share memory for callbacks
+ variable_watch: Check newValue for NULL
+ variable_watch: Add test for watching a variable multiple times
+
+Bill Hoffman (1):
+ Do not set CMAKE_MATCH_ variables when not neeeded
+
+Bjoern Thiel (1):
+ SelectLibraryConfigurations: Fix for cached <base>_LIBRARY
+
+Brad King (91):
+ VS: Separate compiler and linker PDB files (#11899, #14062)
+ MSVC: Invoke 'link' directly for executables
+ Ninja: Fix OBJECT_DIR placeholder path conversion
+ VS 10: Escape ; as %3B in preprocessor definitions (#14073)
+ CTest: Simplify ctest_* command source/build dir lookup
+ get_filename_component: Add explicit unit tests
+ get_filename_component: Add DIRECTORY option (#14091)
+ Xcode: Use explicitFileType to mark source types (#14093)
+ Check{C,CXX}CompilerFlag: Test using C locale (#14102)
+ Windows: Search '/' prefix only when cross compiling (#10994)
+ Recognize ld with toolchain prefix (#13960)
+ VS: Always initialize CMAKE_CONFIGURATION_TYPES in IDE generators
+ Begin post-2.8.11 development
+ Sanitize linker name to parse implicit link line (#14154)
+ VS: Allow /Fa to set AssemblerListingLocation (#14153)
+ Tests/IncludeDirectories: Avoid shared library with no symbols
+ if: Add test for IS_DIRECTORY
+ try_compile: Add test for bad call error cases
+ try_compile: Refactor argument processing
+ variable_watch: Add test for MODIFIED_ACCESS report
+ bootstrap: Compile KWSys SystemTools with UTIME(S|NSAT) values
+ variable_watch: Remove leftover debugging code (#14187)
+ variable_watch: Print accesses as "CMake Debug Log" messages
+ Docs: Clarify CMAKE_PARENT_LIST_FILE (#14194)
+ get_filename_component: Test ABSOLUTE of .. after root component
+ try_compile: Add signature to allow multiple SOURCES
+ enable_language: Clarify documentation
+ Split cmBootstrapCommands.cxx into two sources
+ Document CMAKE_INSTALL_PREFIX in CMAKE_SYSTEM_PREFIX_PATH
+ cmake: Document "-E tar" support for .zip (#14225)
+ FindBoost: Clarify failure on missing 'static' libs (#14235)
+ CMakeDetermineVSServicePack: Improve documentation
+ CMakeDetermineVSServicePack: Add VS 11 update 1 and 2 (#14239)
+ Document ENV syntax as a "variable" (#14245)
+ Embarcadero: Use response files only for includes, objects, and libs
+ Escape target flags taken from COMPILE_OPTIONS
+ Refactor target COMPILE_OPTIONS and COMPILE_FLAGS handling
+ CMakeDetermineVSServicePack: Add VS 11 update 3
+ Document removal of 'register' from flex/bison output
+ VS12: Find proper MSBuild for VSProjectInSubdir test
+ Fortran: Use explicit type in Fortran 90 check
+ project: Document top-level CMakeLists.txt requirement
+ ExternalProject: Document multiple COMMAND lines
+ include: Clarify variable access scope for included file
+ VS: Fix /MAP:mapfile flag mapping (#14282)
+ cmake: On configure error suggest looking at CMake*.log files
+ try_compile: Escape CMAKE_<lang>_FLAGS in test projects (#14268)
+ try_compile: Add COPY_FILE_ERROR option to capture failure
+ FindPNG: Add versioned library names for 1.6 (#14289)
+ cmake: Fix resource leak reported by cppcheck
+ VS,Xcode: Drop incorrect legacy dependency trace (#14291)
+ OS X: Add copyright notices to Darwin-*-Fortran.cmake
+ VS: Avoid leaking child process output back to IDE (#14266)
+ Fix ExportImport test cmp0022NEW build on Watcom
+ add_test: Document test name restrictions (#14298)
+ UseJava: Update notice of copyright by Kitware
+ add_custom_command: Manage backtrace memory correctly (#14299)
+ Teach compiler ABI check to tolerate try_compile COPY_FILE failure
+ Test COMPILE_DEFINITIONS target property get/set/get round-trip
+ Check*CompilerFlag: Document use of CMAKE_REQUIRED_DEFINITIONS (#14309)
+ sha2: Avoid type-punned pointer dereference (#14314)
+ VS 6: Tell BuildDepends test to tolerate ninjadep failure
+ cmMakefile: Do not track configured files known to be temporary
+ libarchive: Update README-CMake.txt for new snapshot
+ libarchive: Include cm_zlib.h to get zlib used by CMake
+ libarchive: Silence API deprecation warnings
+ libarchive: Avoid struct init with variable
+ libarchive: Remove build options not used by CMake
+ libarchive: Backport to CMake 2.8.2
+ VS10: Honor user-specified /SUBSYSTEM: flag (#14326)
+ VS10: Escape include paths in XML project files (#14331)
+ OS X: Search for SDK based on deployment target (#14324)
+ bootstrap: Do not suppress CMAKE_OSX_SYSROOT if CFLAGS have -isysroot (#14324)
+ OS X: Enable command-line build without tools in PATH
+ VS 6,7: Refactor local generators to avoid GetSourceFileWithOutput
+ cmake-gui: Fix build rules for Qt5 on Windows
+ Include cmMakefile.h before cm*Lexer.h to get stdint.h first
+ Skip CTestLimitDashJ test on Borland
+ Add RunCMake.Syntax test to cover argument parsing
+ cmListFileLexer: Fix line number after backslash in string
+ cmListFileLexer: Split normal and legacy unquoted arguments
+ cmListFileArgument: Generalize 'Quoted' bool to 'Delimeter' enum
+ Add RunCMake.Syntax test cases for command invocation styles
+ cmListFileCache: Convert CMake language parser to class
+ Warn about arguments not separated by whitespace
+ Warn about unquoted arguments that look like long brackets
+ cmListFileLexer: Modify flex output to avoid Borland warning
+ Cygwin: Avoid legacy warnings in RunCMake.* tests
+ Update version introducing CMP0021, CMP0022, and CMP0023
+ OS X: Do not default to non-existent deployment target SDK
+ Do not warn about left paren not separated by a space
+
+Christian Maaser (1):
+ VS: Add support for .NET target framework version
+
+Clinton Stimpson (12):
+ Improve documentation for CPACK_PACKAGE_INSTALL_REGISTRY_KEY.
+ Refactor how bundles and frameworks are supported.
+ Xcode: Add support for shared library versioning
+ OS X: Fix getting of CFBundle LOCATION property.
+ OS X: Add RPATH support for Mac.
+ Xcode: Add rpath support in Xcode generator.
+ OS X: Add support for @rpath in export files.
+ OS X: Add test for rpaths on Mac.
+ OS X: Improvements for getting install name of dylib.
+ OS X: Enable rpath support on Mac OS X when find_library() is used.
+ OS X: Fix regression handling frameworks for Ninja
+ OS X: If necessary, use xcrun to help find otool used to query install names.
+
+Cédric OCHS (1):
+ Xcode: Support XCODE_ATTRIBUTE_ with [variant=<config>] (#12532)
+
+Daniele E. Domenichelli (15):
+ FindGTK2: Move check for pangocairo in gtk module
+ FindGTK2: Detect gthread library
+ FindFreetype: Detect Freetype installed by GtkMM installer for win
+ FindGTK2: Do not fail on MSVC11 if vc100 libraries are available
+ FindGTK2: Add GTK2_DEFINITIONS variable
+ SelectLibraryConfigurations: Do not cache the _LIBRARY variable
+ SelectLibraryConfigurations: Use -NOTFOUND instead of copying the vars
+ FindGTK2: Use GTK_XXX_LIBRARY_DEBUG libraries in debug mode
+ FindGTK2: Append _LIBRARY to var name in _GTK2_FIND_LIBRARY
+ FindGTK2: Append _INCLUDE_DIR to var name in _GTK2_FIND_INCLUDE_DIR
+ FindGTK2: Update local changelog
+ FindGTK2: Remove GTK2_SKIP_MARK_AS_ADVANCED option
+ FindGTK2: gthread-2.0 folder does not exist
+ FindGTK2: Detect gmodule library
+ FindGTK2: Detect pangoft2 and pangoxft libraries
+
+David Coppa (1):
+ OpenBSD: Enable ELF parsing and editing (#14241)
+
+David Golub (1):
+ CPack/NSIS: Obtain path from which to uninstall from registry (#14124)
+
+Eric NOULARD (5):
+ Add support for componentized USER spec file
+ CPackRPM add mechanism to remove path from generated list of file in RPM spec.
+ CPackRPM add /usr/lib64 to the list of builtin to-be-excluded path
+ CPackRPM protect '@' character in filename processed in the spec file.
+ CPackRPM make the changelog line conform to expected format
+
+Fredrik Axelsson (1):
+ CPackWIX: Handle CPACK_PACKAGE_EXECUTABLES (#13967)
+
+Funda Wang (1):
+ FindImageMagick: Find v6 include dir (#14174)
+
+Graham Markall (2):
+ OS X: Add Fortran library version flags (#14249)
+ UseJava: Pass sources to javac using response file (#13028)
+
+Gregoire Lejeune (1):
+ Allow using Java in a cross-compilation toolchain
+
+Ian Monroe (2):
+ Ninja: use cd /D to set directory on Windows
+ CPackWIX: Fix MSI package layout regression from parent
+
+Igor Murzov (2):
+ bash-completion: Add -S,-SP options arguments completion
+ bash-completion: Fix/improve generator names extraction
+
+Jack O'Connor (1):
+ Eclipse: Add a missing space in the documentation
+
+Jason Spiro (1):
+ MinGW: Find mingw32-make included with Code::Blocks IDE (#14302)
+
+John Farrier (2):
+ VS: Add Windows Forms Support
+ VS: Add VS_GLOBAL_ROOTNAMESPACE target property
+
+Jonas Andersen (1):
+ VS: Add Resx configuration to the vcxproj file
+
+LibArchive Upstream (1):
+ libarchive 3.1.2 (reduced)
+
+Marc Bartholomaeus (4):
+ cmake-gui: Add search functions for Output window (#9733)
+ cmake-gui: Add search functions to the context menu of the Output widget
+ cmake-gui: Change shortcut of the search field from Ctrl-F to Alt-E
+ cmake-gui: Add function for going to next error message in Output window
+
+Marcel Loose (1):
+ FindCUDA: Remove duplicate entries from INCLUDE_DIRECTORIES.
+
+Marius Schamschula (1):
+ FindX11: Search in /opt/X11 for OS X 10.8 (#14232)
+
+Mathias Gaunard (1):
+ FindCUDA: CUDA_COMPUTE_BUILD_PATH uses relative paths to binary dir.
+
+Matt McCormick (1):
+ ExternalProject: Allow blank SVN_USERNAME/SVN_PASSWORD (#14128)
+
+Matthew Bentham (1):
+ Xcode: Honor CMAKE_(MODULE|SHARED)_LINKER_FLAGS_<CONFIG> (#14161)
+
+Matthew Woehlke (3):
+ UseJava.cmake: fully use cmake_parse_arguments in add_jar
+ FindProtobuf: also find pthread
+ UseJava.cmake: document add_jar compat shim
+
+Nicolas Despres (1):
+ Optimize custom command full-path dependency lookup
+
+Nils Gladitz (1):
+ Add cmake_host_system_information command
+
+Patrick Gansterer (20):
+ Add option to use stdout/stderr of original terminal in cmake --build
+ Unify the way the flags of a static library are read
+ Add support for CMAKE_STATIC_LINKER_FLAGS
+ Add CMAKE_STATIC_LINKER_FLAGS to CMakeCommonLanguageInclude
+ Add documentation for the missing CMAKE_*_LINKER_FLAGS_* variables
+ Add additonal tests for the linker flags
+ VS6: Add handling of CMAKE_*_LINKER_FLAGS_<CONFIG> variables
+ VS6: Hardcode id_machine_6 for compiler detection
+ VS10: Do not set the TargetMachine when detecting the compiler
+ VS: Set CMAKE_VS_PLATFORM_NAME for VS7 and VS71 too
+ VS: Replace ArchitectureId with PlatformName
+ VS12: Remove duplicated overload of UseFolderProperty()
+ Fix detection of WinCE SDKs with 64bit verion of CMake
+ VS: Unify how the name of the generator is specified
+ VS10: Add support for assembler code (#11536)
+ WIN: Use COFF file header header for architecture detection (#14083)
+ Improve const-correctness in cmVisualStudioGeneratorOptions
+ Fix setting of the entry point symbol for Windows CE (#14088)
+ Add support for new Windows CE compiler
+ VS11: Add support for Windows CE SDKs
+
+Paul Kunysch (1):
+ CTest: Add test for running many tests in parallel
+
+Pavel Shramov (1):
+ cmDependsC: Collapse relative include paths
+
+Petr Kmoch (5):
+ Add projectDir parameter to GenerateBuildCommand
+ VS: Create parser for Visual Studio .sln files
+ VS: Use .sln parser to build targets in subdirs with msbuild (#13623)
+ VS: Add test for building MSBuild project in subdir
+ ctest_build: Pass projectDir to GenerateBuildCommand
+
+Reid Kleckner (1):
+ Ninja: Make cmcldeps depfile output more consistent with 'ninja -t msvc'
+
+Richard Ulrich (3):
+ CPackWIX: Handle multiple shortcuts in the start menu
+ CPackWIX: Add option to specify the language(s) of the installer
+ CMakeCPack: Provide an upgrade guid for WiX
+
+Robert Maynard (9):
+ cmMakefile: Refactor AddCMakeDependFile and AddCMakeOutputFile.
+ Ninja: Track configured files so we can regenerate them.
+ cmMakefile: Track configured files so we can regenerate them (#13582)
+ Add a test to expose a bug with add_custom_command and ninja.
+ Ninja: GlobalNinjaGenerator WriteBuild and WritePhonyBuild non static
+ Ninja: Custom Command file depends don't need to exist before building
+ FindCUDA: Search for libraries in <prefix>/lib/<arch>/nvidida-current.
+ Ninja: Properly convert all paths to unix style before we do set intersection.
+ Ninja: Update BuildDepends test to verify cmcldeps depfiles.
+
+Robin Lee (1):
+ FindOpenSSL: Fix spelling of CMAKE_CROSSCOMPILING (#14075)
+
+Rolf Eike Beer (25):
+ FindOpenGL: simplify OS selection code
+ FindOpenGL: require headers to be found on non-Windows platforms (#13746)
+ Tests: create output files for all memory checkers
+ CTest: use an output file for Valgrind (#14110)
+ CTest: remove unreachable code and CTestTestMemcheckUnknown test
+ Tests: remove code duplication in CTestTestMemCheck tests
+ Tests: verify that memory checker output files are always present
+ CTest: drop suppression for gcc 2.9.6 errors from default Valgrind flags
+ Tests: add test for non-existent Valgrind suppression file
+ CTest: fix comment documenting cmBoundsCheckerParser class
+ Tests: add a test with custom options passed to valgrind
+ CTest: make sure never to report negative test times (#14132)
+ Doc: fix example for FAIL_REGULAR_EXPRESSION
+ CTest: break after first regex match on output
+ Tests: ignore Guard Malloc messages in MemChecker tests
+ CTest: avoid useless changing of directory
+ Tests: fix build of dummy memtester on AIX
+ wizard: fix warnings
+ wizard: simplify control flow
+ cmTarget: drop the unused local typedef LinkLine
+ Tests: ignore GuardMalloc messages on all Apple build, not just XCode ones
+ replace string(... MATCHES "^const$) with string(... STREQUAL "const")
+ Revert "CTest: fix pre and post test commands with spaces" (#13887)
+ FindPNG: improve library detection (#14301)
+ CTest: create one output file per memcheck (#14303)
+
+Sean McBride (1):
+ Remove some uses of obsolete 'register' storage specifier
+
+Sebastian Leske (1):
+ Document CMAKE_<LANG>_FLAGS variable (#14305)
+
+Stephen Kelly (126):
+ Make the QtAutomoc test compile with either Qt 4 or Qt 5
+ Add a test for Qt5Automoc
+ Remove an endif() followed by an if() for the same condition.
+ Fix some copyastos in the DetermineRCCompiler file.
+ Test transitive includes from setting the LINK_LIBRARIES property.
+ Test the use of target transitive compile definitions with moc.
+ Fix handling of commas in arbitrary content in genexes.
+ Fix style.
+ Remove unused marker for a variable which is now used.
+ Extract the ProcessArbitraryContent method.
+ Rename the method determining if a genex accepts arbitrary content.
+ Make it possible for any genex to have arbitrary content at the end.
+ Add the JOIN generator expression.
+ Test that linking using the debug keyword to tll works.
+ automoc: Read target defines unconditionally
+ Remove unused typedef.
+ Fix brace indentation.
+ Add EXPORT_NAME property.
+ Remove unused vector population.
+ Sublime: Honor source-level COMPILE_FLAGS property
+ Docs: cmake -G selects a "build system" generator
+ Recognize shared library files with a numerical suffix
+ FindQt4: Fix QUIET failure with Qt 5 but not Qt 4
+ Error on relative path in INCLUDE_DIRECTORIES target property.
+ include_directories: Fix handling of empty or space-only entries
+ CTest: Read CTEST_PARALLEL_LEVEL from environment
+ string: Add MAKE_C_IDENTIFIER subcommand
+ GenerateExportHeader: Add newlines to separate the compiler output.
+ GenerateExportHeader: Allow use of of this macro with MODULEs.
+ file: Add GENERATE command to produce files at generate time
+ Tests/Module/GenerateExportHeader: Test exported free-function
+ Add $<LINK_LANGUAGE> generator expression
+ GenerateExportHeader: Generate only C identifiers as defines
+ Tests/CompileDefinitions: Avoid spaces in defines on VS 6
+ Use the qt5::moc imported target instead of a variable.
+ QtAutomoc: Get the Qt version through the target link interface
+ Fix indentation.
+ VS6: Rename some variables to correspond to config values.
+ Add cmLocalGenerator::GetCompileOptions.
+ Add <LANG>_COMPILER_ID generator expressions.
+ cmTarget: Rename struct to be more re-usable.
+ cmTarget: Rename LinkInterfaceIncludeDirectoriesEntries
+ Add COMPILE_OPTIONS target property.
+ Add target_compile_options command.
+ Introduce target property <LANG>_VISIBILITY_PRESET
+ Add a COMPILE_OPTION for a VISIBILITY_INLINES_HIDDEN target property.
+ Qt4Macros: Allow specifying a TARGET in invokations of macros.
+ Introduce add_compile_options command.
+ Remove unused cmAddDefinitionsCommand::ParseDefinition method.
+ Add some spaces to the INCLUDE_DIRECTORIES documentation.
+ CLI: Suppress the unused warning if the key value pair is cached.
+ Use --sysroot when cross compiling.
+ Add missing 'seen' check for evaluating COMPILE_OPTIONS.
+ Find targets in INTERFACE_COMPILE_OPTIONS when exporting for try_compile.
+ Use a preprocessor loop to manage the valid transitive properties.
+ Generate INTERFACE_COMPILE_OPTIONS on export.
+ Genex: Fix indentation in docs.
+ cmSystemTools: Fix typo in comment.
+ Style: Don't put an else after a return.
+ Add compiler target compile options.
+ QtAutomoc: Fix handling of list separator for compile definitions.
+ QtAutomoc: Use config-dependent compile definitions and includes.
+ De-duplicate version comparison code.
+ Add generator expressions for version comparision.
+ Don't run the WarnUnusedCliUnused test on Windows.
+ Add whitespace after colons in error messages.
+ Add missing return after error report.
+ Genex: Make LINK_LANGUAGE report an error when evaluating link libraries.
+ Genex: Extend EvaluatingLinkLibraries to also check the top target name.
+ Genex: Report error if a target file is needed to evaluate link libraries.
+ Add generator expressions for compiler versions.
+ Split the GeneratorExpression test into a third part.
+ Remove unused variable.
+ Add Target API to determine if an include is a system include.
+ Store system include directories in the cmTarget.
+ Extend the cmTargetPropCommandBase interface property handling.
+ Add a SYSTEM parameter to target_include_directories (#14180)
+ Add entire link interface transitive closure as target depends.
+ Test non-IMPORTED libraries in the INTERFACE of IMPORTED libraries.
+ GenexEval: Add abstracted access to link interface for a target.
+ Introduce the LINK_ONLY generator expression.
+ Introduce the INTERFACE_LINK_LIBRARIES property.
+ Export: Generate INTERFACE_LINK_LIBRARIES property on targets.
+ TLL: Don't populate old link interface if CMP0022 is NEW.
+ Overload cmLocalGenerator::AppendDefines to add a list.
+ Add an overload of cmIDEOptions::AddDefines taking a vector of strings.
+ Refactor cmTarget::GetCompileDefinitions to use an out-vector, not a string.
+ Document some variables for deprecation control.
+ Genex: Make CMP0021 and CMP0022 usable with TARGET_POLICY
+ Revert "Use --sysroot when cross compiling."
+ Add target property debugging for COMPILE_DEFINITIONS
+ Mark qt4_use_modules and qt4_automoc as obsolete.
+ Add the INTERFACE_SYSTEM_INCLUDE_DIRECTORIES target property.
+ Don't add trailing whitespace to error message.
+ Remove TODO to uniq COMPILE_OPTIONS
+ Remove the LINK_LANGUAGE generator expression.
+ Genex: Fix $<CONFIG> with IMPORTED targets and multiple locations.
+ FindQt4: Don't use Qt component _FOUND vars before they're defined (#14286)
+ Add a convenient way to add the includes install dir to the INTERFACE.
+ Use linked frameworks as a source of include directories.
+ target_link_libraries: Add PUBLIC/PRIVATE/INTERFACE keyword signature
+ FindQt4: Re-add QAxServer to the QT_MODULES.
+ FindQt4: Populate the INTERFACE_LINK_LIBRARIES of IMPORTED targets.
+ Genex: Allow relative paths in INSTALL_INTERFACE.
+ cmTarget: Fix property name typo in docs.
+ Docs: Document file(GENERATE) CONDITION as optional.
+ Qt4Macros: Remove unneeded generate CONDITION.
+ Qt4Macros: Remove undefined varible use.
+ Qt4Macros: Simplify some variable population.
+ Docs: Document existing target property debugging options.
+ Docs: Trim trailing whitespace in generated doc.
+ Docs: Generalize and de-duplicate VISIBILITY_PREFIX docs.
+ Docs: Document variables for default visibility values.
+ Export: Fix typo of LINK_INTERFACE_LIBRARIES.
+ cmTarget: Remove duplicates when printing traces of tll signatures
+ cmTarget: Fix iface libraries and languages for static libraries.
+ Genex: Disallow LINKER_LANGUAGE only when used on a static library.
+ install: Remove error condition using INCLUDES DESTINATION without EXPORT.
+ Fix crash on export of target with empty INTERFACE_INCLUDE_DIRECTORIES.
+ Allow target commands to be invoked with no items (#14325).
+ Docs: Fix typo in CMAKE_DEBUG_TARGET_PROPERTIES
+ cmTarget: Add NAME property
+ Export: Process generator expressions from INCLUDES DESTINATION.
+ Add the ALIAS target concept for libraries and executables.
+ Revert "Add compiler target compile options."
+ Genex: Fix segfault when parsing ends with parameter expectation.
+
+Vadim Zhukov (1):
+ Add cmake_reset_check_state() macro
+
+Victor Zverovich (1):
+ Use GmakeErrorParser instead of deprecated MakeErrorParser (fixes bug 0013699)
+
+Yichao Yu (1):
+ variable_watch: Add missing string enumeration entry (#14188)
+
+Ömer Fadıl USTA (3):
+ ccmake: Add missing initializers reported by cppcheck
+ libarchive: Fix free() order to avoid accessing freed memory
+ cmcurl: Fix resource leak reported by cppcheck
+
Changes in CMake 2.8.11.2 (since 2.8.11.1)
------------------------------------------
Alex Neundorf (1):
diff --git a/Docs/bash-completion/cmake b/Docs/bash-completion/cmake
index 5f33c09..59e0298 100644
--- a/Docs/bash-completion/cmake
+++ b/Docs/bash-completion/cmake
@@ -111,12 +111,12 @@ _cmake()
;;
--help-command)
COMPREPLY=( $( compgen -W '$( cmake --help-command-list 2>/dev/null|
- tail -n +2 )' -- "$cur" ) )
+ grep -v "^cmake version " )' -- "$cur" ) )
return
;;
--help-module)
COMPREPLY=( $( compgen -W '$( cmake --help-module-list 2>/dev/null|
- tail -n +2 )' -- "$cur" ) )
+ grep -v "^cmake version " )' -- "$cur" ) )
return
;;
--help-policy)
@@ -126,12 +126,12 @@ _cmake()
;;
--help-property)
COMPREPLY=( $( compgen -W '$( cmake --help-property-list \
- 2>/dev/null | tail -n +2 )' -- "$cur" ) )
+ 2>/dev/null | grep -v "^cmake version " )' -- "$cur" ) )
return
;;
--help-variable)
COMPREPLY=( $( compgen -W '$( cmake --help-variable-list \
- 2>/dev/null | tail -n +2 )' -- "$cur" ) )
+ 2>/dev/null | grep -v "^cmake version " )' -- "$cur" ) )
return
;;
esac
diff --git a/Docs/bash-completion/cpack b/Docs/bash-completion/cpack
index 51638c5..9ab6048 100644
--- a/Docs/bash-completion/cpack
+++ b/Docs/bash-completion/cpack
@@ -20,7 +20,7 @@ _cpack()
-D)
[[ $cur == *=* ]] && return # no completion for values
COMPREPLY=( $( compgen -W '$( cpack --help-variable-list \
- 2>/dev/null | tail -n +2 )' -S = -- "$cur" ) )
+ 2>/dev/null | grep -v "^cpack version " )' -S = -- "$cur" ) )
compopt -o nospace
return
;;
@@ -38,12 +38,12 @@ _cpack()
;;
--help-command)
COMPREPLY=( $( compgen -W '$( cpack --help-command-list 2>/dev/null|
- tail -n +2 )' -- "$cur" ) )
+ grep -v "^cpack version " )' -- "$cur" ) )
return
;;
--help-variable)
COMPREPLY=( $( compgen -W '$( cpack --help-variable-list \
- 2>/dev/null | tail -n +2 )' -- "$cur" ) )
+ 2>/dev/null | grep -v "^cpack version " )' -- "$cur" ) )
return
;;
esac
diff --git a/Docs/bash-completion/ctest b/Docs/bash-completion/ctest
index 7433d3d..25cb998 100644
--- a/Docs/bash-completion/ctest
+++ b/Docs/bash-completion/ctest
@@ -63,7 +63,7 @@ _ctest()
;;
--help-command)
COMPREPLY=( $( compgen -W '$( ctest --help-command-list 2>/dev/null|
- tail -n +2 )' -- "$cur" ) )
+ grep -v "^ctest version " )' -- "$cur" ) )
return
;;
esac
diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake
index ebd9ce0..8ca5334 100644
--- a/Modules/CMakeDetermineCompilerId.cmake
+++ b/Modules/CMakeDetermineCompilerId.cmake
@@ -133,7 +133,11 @@ Id flags: ${testflags}
endif()
if(CMAKE_VS_WINCE_VERSION)
set(id_entrypoint "mainACRTStartup")
- set(id_subsystem 9)
+ if("${vs_version}" VERSION_LESS 9)
+ set(id_subsystem 9)
+ else()
+ set(id_subsystem 8)
+ endif()
else()
set(id_subsystem 1)
endif()
diff --git a/Modules/FindCUDA.cmake b/Modules/FindCUDA.cmake
index 0390ae4..8270ad4 100644
--- a/Modules/FindCUDA.cmake
+++ b/Modules/FindCUDA.cmake
@@ -1292,22 +1292,7 @@ macro(CUDA_WRAP_SRCS cuda_target format generated_files)
# Make sure the build system knows the file is generated.
set_source_files_properties(${generated_file} PROPERTIES GENERATED TRUE)
- # Don't add the object file to the list of generated files if we are using
- # visual studio and we are attaching the build rule to the cuda file. VS
- # will add our object file to the linker automatically for us.
- set(cuda_add_generated_file TRUE)
-
- if(NOT compile_to_ptx AND CMAKE_GENERATOR MATCHES "Visual Studio" AND CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE)
- # Visual Studio 8 crashes when you close the solution when you don't add the object file.
- if(NOT CMAKE_GENERATOR MATCHES "Visual Studio 8")
- #message("Not adding ${generated_file}")
- set(cuda_add_generated_file FALSE)
- endif()
- endif()
-
- if(cuda_add_generated_file)
- list(APPEND _cuda_wrap_generated_files ${generated_file})
- endif()
+ list(APPEND _cuda_wrap_generated_files ${generated_file})
# Add the other files that we want cmake to clean on a cleanup ##########
list(APPEND CUDA_ADDITIONAL_CLEAN_FILES "${cmake_dependency_file}")
diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake
index 8514164..0c246a1 100644
--- a/Modules/FindHDF5.cmake
+++ b/Modules/FindHDF5.cmake
@@ -289,27 +289,13 @@ if( NOT HDF5_FOUND )
ENV HDF5_ROOT
PATH_SUFFIXES lib Lib )
select_library_configurations( HDF5_${LIB} )
- # even though we adjusted the individual library names in
- # select_library_configurations, we still need to distinguish
- # between debug and release variants because HDF5_LIBRARIES will
- # need to specify different lists for debug and optimized builds.
- # We can't just use the HDF5_${LIB}_LIBRARY variable (which was set
- # up by the selection macro above) because it may specify debug and
- # optimized variants for a particular library, but a list of
- # libraries is allowed to specify debug and optimized only once.
- list( APPEND HDF5_${LANGUAGE}_LIBRARIES_DEBUG
- ${HDF5_${LIB}_LIBRARY_DEBUG} )
- list( APPEND HDF5_${LANGUAGE}_LIBRARIES_RELEASE
- ${HDF5_${LIB}_LIBRARY_RELEASE} )
+ list(APPEND HDF5_${LANGUAGE}_LIBRARIES ${HDF5_${LIB}_LIBRARY})
endforeach()
list( APPEND HDF5_LIBRARY_DIRS ${HDF5_${LANGUAGE}_LIBRARY_DIRS} )
# Append the libraries for this language binding to the list of all
# required libraries.
- list( APPEND HDF5_LIBRARIES_DEBUG
- ${HDF5_${LANGUAGE}_LIBRARIES_DEBUG} )
- list( APPEND HDF5_LIBRARIES_RELEASE
- ${HDF5_${LANGUAGE}_LIBRARIES_RELEASE} )
+ list(APPEND HDF5_LIBRARIES ${HDF5_${LANGUAGE}_LIBRARIES})
endforeach()
# We may have picked up some duplicates in various lists during the above
@@ -329,30 +315,10 @@ if( NOT HDF5_FOUND )
if( HDF5_INCLUDE_DIRS )
_remove_duplicates_from_beginning( HDF5_INCLUDE_DIRS )
endif()
- if( HDF5_LIBRARIES_DEBUG )
- _remove_duplicates_from_beginning( HDF5_LIBRARIES_DEBUG )
- endif()
- if( HDF5_LIBRARIES_RELEASE )
- _remove_duplicates_from_beginning( HDF5_LIBRARIES_RELEASE )
- endif()
if( HDF5_LIBRARY_DIRS )
_remove_duplicates_from_beginning( HDF5_LIBRARY_DIRS )
endif()
- # Construct the complete list of HDF5 libraries with debug and optimized
- # variants when the generator supports them.
- if( CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE )
- set( HDF5_LIBRARIES )
- foreach( _lib ${HDF5_LIBRARIES_DEBUG} )
- list( APPEND HDF5_LIBRARIES debug ${_lib} )
- endforeach()
- foreach( _lib ${HDF5_LIBRARIES_RELEASE} )
- list( APPEND HDF5_LIBRARIES optimized ${_lib} )
- endforeach()
- else()
- set( HDF5_LIBRARIES ${HDF5_LIBRARIES_RELEASE} )
- endif()
-
# If the HDF5 include directory was found, open H5pubconf.h to determine if
# HDF5 was compiled with parallel IO support
set( HDF5_IS_PARALLEL FALSE )
diff --git a/Modules/FindPNG.cmake b/Modules/FindPNG.cmake
index 33c2971..a2577d2 100644
--- a/Modules/FindPNG.cmake
+++ b/Modules/FindPNG.cmake
@@ -58,15 +58,19 @@ if(ZLIB_FOUND)
list(APPEND PNG_NAMES png${v} libpng${v})
list(APPEND PNG_NAMES_DEBUG png${v}d libpng${v}d)
endforeach()
-message(STATUS "PNG r: ${PNG_NAMES} d: ${PNG_NAMES_DEBUG}")
unset(_PNG_VERSION_SUFFIXES)
- find_library(PNG_LIBRARY_RELEASE NAMES ${PNG_NAMES})
- find_library(PNG_LIBRARY_DEBUG NAMES ${PNG_NAMES_DEBUG})
+ # For compatiblity with versions prior to this multi-config search, honor
+ # any PNG_LIBRARY that is already specified and skip the search.
+ if(NOT PNG_LIBRARY)
+ find_library(PNG_LIBRARY_RELEASE NAMES ${PNG_NAMES})
+ find_library(PNG_LIBRARY_DEBUG NAMES ${PNG_NAMES_DEBUG})
+ include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
+ select_library_configurations(PNG)
+ mark_as_advanced(PNG_LIBRARY_RELEASE PNG_LIBRARY_DEBUG)
+ endif()
unset(PNG_NAMES)
unset(PNG_NAMES_DEBUG)
- include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
- select_library_configurations(PNG)
# Set by select_library_configurations(), but we want the one from
# find_package_handle_standard_args() below.
unset(PNG_FOUND)
diff --git a/Modules/FortranCInterface/Detect.cmake b/Modules/FortranCInterface/Detect.cmake
index 798c44c..afeb9c5 100644
--- a/Modules/FortranCInterface/Detect.cmake
+++ b/Modules/FortranCInterface/Detect.cmake
@@ -49,7 +49,7 @@ unset(FortranCInterface_COMPILED CACHE)
# Locate the sample project executable.
if(FortranCInterface_COMPILED)
find_program(FortranCInterface_EXE
- NAMES FortranCInterface
+ NAMES FortranCInterface${CMAKE_EXECUTABLE_SUFFIX}
PATHS ${FortranCInterface_BINARY_DIR} ${FortranCInterface_BINARY_DIR}/Debug
NO_DEFAULT_PATH
)
diff --git a/Modules/Platform/Darwin.cmake b/Modules/Platform/Darwin.cmake
index 0930880..72844b5 100644
--- a/Modules/Platform/Darwin.cmake
+++ b/Modules/Platform/Darwin.cmake
@@ -294,6 +294,15 @@ endif()
# set up the default search directories for frameworks
set(CMAKE_SYSTEM_FRAMEWORK_PATH
~/Library/Frameworks
+ )
+if(_CMAKE_OSX_SYSROOT_PATH)
+ list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH
+ ${_CMAKE_OSX_SYSROOT_PATH}/Library/Frameworks
+ ${_CMAKE_OSX_SYSROOT_PATH}/Network/Library/Frameworks
+ ${_CMAKE_OSX_SYSROOT_PATH}/System/Library/Frameworks
+ )
+endif()
+list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH
/Library/Frameworks
/Network/Library/Frameworks
/System/Library/Frameworks)
diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake
index 685638a..7036ba0 100644
--- a/Modules/Platform/Windows-MSVC.cmake
+++ b/Modules/Platform/Windows-MSVC.cmake
@@ -124,8 +124,15 @@ endif()
set(CMAKE_BUILD_TYPE_INIT Debug)
if(WINCE)
- string(TOUPPER "${MSVC_C_ARCHITECTURE_ID}" _MSVC_C_ARCHITECTURE_ID_UPPER)
- string(TOUPPER "${MSVC_CXX_ARCHITECTURE_ID}" _MSVC_CXX_ARCHITECTURE_ID_UPPER)
+ foreach(lang C CXX)
+ set(_MSVC_${lang}_ARCHITECTURE_FAMILY "${MSVC_${lang}_ARCHITECTURE_ID}")
+ if(_MSVC_${lang}_ARCHITECTURE_FAMILY STREQUAL "THUMB")
+ set(_MSVC_${lang}_ARCHITECTURE_FAMILY "ARM")
+ elseif(_MSVC_${lang}_ARCHITECTURE_FAMILY MATCHES "^SH")
+ set(_MSVC_${lang}_ARCHITECTURE_FAMILY "SHx")
+ endif()
+ string(TOUPPER "${_MSVC_${lang}_ARCHITECTURE_FAMILY}" _MSVC_${lang}_ARCHITECTURE_FAMILY_UPPER)
+ endforeach()
if("${CMAKE_SYSTEM_VERSION}" MATCHES "^([0-9]+)\\.([0-9]+)")
math(EXPR _CE_VERSION "${CMAKE_MATCH_1}*100 + ${CMAKE_MATCH_2}")
@@ -136,15 +143,15 @@ if(WINCE)
endif()
set(_PLATFORM_DEFINES "/D_WIN32_WCE=0x${_CE_VERSION} /DUNDER_CE")
- set(_PLATFORM_DEFINES_C " /D${MSVC_C_ARCHITECTURE_ID} /D_${_MSVC_C_ARCHITECTURE_ID_UPPER}_")
- set(_PLATFORM_DEFINES_CXX " /D${MSVC_CXX_ARCHITECTURE_ID} /D_${_MSVC_CXX_ARCHITECTURE_ID_UPPER}_")
+ set(_PLATFORM_DEFINES_C " /D${_MSVC_C_ARCHITECTURE_FAMILY} /D_${_MSVC_C_ARCHITECTURE_FAMILY_UPPER}_")
+ set(_PLATFORM_DEFINES_CXX " /D${_MSVC_CXX_ARCHITECTURE_FAMILY} /D_${_MSVC_CXX_ARCHITECTURE_FAMILY_UPPER}_")
set(_RTC1 "")
set(_FLAGS_CXX " /GR /EHsc")
set(CMAKE_C_STANDARD_LIBRARIES_INIT "coredll.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib")
set(CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT} /NODEFAULTLIB:libc.lib /NODEFAULTLIB:oldnames.lib")
- if (MSVC_VERSION LESS 1500)
+ if (MSVC_VERSION LESS 1600)
set(CMAKE_C_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT} corelibc.lib")
endif ()
else()
@@ -231,7 +238,6 @@ macro(__windows_compiler_msvc lang)
set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE
"<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <FLAGS> <DEFINES> /FoNUL /FAs /Fa<ASSEMBLY_SOURCE> /c <SOURCE>${CMAKE_END_TEMP_FILE}")
- set(CMAKE_${lang}_COMPILER_LINKER_OPTION_FLAG_EXECUTABLE "/link")
set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS 1)
set(CMAKE_${lang}_LINK_EXECUTABLE
"${_CMAKE_VS_LINK_EXE}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index be882a5..e7d0bb7 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -1,6 +1,6 @@
# CMake version number components.
set(CMake_VERSION_MAJOR 2)
set(CMake_VERSION_MINOR 8)
-set(CMake_VERSION_PATCH 11)
-set(CMake_VERSION_TWEAK 20130828)
+set(CMake_VERSION_PATCH 12)
+set(CMake_VERSION_TWEAK 20131007)
#set(CMake_VERSION_RC 1)
diff --git a/Source/CTest/cmParseGTMCoverage.cxx b/Source/CTest/cmParseGTMCoverage.cxx
index 5dfcfe5..6b4adb4 100644
--- a/Source/CTest/cmParseGTMCoverage.cxx
+++ b/Source/CTest/cmParseGTMCoverage.cxx
@@ -98,7 +98,7 @@ bool cmParseGTMCoverage::ReadMCovFile(const char* file)
bool found = this->FindMumpsFile(routine, filepath);
if(found)
{
- int lineoffset;
+ int lineoffset = 0;
if(this->FindFunctionInMumpsFile(filepath,
function,
lineoffset))
@@ -106,8 +106,8 @@ bool cmParseGTMCoverage::ReadMCovFile(const char* file)
cmCTestCoverageHandlerContainer::SingleFileCoverageVector&
coverageVector = this->Coverage.TotalCoverage[filepath];
coverageVector[lineoffset + linenumber] += count;
+ lastoffset = lineoffset;
}
- lastoffset = lineoffset;
}
else
{
diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx
index 2c2d377..c4f6216 100644
--- a/Source/cmDocumentVariables.cxx
+++ b/Source/cmDocumentVariables.cxx
@@ -19,7 +19,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"The full path to the cmake executable.",
"This is the full path to the CMake executable cmake which is "
"useful from custom commands that want to use the cmake -E "
- "option for portable system commands. "
+ "option for portable system commands. "
"(e.g. /usr/local/bin/cmake", false,
"Variables that Provide Information");
cm->DefineProperty
@@ -27,14 +27,14 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"The path to the top level of the build tree.",
"This is the full path to the top level of the current CMake "
"build tree. For an in-source build, this would be the same "
- "as CMAKE_SOURCE_DIR. ", false,
+ "as CMAKE_SOURCE_DIR.", false,
"Variables that Provide Information");
cm->DefineProperty
("CMAKE_SOURCE_DIR", cmProperty::VARIABLE,
"The path to the top level of the source tree.",
"This is the full path to the top level of the current CMake "
"source tree. For an in-source build, this would be the same "
- "as CMAKE_BINARY_DIR. ", false,
+ "as CMAKE_BINARY_DIR.", false,
"Variables that Provide Information");
cm->DefineProperty
("CMAKE_CURRENT_BINARY_DIR", cmProperty::VARIABLE,
@@ -42,7 +42,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"This the full path to the build directory that is currently "
"being processed by cmake. Each directory added by "
"add_subdirectory will create a binary directory in the build "
- "tree, and as it is being processed this variable will be set. "
+ "tree, and as it is being processed this variable will be set. "
"For in-source builds this is the current source directory "
"being processed.", false,
"Variables that Provide Information");
@@ -100,7 +100,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
cm->DefineProperty
("CMAKE_SCRIPT_MODE_FILE", cmProperty::VARIABLE,
- "Full path to the -P script file currently being processed. ",
+ "Full path to the -P script file currently being processed.",
"When run in -P script mode, CMake sets this variable to the full "
"path of the script file. When run to configure a CMakeLists.txt "
"file, this variable is not set.", false,
@@ -108,14 +108,14 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
cm->DefineProperty
("CMAKE_ARGC", cmProperty::VARIABLE,
- "Number of command line arguments passed to CMake in script mode. ",
+ "Number of command line arguments passed to CMake in script mode.",
"When run in -P script mode, CMake sets this variable to the number "
- "of command line arguments. See also CMAKE_ARGV0, 1, 2 ... ", false,
+ "of command line arguments. See also CMAKE_ARGV0, 1, 2 ...", false,
"Variables that Provide Information");
cm->DefineProperty
("CMAKE_ARGV0", cmProperty::VARIABLE,
- "Command line argument passed to CMake in script mode. ",
+ "Command line argument passed to CMake in script mode.",
"When run in -P script mode, CMake sets this variable to "
"the first command line argument. It then also sets CMAKE_ARGV1, "
"CMAKE_ARGV2, ... and so on, up to the number of command line arguments "
@@ -133,7 +133,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"and for Visual Studio 7 it set to devenv. For "
"NMake Makefiles the value is nmake. This can be "
"useful for adding special flags and commands based"
- " on the final build environment. ", false,
+ " on the final build environment.", false,
"Variables that Provide Information");
cm->DefineProperty
("CMAKE_CROSSCOMPILING", cmProperty::VARIABLE,
@@ -393,7 +393,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
cm->DefineProperty
("CMAKE_SOURCE_DIR", cmProperty::VARIABLE,
"Source directory for project.",
- "This is the top level source directory for the project. "
+ "This is the top level source directory for the project. "
"It corresponds to the source directory given to "
"cmake-gui or ccmake.",false,
"Variables that Provide Information");
@@ -419,7 +419,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("PROJECT_NAME", cmProperty::VARIABLE,
"Name of the project given to the project command.",
"This is the name given to the most "
- "recent PROJECT command. ",false,
+ "recent PROJECT command.",false,
"Variables that Provide Information");
cm->DefineProperty
("PROJECT_SOURCE_DIR", cmProperty::VARIABLE,
@@ -550,7 +550,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"By default, automoc behaves exactly as described in the documentation "
"of the AUTOMOC target property. "
"When set to TRUE, it accepts more input and tries to find the correct "
- "input file for moc even if it differs from the documented behaviour. "
+ "input file for moc even if it differs from the documented behaviour. "
"In this mode it e.g. also checks whether a header file is intended to "
"be processed by moc when a \"foo.moc\" file has been included.\n"
"Relaxed mode has to be enabled for KDE4 compatibility.",
@@ -563,7 +563,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"If an install() command is used without the COMPONENT argument, "
"these files will be grouped into a default component. The name of this "
"default install component will be taken from this variable. "
- "It defaults to \"Unspecified\". ",
+ "It defaults to \"Unspecified\".",
false,
"Variables That Change Behavior");
@@ -591,9 +591,9 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_CONFIGURATION_TYPES", cmProperty::VARIABLE,
"Specifies the available build types on multi-config generators.",
"This specifies what build types (configurations) will be available "
- "such as Debug, Release, RelWithDebInfo etc. "
+ "such as Debug, Release, RelWithDebInfo etc. "
"This has reasonable defaults on most platforms, "
- "but can be extended to provide other build types. "
+ "but can be extended to provide other build types. "
"See also CMAKE_BUILD_TYPE for details of managing configuration data, "
"and CMAKE_CFG_INTDIR."
,false,
@@ -604,20 +604,20 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"Specifies the build type on single-configuration generators.",
"This statically specifies what build type (configuration) "
"will be built in this build tree. Possible values are "
- "empty, Debug, Release, RelWithDebInfo and MinSizeRel. "
+ "empty, Debug, Release, RelWithDebInfo and MinSizeRel. "
"This variable is only meaningful to single-configuration generators "
"(such as make and Ninja) i.e. "
"those which choose a single configuration "
"when CMake runs to generate a build tree as opposed to "
"multi-configuration generators which offer selection of the build "
- "configuration within the generated build environment. "
+ "configuration within the generated build environment. "
"There are many per-config properties and variables "
"(usually following clean SOME_VAR_<CONFIG> order conventions), "
"such as CMAKE_C_FLAGS_<CONFIG>, specified as uppercase: "
- "CMAKE_C_FLAGS_[DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL]. "
+ "CMAKE_C_FLAGS_[DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL]. "
"For example, in a build tree configured "
"to build type Debug, CMake will see to having "
- "CMAKE_C_FLAGS_DEBUG settings get added to the CMAKE_C_FLAGS settings. "
+ "CMAKE_C_FLAGS_DEBUG settings get added to the CMAKE_C_FLAGS settings. "
"See also CMAKE_CONFIGURATION_TYPES."
,false,
"Variables That Change Behavior");
@@ -643,10 +643,10 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"directories. This variable defaults to /usr/local"
" on UNIX and c:/Program Files on Windows.\n"
"On UNIX one can use the DESTDIR mechanism in order"
- " to relocate the whole installation. "
+ " to relocate the whole installation. "
"DESTDIR means DESTination DIRectory. It is "
"commonly used by makefile users "
- "in order to install software at non-default location. "
+ "in order to install software at non-default location. "
"It is usually invoked like this:\n"
" make DESTDIR=/home/john install\n"
"which will install the concerned software using the"
@@ -665,10 +665,10 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
cm->DefineProperty
("CMAKE_SKIP_INSTALL_ALL_DEPENDENCY", cmProperty::VARIABLE,
"Don't make the install target depend on the all target.",
- "By default, the \"install\" target depends on the \"all\" target. "
+ "By default, the \"install\" target depends on the \"all\" target. "
"This has the effect, that when \"make install\" is invoked or INSTALL "
"is built, first the \"all\" target is built, then the installation "
- "starts. "
+ "starts. "
"If CMAKE_SKIP_INSTALL_ALL_DEPENDENCY is set to TRUE, this dependency "
"is not created, so the installation process will start immediately, "
"independent from whether the project has been completely built or not."
@@ -769,9 +769,9 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"directories contain incompatible but possibly linkable libraries. For "
"example, on cross-compiled cluster environments, this allows a user to "
"ignore directories containing libraries meant for the front-end "
- "machine that modules like FindX11 (and others) would normally search. "
+ "machine that modules like FindX11 (and others) would normally search. "
"By default this contains a list of directories containing incompatible "
- "binaries for the host system. "
+ "binaries for the host system. "
"See also CMAKE_SYSTEM_PREFIX_PATH, CMAKE_SYSTEM_LIBRARY_PATH, "
"CMAKE_SYSTEM_INCLUDE_PATH, and CMAKE_SYSTEM_PROGRAM_PATH.", false,
"Variables That Change Behavior");
@@ -785,11 +785,11 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"directories contain incompatible but possibly linkable libraries. For "
"example, on cross-compiled cluster environments, this allows a user to "
"ignore directories containing libraries meant for the front-end "
- "machine that modules like FindX11 (and others) would normally search. "
- "By default this is empty; it is intended to be set by the project. "
+ "machine that modules like FindX11 (and others) would normally search. "
+ "By default this is empty; it is intended to be set by the project. "
"Note that CMAKE_IGNORE_PATH takes a list of directory names, NOT a "
"list of prefixes. If you want to ignore paths under prefixes (bin, "
- "include, lib, etc.), you'll need to specify them explicitly. "
+ "include, lib, etc.), you'll need to specify them explicitly. "
"See also CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH, CMAKE_INCLUDE_PATH, "
"CMAKE_PROGRAM_PATH.", false,
"Variables That Change Behavior");
@@ -836,7 +836,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"although that package is installed.\n"
"This switch should be used during the initial CMake run. Otherwise if "
"the package has already been found in a previous CMake run, the "
- "variables which have been stored in the cache will still be there. "
+ "variables which have been stored in the cache will still be there. "
"In that case it is recommended to remove the cache variables for "
"this package from the cache using the cache editor or cmake -U", false,
"Variables That Change Behavior");
@@ -923,7 +923,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
cm->DefineProperty
("CMAKE_COLOR_MAKEFILE", cmProperty::VARIABLE,
"Enables color output when using the Makefile generator.",
- "When enabled, the generated Makefiles will produce colored output. "
+ "When enabled, the generated Makefiles will produce colored output. "
"Default is ON.",false,
"Variables That Change Behavior");
@@ -975,7 +975,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"Name of system cmake is compiling for.",
"This variable is the composite of CMAKE_SYSTEM_NAME "
"and CMAKE_SYSTEM_VERSION, like this "
- "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_VERSION}. "
+ "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_VERSION}. "
"If CMAKE_SYSTEM_VERSION is not set, then "
"CMAKE_SYSTEM is the same as CMAKE_SYSTEM_NAME.",false,
"Variables That Describe the System");
@@ -1237,7 +1237,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_INSTALL_RPATH", cmProperty::VARIABLE,
"The rpath to use for installed targets.",
"A semicolon-separated list specifying the rpath "
- "to use in installed targets (for platforms that support it). "
+ "to use in installed targets (for platforms that support it). "
"This is used to initialize the target property "
"INSTALL_RPATH for all targets.",
false,
@@ -1248,7 +1248,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"Add paths to linker search and installed rpath.",
"CMAKE_INSTALL_RPATH_USE_LINK_PATH is a boolean that if set to true "
"will append directories in the linker search path and outside the "
- "project to the INSTALL_RPATH. "
+ "project to the INSTALL_RPATH. "
"This is used to initialize the target property "
"INSTALL_RPATH_USE_LINK_PATH for all targets.",
false,
@@ -1267,7 +1267,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_Fortran_FORMAT", cmProperty::VARIABLE,
"Set to FIXED or FREE to indicate the Fortran source layout.",
"This variable is used to initialize the Fortran_FORMAT "
- "property on all the targets. "
+ "property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
@@ -1276,7 +1276,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_Fortran_MODULE_DIRECTORY", cmProperty::VARIABLE,
"Fortran module output directory.",
"This variable is used to initialize the "
- "Fortran_MODULE_DIRECTORY property on all the targets. "
+ "Fortran_MODULE_DIRECTORY property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
@@ -1285,7 +1285,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_LIBRARY_OUTPUT_DIRECTORY", cmProperty::VARIABLE,
"Where to put all the LIBRARY targets when built.",
"This variable is used to initialize the "
- "LIBRARY_OUTPUT_DIRECTORY property on all the targets. "
+ "LIBRARY_OUTPUT_DIRECTORY property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
@@ -1294,7 +1294,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_ARCHIVE_OUTPUT_DIRECTORY", cmProperty::VARIABLE,
"Where to put all the ARCHIVE targets when built.",
"This variable is used to initialize the "
- "ARCHIVE_OUTPUT_DIRECTORY property on all the targets. "
+ "ARCHIVE_OUTPUT_DIRECTORY property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
@@ -1303,7 +1303,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_RUNTIME_OUTPUT_DIRECTORY", cmProperty::VARIABLE,
"Where to put all the RUNTIME targets when built.",
"This variable is used to initialize the "
- "RUNTIME_OUTPUT_DIRECTORY property on all the targets. "
+ "RUNTIME_OUTPUT_DIRECTORY property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
@@ -1312,7 +1312,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_PDB_OUTPUT_DIRECTORY", cmProperty::VARIABLE,
"Where to put all the MS debug symbol files from linker.",
"This variable is used to initialize the "
- "PDB_OUTPUT_DIRECTORY property on all the targets. "
+ "PDB_OUTPUT_DIRECTORY property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
@@ -1330,7 +1330,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_AUTOMOC", cmProperty::VARIABLE,
"Whether to handle moc automatically for Qt targets.",
"This variable is used to initialize the "
- "AUTOMOC property on all the targets. "
+ "AUTOMOC property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
@@ -1339,7 +1339,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_AUTOMOC_MOC_OPTIONS", cmProperty::VARIABLE,
"Additional options for moc when using automoc (see CMAKE_AUTOMOC).",
"This variable is used to initialize the "
- "AUTOMOC_MOC_OPTIONS property on all the targets. "
+ "AUTOMOC_MOC_OPTIONS property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
@@ -1473,7 +1473,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
cm->DefineProperty
("CMAKE_LIBRARY_PATH_FLAG", cmProperty::VARIABLE,
"The flag to be used to add a library search path to a compiler.",
- "The flag will be used to specify a library directory to the compiler. "
+ "The flag will be used to specify a library directory to the compiler. "
"On most compilers this is \"-L\".",false,
"Variables that Control the Build");
cm->DefineProperty
@@ -1500,7 +1500,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_USE_RELATIVE_PATHS", cmProperty::VARIABLE,
"Use relative paths (May not work!).",
"If this is set to TRUE, then CMake will use "
- "relative paths between the source and binary tree. "
+ "relative paths between the source and binary tree. "
"This option does not work for more complicated "
"projects, and relative paths are used when possible. "
"In general, it is not possible to move CMake generated"
@@ -1534,7 +1534,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_LINK_INTERFACE_LIBRARIES", cmProperty::VARIABLE,
"Default value for LINK_INTERFACE_LIBRARIES of targets.",
"This variable is used to initialize the "
- "LINK_INTERFACE_LIBRARIES property on all the targets. "
+ "LINK_INTERFACE_LIBRARIES property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
@@ -1542,7 +1542,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_WIN32_EXECUTABLE", cmProperty::VARIABLE,
"Default value for WIN32_EXECUTABLE of targets.",
"This variable is used to initialize the "
- "WIN32_EXECUTABLE property on all the targets. "
+ "WIN32_EXECUTABLE property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
@@ -1550,7 +1550,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_MACOSX_BUNDLE", cmProperty::VARIABLE,
"Default value for MACOSX_BUNDLE of targets.",
"This variable is used to initialize the "
- "MACOSX_BUNDLE property on all the targets. "
+ "MACOSX_BUNDLE property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
@@ -1558,7 +1558,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_POSITION_INDEPENDENT_CODE", cmProperty::VARIABLE,
"Default value for POSITION_INDEPENDENT_CODE of targets.",
"This variable is used to initialize the "
- "POSITION_INDEPENDENT_CODE property on all the targets. "
+ "POSITION_INDEPENDENT_CODE property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
@@ -1566,7 +1566,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_<LANG>_VISIBILITY_PRESET", cmProperty::VARIABLE,
"Default value for <LANG>_VISIBILITY_PRESET of targets.",
"This variable is used to initialize the "
- "<LANG>_VISIBILITY_PRESET property on all the targets. "
+ "<LANG>_VISIBILITY_PRESET property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
@@ -1574,7 +1574,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_VISIBILITY_INLINES_HIDDEN", cmProperty::VARIABLE,
"Default value for VISIBILITY_INLINES_HIDDEN of targets.",
"This variable is used to initialize the "
- "VISIBILITY_INLINES_HIDDEN property on all the targets. "
+ "VISIBILITY_INLINES_HIDDEN property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
@@ -1595,7 +1595,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
cm->DefineProperty
("CMAKE_<LANG>_COMPILER", cmProperty::VARIABLE,
"The full path to the compiler for LANG.",
- "This is the command that will be used as the <LANG> compiler. "
+ "This is the command that will be used as the <LANG> compiler. "
"Once set, you can not change this variable.",false,
"Variables for Languages");
@@ -1671,7 +1671,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_COMPILER_IS_GNU<LANG>", cmProperty::VARIABLE,
"True if the compiler is GNU.",
"If the selected <LANG> compiler is the GNU "
- "compiler then this is TRUE, if not it is FALSE. "
+ "compiler then this is TRUE, if not it is FALSE. "
"Unlike the other per-language variables, this uses the GNU syntax for "
"identifying languages instead of the CMake syntax. Recognized values of "
"the <LANG> suffix are:\n"
@@ -1709,7 +1709,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
cm->DefineProperty
("CMAKE_<LANG>_FLAGS_RELWITHDEBINFO", cmProperty::VARIABLE,
"Flags for RelWithDebInfo type or configuration.",
- "<LANG> flags used when CMAKE_BUILD_TYPE is RelWithDebInfo. "
+ "<LANG> flags used when CMAKE_BUILD_TYPE is RelWithDebInfo. "
"Short for Release With Debug Information.",false,
"Variables for Languages");
@@ -1773,7 +1773,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
("CMAKE_<LANG>_IGNORE_EXTENSIONS", cmProperty::VARIABLE,
"File extensions that should be ignored by the build.",
"This is a list of file extensions that may be "
- "part of a project for a given language but are not compiled. ",false,
+ "part of a project for a given language but are not compiled.",false,
"Variables for Languages");
cm->DefineProperty
diff --git a/Source/cmDocumentation.cxx b/Source/cmDocumentation.cxx
index 4edacbb..b19d847 100644
--- a/Source/cmDocumentation.cxx
+++ b/Source/cmDocumentation.cxx
@@ -829,10 +829,10 @@ int cmDocumentation::GetStructuredDocFromFile(
std::vector<cmDocumentationEntry>& commands,
cmake* cm)
{
- typedef enum sdoce {
+ enum sdoce {
SDOC_NONE, SDOC_MODULE, SDOC_MACRO, SDOC_FUNCTION, SDOC_VARIABLE,
SDOC_SECTION,
- SDOC_UNKNOWN} sdoc_t;
+ SDOC_UNKNOWN};
int nbDocItemFound = 0;
int docCtxIdx = 0;
std::vector<int> docContextStack(60);
diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx
index c97d4ff..c8b4a79 100644
--- a/Source/cmExportInstallFileGenerator.cxx
+++ b/Source/cmExportInstallFileGenerator.cxx
@@ -162,7 +162,7 @@ bool cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os)
if (require2_8_12)
{
- this->GenerateRequiredCMakeVersion(os, "2.8.11.20130626");
+ this->GenerateRequiredCMakeVersion(os, "2.8.12");
}
// Now load per-configuration properties for them.
diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx
index e962313..d73c72c 100644
--- a/Source/cmGeneratorExpression.cxx
+++ b/Source/cmGeneratorExpression.cxx
@@ -192,11 +192,12 @@ static std::string stripAllGeneratorExpressions(const std::string &input)
std::string result;
std::string::size_type pos = 0;
std::string::size_type lastPos = pos;
+ int nestingLevel = 0;
while((pos = input.find("$<", lastPos)) != input.npos)
{
result += input.substr(lastPos, pos - lastPos);
pos += 2;
- int nestingLevel = 1;
+ nestingLevel = 1;
const char *c = input.c_str() + pos;
const char * const cStart = c;
for ( ; *c; ++c)
@@ -224,7 +225,10 @@ static std::string stripAllGeneratorExpressions(const std::string &input)
pos += traversed;
lastPos = pos;
}
- result += input.substr(lastPos);
+ if (nestingLevel == 0)
+ {
+ result += input.substr(lastPos);
+ }
return cmGeneratorExpression::StripEmptyListElements(result);
}
@@ -234,9 +238,12 @@ static void prefixItems(const std::string &content, std::string &result,
{
std::vector<std::string> entries;
cmGeneratorExpression::Split(content, entries);
+ const char *sep = "";
for(std::vector<std::string>::const_iterator ei = entries.begin();
ei != entries.end(); ++ei)
{
+ result += sep;
+ sep = ";";
if (!cmSystemTools::FileIsFullPath(ei->c_str())
&& cmGeneratorExpression::Find(*ei) == std::string::npos)
{
@@ -253,6 +260,7 @@ static std::string stripExportInterface(const std::string &input,
{
std::string result;
+ int nestingLevel = 0;
std::string::size_type pos = 0;
std::string::size_type lastPos = pos;
while (true)
@@ -282,7 +290,7 @@ static std::string stripExportInterface(const std::string &input,
const bool gotInstallInterface = input[pos + 2] == 'I';
pos += gotInstallInterface ? sizeof("$<INSTALL_INTERFACE:") - 1
: sizeof("$<BUILD_INTERFACE:") - 1;
- int nestingLevel = 1;
+ nestingLevel = 1;
const char *c = input.c_str() + pos;
const char * const cStart = c;
for ( ; *c; ++c)
@@ -331,7 +339,10 @@ static std::string stripExportInterface(const std::string &input,
pos += traversed;
lastPos = pos;
}
- result += input.substr(lastPos);
+ if (nestingLevel == 0)
+ {
+ result += input.substr(lastPos);
+ }
return cmGeneratorExpression::StripEmptyListElements(result);
}
diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index bed9568..7fd0fdc 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -607,14 +607,15 @@ static const struct ConfigurationTestNode : public cmGeneratorExpressionNode
// Check if there is a proper config mapping for the tested config.
std::vector<std::string> mappedConfigs;
std::string mapProp = "MAP_IMPORTED_CONFIG_";
- mapProp += context->Config;
+ mapProp += cmSystemTools::UpperCase(context->Config);
if(const char* mapValue =
context->CurrentTarget->GetProperty(mapProp.c_str()))
{
cmSystemTools::ExpandListArgument(cmSystemTools::UpperCase(mapValue),
mappedConfigs);
return std::find(mappedConfigs.begin(), mappedConfigs.end(),
- context->Config) != mappedConfigs.end() ? "1" : "0";
+ cmSystemTools::UpperCase(parameters.front()))
+ != mappedConfigs.end() ? "1" : "0";
}
}
}
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index 5ce0e6b..62ac263 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -80,6 +80,12 @@ bool cmGeneratorTarget::IsSystemIncludeDirectory(const char *dir,
config, false, this->Target,
&dagChecker), result);
}
+ for(std::vector<std::string>::iterator li = result.begin();
+ li != result.end(); ++li)
+ {
+ cmSystemTools::ConvertToUnixSlashes(*li);
+ }
+
IncludeCacheType::value_type entry(config_upper, result);
iter = this->SystemIncludesCache.insert(entry).first;
}
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 7f2b592..799bbdb 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -146,9 +146,17 @@ void cmGlobalGenerator::ResolveLanguageCompiler(const std::string &lang,
const char* cname = this->GetCMakeInstance()->
GetCacheManager()->GetCacheValue(langComp.c_str());
std::string changeVars;
- if(cname && (path != cname) && (optional==false))
+ if(cname && !optional)
{
- std::string cnameString = cname;
+ std::string cnameString;
+ if(!cmSystemTools::FileIsFullPath(cname))
+ {
+ cnameString = cmSystemTools::FindProgram(cname);
+ }
+ else
+ {
+ cnameString = cname;
+ }
std::string pathString = path;
// get rid of potentially multiple slashes:
cmSystemTools::ConvertToUnixSlashes(cnameString);
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 7cb2d1f..0a2b32b 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -431,13 +431,16 @@ cmGlobalXCodeGenerator::AddExtraTargets(cmLocalGenerator* root,
// Add XCODE depend helper
std::string dir = mf->GetCurrentOutputDirectory();
- cmCustomCommandLine makecommand;
- makecommand.push_back("make");
- makecommand.push_back("-C");
- makecommand.push_back(dir.c_str());
- makecommand.push_back("-f");
- makecommand.push_back(this->CurrentXCodeHackMakefile.c_str());
- makecommand.push_back(""); // placeholder, see below
+ cmCustomCommandLine makeHelper;
+ if(this->XcodeVersion < 50)
+ {
+ makeHelper.push_back("make");
+ makeHelper.push_back("-C");
+ makeHelper.push_back(dir.c_str());
+ makeHelper.push_back("-f");
+ makeHelper.push_back(this->CurrentXCodeHackMakefile.c_str());
+ makeHelper.push_back(""); // placeholder, see below
+ }
// Add ZERO_CHECK
bool regenerate = !mf->IsOn("CMAKE_SUPPRESS_REGENERATION");
@@ -477,17 +480,18 @@ cmGlobalXCodeGenerator::AddExtraTargets(cmLocalGenerator* root,
// run the depend check makefile as a post build rule
// this will make sure that when the next target is built
// things are up-to-date
- if((target.GetType() == cmTarget::EXECUTABLE ||
+ if(!makeHelper.empty() &&
+ (target.GetType() == cmTarget::EXECUTABLE ||
// Nope - no post-build for OBJECT_LIRBRARY
// target.GetType() == cmTarget::OBJECT_LIBRARY ||
target.GetType() == cmTarget::STATIC_LIBRARY ||
target.GetType() == cmTarget::SHARED_LIBRARY ||
target.GetType() == cmTarget::MODULE_LIBRARY))
{
- makecommand[makecommand.size()-1] =
+ makeHelper[makeHelper.size()-1] = // fill placeholder
this->PostBuildMakeTarget(target.GetName(), "$(CONFIGURATION)");
cmCustomCommandLines commandLines;
- commandLines.push_back(makecommand);
+ commandLines.push_back(makeHelper);
lg->GetMakefile()->AddCustomCommandToTarget(target.GetName(),
no_depends,
commandLines,
@@ -1027,18 +1031,21 @@ cmGlobalXCodeGenerator::CreateXCodeTargets(cmLocalGenerator* gen,
}
}
- // Add object library contents as external objects. (Equivalent to
- // the externalObjFiles above, except each one is not a cmSourceFile
- // within the target.)
- std::vector<std::string> objs;
- this->GetGeneratorTarget(&cmtarget)->UseObjectLibraries(objs);
- for(std::vector<std::string>::const_iterator
- oi = objs.begin(); oi != objs.end(); ++oi)
+ if(this->XcodeVersion < 50)
{
- std::string obj = *oi;
- cmXCodeObject* xsf =
- this->CreateXCodeSourceFileFromPath(obj, cmtarget, "");
- externalObjFiles.push_back(xsf);
+ // Add object library contents as external objects. (Equivalent to
+ // the externalObjFiles above, except each one is not a cmSourceFile
+ // within the target.)
+ std::vector<std::string> objs;
+ this->GetGeneratorTarget(&cmtarget)->UseObjectLibraries(objs);
+ for(std::vector<std::string>::const_iterator
+ oi = objs.begin(); oi != objs.end(); ++oi)
+ {
+ std::string obj = *oi;
+ cmXCodeObject* xsf =
+ this->CreateXCodeSourceFileFromPath(obj, cmtarget, "");
+ externalObjFiles.push_back(xsf);
+ }
}
// some build phases only apply to bundles and/or frameworks
@@ -2765,13 +2772,6 @@ void cmGlobalXCodeGenerator
}
}
- // Skip link information for static libraries.
- if(cmtarget->GetType() == cmTarget::OBJECT_LIBRARY ||
- cmtarget->GetType() == cmTarget::STATIC_LIBRARY)
- {
- return;
- }
-
// Loop over configuration types and set per-configuration info.
for(std::vector<std::string>::iterator i =
this->CurrentConfigurationTypes.begin();
@@ -2784,6 +2784,31 @@ void cmGlobalXCodeGenerator
configName = 0;
}
+ if(this->XcodeVersion >= 50)
+ {
+ // Add object library contents as link flags.
+ std::string linkObjs;
+ const char* sep = "";
+ std::vector<std::string> objs;
+ this->GetGeneratorTarget(cmtarget)->UseObjectLibraries(objs);
+ for(std::vector<std::string>::const_iterator
+ oi = objs.begin(); oi != objs.end(); ++oi)
+ {
+ linkObjs += sep;
+ sep = " ";
+ linkObjs += this->XCodeEscapePath(oi->c_str());
+ }
+ this->AppendBuildSettingAttribute(target, "OTHER_LDFLAGS",
+ linkObjs.c_str(), configName);
+ }
+
+ // Skip link information for object libraries.
+ if(cmtarget->GetType() == cmTarget::OBJECT_LIBRARY ||
+ cmtarget->GetType() == cmTarget::STATIC_LIBRARY)
+ {
+ continue;
+ }
+
// Compute the link library and directory information.
cmComputeLinkInformation* pcli = cmtarget->GetLinkInformation(configName);
if(!pcli)
@@ -3338,8 +3363,11 @@ void cmGlobalXCodeGenerator
cmXCodeObject* t = *i;
this->AddDependAndLinkInformation(t);
}
- // now create xcode depend hack makefile
- this->CreateXCodeDependHackTarget(targets);
+ if(this->XcodeVersion < 50)
+ {
+ // now create xcode depend hack makefile
+ this->CreateXCodeDependHackTarget(targets);
+ }
// now add all targets to the root object
cmXCodeObject* allTargets = this->CreateObject(cmXCodeObject::OBJECT_LIST);
for(std::vector<cmXCodeObject*>::iterator i = targets.begin();
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 58cc6f4..bd6c860 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -1954,23 +1954,27 @@ cmLocalVisualStudio7Generator
// Compute the version of the Intel plugin to the VS IDE.
// If the key does not exist then use a default guess.
- std::string intelVersion = "9.10";
+ std::string intelVersion;
std::string vskey = gg->GetRegistryBase();
vskey += "\\Packages\\" CM_INTEL_PLUGIN_GUID ";ProductVersion";
cmSystemTools::ReadRegistryValue(vskey.c_str(), intelVersion,
cmSystemTools::KeyWOW64_32);
- if (intelVersion.find("13") == 0 ||
- intelVersion.find("12") == 0 ||
- intelVersion.find("11") == 0)
+ unsigned int intelVersionNumber = ~0u;
+ sscanf(intelVersion.c_str(), "%u", &intelVersionNumber);
+ if(intelVersionNumber >= 11)
{
- // Version 11.x, 12.x, and 13.x actually use 11.0 in project files!
- intelVersion = "11.0" ;
+ // Default to latest known project file version.
+ intelVersion = "11.0";
}
- else if(intelVersion.find("10") == 0)
+ else if(intelVersionNumber == 10)
{
// Version 10.x actually uses 9.10 in project files!
intelVersion = "9.10";
}
+ else
+ {
+ // Version <= 9: use ProductVersion from registry.
+ }
fout << "<?xml version=\"1.0\" encoding = \"Windows-1252\"?>\n"
<< "<VisualStudioProject\n"
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 57b86fd..34541e9 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -816,6 +816,19 @@ bool cmMakefile::NeedBackwardsCompatibility(unsigned int major,
}
}
+
+namespace
+{
+ struct file_not_persistent
+ {
+ bool operator()(const std::string& path) const
+ {
+ return !(path.find("CMakeTmp") == path.npos &&
+ cmSystemTools::FileExists(path.c_str()));
+ }
+ };
+}
+
void cmMakefile::FinalPass()
{
// do all the variable expansions here
@@ -829,6 +842,29 @@ void cmMakefile::FinalPass()
(*i)->FinalPass();
}
+ //go through all configured files and see which ones still exist.
+ //we don't want cmake to re-run if a configured file is created and deleted
+ //during processing as that would make it a transient file that can't
+ //influence the build process
+
+ //remove_if will move all items that don't have a valid file name to the
+ //back of the vector
+ std::vector<std::string>::iterator new_output_files_end = std::remove_if(
+ this->OutputFiles.begin(),
+ this->OutputFiles.end(),
+ file_not_persistent() );
+ //we just have to erase all items at the back
+ this->OutputFiles.erase(new_output_files_end, this->OutputFiles.end() );
+
+ //if a configured file is used as input for another configured file,
+ //and then deleted it will show up in the input list files so we
+ //need to scan those too
+ std::vector<std::string>::iterator new_list_files_end = std::remove_if(
+ this->ListFiles.begin(),
+ this->ListFiles.end(),
+ file_not_persistent() );
+
+ this->ListFiles.erase(new_list_files_end, this->ListFiles.end() );
}
// Generate the output file
@@ -1033,6 +1069,19 @@ void
cmMakefile::UpdateOutputToSourceMap(std::string const& output,
cmSourceFile* source)
{
+ OutputToSourceMap::iterator i = this->OutputToSource.find(output);
+ if(i != this->OutputToSource.end())
+ {
+ // Multiple custom commands produce the same output but may
+ // be attached to a different source file (MAIN_DEPENDENCY).
+ // LinearGetSourceFileWithOutput would return the first one,
+ // so keep the mapping for the first one.
+ //
+ // TODO: Warn the user about this case. However, the VS 8 generator
+ // triggers it for separate generate.stamp rules in ZERO_CHECK and
+ // individual targets.
+ return;
+ }
this->OutputToSource[output] = source;
}
@@ -3419,11 +3468,12 @@ int cmMakefile::ConfigureFile(const char* infile, const char* outfile,
std::string sinfile = infile;
this->AddCMakeDependFile(sinfile);
cmSystemTools::ConvertToUnixSlashes(soutfile);
+
// Re-generate if non-temporary outputs are missing.
- if(soutfile.find("CMakeTmp") == soutfile.npos)
- {
- this->AddCMakeOutputFile(soutfile);
- }
+ //when we finalize the configuration we will remove all
+ //output files that now don't exist.
+ this->AddCMakeOutputFile(soutfile);
+
mode_t perm = 0;
cmSystemTools::GetPermissions(sinfile.c_str(), perm);
std::string::size_type pos = soutfile.rfind('/');
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index 0829cab..4e40f6c 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -21,6 +21,7 @@
#include "cmTarget.h"
#include "cmake.h"
#include "cmComputeLinkInformation.h"
+#include "cmGeneratorExpression.h"
#include "cmMakefileExecutableTargetGenerator.h"
#include "cmMakefileLibraryTargetGenerator.h"
@@ -131,7 +132,14 @@ void cmMakefileTargetGenerator::WriteTargetBuildRules()
this->Makefile->GetProperty
("ADDITIONAL_MAKE_CLEAN_FILES"))
{
- cmSystemTools::ExpandListArgument(additional_clean_files,
+ const char *config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE");
+ cmListFileBacktrace lfbt;
+ cmGeneratorExpression ge(lfbt);
+ cmsys::auto_ptr<cmCompiledGeneratorExpression> cge =
+ ge.Parse(additional_clean_files);
+
+ cmSystemTools::ExpandListArgument(cge->Evaluate(this->Makefile, config,
+ false, this->Target, 0, 0),
this->CleanFiles);
}
diff --git a/Source/cmQtAutomoc.cxx b/Source/cmQtAutomoc.cxx
index 93e39ab..54df12c 100644
--- a/Source/cmQtAutomoc.cxx
+++ b/Source/cmQtAutomoc.cxx
@@ -32,16 +32,28 @@
#include "cmQtAutomoc.h"
-static bool containsQ_OBJECT(const std::string& text)
+static bool requiresMocing(const std::string& text, std::string &macroName)
{
// this simple check is much much faster than the regexp
- if (strstr(text.c_str(), "Q_OBJECT") == NULL)
+ if (strstr(text.c_str(), "Q_OBJECT") == NULL
+ && strstr(text.c_str(), "Q_GADGET") == NULL)
{
return false;
}
cmsys::RegularExpression qObjectRegExp("[\n][ \t]*Q_OBJECT[^a-zA-Z0-9_]");
- return qObjectRegExp.find(text);
+ if (qObjectRegExp.find(text))
+ {
+ macroName = "Q_OBJECT";
+ return true;
+ }
+ cmsys::RegularExpression qGadgetRegExp("[\n][ \t]*Q_GADGET[^a-zA-Z0-9_]");
+ if (qGadgetRegExp.find(text))
+ {
+ macroName = "Q_GADGET";
+ return true;
+ }
+ return false;
}
@@ -837,7 +849,8 @@ void cmQtAutomoc::ParseCppFile(const std::string& absFilename,
cmsys::SystemTools::GetRealPath(absFilename.c_str())) + '/';
const std::string scannedFileBasename = cmsys::SystemTools::
GetFilenameWithoutLastExtension(absFilename);
- const bool cppContainsQ_OBJECT = containsQ_OBJECT(contentsString);
+ std::string macroName;
+ const bool requiresMoc = requiresMocing(contentsString, macroName);
bool dotMocIncluded = false;
bool mocUnderscoreIncluded = false;
std::string ownMocUnderscoreFile;
@@ -908,7 +921,7 @@ void cmQtAutomoc::ParseCppFile(const std::string& absFilename,
else
{
std::string fileToMoc = absFilename;
- if ((basename != scannedFileBasename) || (cppContainsQ_OBJECT==false))
+ if ((basename != scannedFileBasename) || (requiresMoc==false))
{
std::string mocSubDir = extractSubDir(absPath, currentMoc);
std::string headerToMoc = findMatchingHeader(
@@ -917,12 +930,12 @@ void cmQtAutomoc::ParseCppFile(const std::string& absFilename,
{
// this is for KDE4 compatibility:
fileToMoc = headerToMoc;
- if ((cppContainsQ_OBJECT==false) &&(basename==scannedFileBasename))
+ if ((requiresMoc==false) &&(basename==scannedFileBasename))
{
std::cerr << "AUTOMOC: warning: " << absFilename << ": The file "
"includes the moc file \"" << currentMoc <<
- "\", but does not contain a Q_OBJECT macro. "
- "Running moc on "
+ "\", but does not contain a " << macroName
+ << " macro. Running moc on "
<< "\"" << headerToMoc << "\" ! Include \"moc_"
<< basename << ".cpp\" for a compatiblity with "
"strict mode (see CMAKE_AUTOMOC_RELAXED_MODE).\n"
@@ -965,13 +978,14 @@ void cmQtAutomoc::ParseCppFile(const std::string& absFilename,
// If this is the case, the moc_foo.cpp should probably be generated from
// foo.cpp instead of foo.h, because otherwise it won't build.
// But warn, since this is not how it is supposed to be used.
- if ((dotMocIncluded == false) && (cppContainsQ_OBJECT == true))
+ if ((dotMocIncluded == false) && (requiresMoc == true))
{
if (mocUnderscoreIncluded == true)
{
// this is for KDE4 compatibility:
std::cerr << "AUTOMOC: warning: " << absFilename << ": The file "
- << "contains a Q_OBJECT macro, but does not include "
+ << "contains a " << macroName << " macro, but does not "
+ "include "
<< "\"" << scannedFileBasename << ".moc\", but instead "
"includes "
<< "\"" << ownMocUnderscoreFile << "\". Running moc on "
@@ -986,7 +1000,8 @@ void cmQtAutomoc::ParseCppFile(const std::string& absFilename,
{
// otherwise always error out since it will not compile:
std::cerr << "AUTOMOC: error: " << absFilename << ": The file "
- << "contains a Q_OBJECT macro, but does not include "
+ << "contains a " << macroName << " macro, but does not "
+ "include "
<< "\"" << scannedFileBasename << ".moc\" !\n"
<< std::endl;
::exit(EXIT_FAILURE);
@@ -1094,11 +1109,13 @@ void cmQtAutomoc::StrictParseCppFile(const std::string& absFilename,
// If this is the case, the moc_foo.cpp should probably be generated from
// foo.cpp instead of foo.h, because otherwise it won't build.
// But warn, since this is not how it is supposed to be used.
- if ((dotMocIncluded == false) && (containsQ_OBJECT(contentsString)))
+ std::string macroName;
+ if ((dotMocIncluded == false) && (requiresMocing(contentsString,
+ macroName)))
{
// otherwise always error out since it will not compile:
std::cerr << "AUTOMOC: error: " << absFilename << ": The file "
- << "contains a Q_OBJECT macro, but does not include "
+ << "contains a " << macroName << " macro, but does not include "
<< "\"" << scannedFileBasename << ".moc\" !\n"
<< std::endl;
::exit(EXIT_FAILURE);
@@ -1165,7 +1182,8 @@ void cmQtAutomoc::ParseHeaders(const std::set<std::string>& absHeaders,
const std::string currentMoc = "moc_" + basename + ".cpp";
const std::string contents = this->ReadAll(headerName);
- if (containsQ_OBJECT(contents))
+ std::string macroName;
+ if (requiresMocing(contents, macroName))
{
//std::cout << "header contains Q_OBJECT macro";
notIncludedMocs[headerName] = currentMoc;
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 147c332..ac655da 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -6443,7 +6443,13 @@ bool cmTarget::ComputeLinkInterface(const char* config, LinkInterface& iface,
->GetPolicyWarning(cmPolicies::CMP0022)) << "\n"
<< "Target \"" << this->GetName() << "\" has a "
"INTERFACE_LINK_LIBRARIES property which differs from its "
- << linkIfaceProp << " properties.";
+ << linkIfaceProp << " properties."
+ "\n"
+ "INTERFACE_LINK_LIBRARIES:\n "
+ << newExplicitLibraries
+ << "\n"
+ << linkIfaceProp << ":\n "
+ << (explicitLibraries ? explicitLibraries : "(empty)") << "\n";
this->Makefile->IssueMessage(cmake::AUTHOR_WARNING, w.str());
}
// Fall through
diff --git a/Tests/Architecture/CMakeLists.txt b/Tests/Architecture/CMakeLists.txt
index 927ce3f..ea5fc0b 100644
--- a/Tests/Architecture/CMakeLists.txt
+++ b/Tests/Architecture/CMakeLists.txt
@@ -7,8 +7,8 @@ function(test_for_xcode4 result_var)
execute_process(COMMAND xcodebuild -version
OUTPUT_VARIABLE ov RESULT_VARIABLE rv
)
- if("${rv}" STREQUAL "0")
- if(ov MATCHES "^Xcode 4.[0-9].*$")
+ if("${rv}" STREQUAL "0" AND ov MATCHES "^Xcode ([0-9]+)\\.")
+ if(NOT CMAKE_MATCH_1 VERSION_LESS 4)
set(${result_var} 1 PARENT_SCOPE)
endif()
endif()
diff --git a/Tests/BuildDepends/CMakeLists.txt b/Tests/BuildDepends/CMakeLists.txt
index 3af0fda..0687154 100644
--- a/Tests/BuildDepends/CMakeLists.txt
+++ b/Tests/BuildDepends/CMakeLists.txt
@@ -285,6 +285,8 @@ if(EXISTS "${link_depends_no_shared_check_txt}")
file(STRINGS "${link_depends_no_shared_check_txt}" link_depends_no_shared_check LIMIT_COUNT 1)
if("${link_depends_no_shared_check}" STREQUAL "0")
message(STATUS "link_depends_no_shared_exe is older than link_depends_no_shared_lib as expected.")
+ elseif(XCODE AND NOT XCODE_VERSION VERSION_LESS 5)
+ message(STATUS "Known limitation: link_depends_no_shared_exe is newer than link_depends_no_shared_lib but we cannot stop Xcode ${XCODE_VERSION} from enforcing this dependency.")
else()
message(SEND_ERROR "Project did not rebuild properly: link_depends_no_shared_exe is newer than link_depends_no_shared_lib.")
endif()
diff --git a/Tests/BuildDepends/Project/CMakeLists.txt b/Tests/BuildDepends/Project/CMakeLists.txt
index b4c6a07..8806ecd 100644
--- a/Tests/BuildDepends/Project/CMakeLists.txt
+++ b/Tests/BuildDepends/Project/CMakeLists.txt
@@ -7,8 +7,8 @@ function(test_for_xcode4 result_var)
execute_process(COMMAND xcodebuild -version
OUTPUT_VARIABLE ov RESULT_VARIABLE rv
)
- if("${rv}" STREQUAL "0")
- if(ov MATCHES "^Xcode 4.[0-9].*$")
+ if("${rv}" STREQUAL "0" AND ov MATCHES "^Xcode ([0-9]+)\\.")
+ if(NOT CMAKE_MATCH_1 VERSION_LESS 4)
set(${result_var} 1 PARENT_SCOPE)
endif()
endif()
diff --git a/Tests/CMakeOnly/AllFindModules/CMakeLists.txt b/Tests/CMakeOnly/AllFindModules/CMakeLists.txt
index 739593c..691728a 100644
--- a/Tests/CMakeOnly/AllFindModules/CMakeLists.txt
+++ b/Tests/CMakeOnly/AllFindModules/CMakeLists.txt
@@ -22,11 +22,18 @@ endmacro()
set(DESIRED_QT_VERSION 4)
set(NO_QT4_MODULES "Qt3" "KDE3")
+# ignore everything that has it's own test in Tests/Module/
+file(GLOB OWN_TEST_MODULES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../../Module/" "${CMAKE_CURRENT_SOURCE_DIR}/../../Module/Find*")
+foreach(FIND_MODULE IN LISTS OWN_TEST_MODULES)
+ string(REGEX REPLACE "^Find" "" _MOD_NAME "${FIND_MODULE}")
+ list(APPEND NO_FIND_MODULES "${_MOD_NAME}")
+endforeach()
+
# These modules are named Find*.cmake, but are nothing that works in
# find_package().
-set(NO_FIND_MODULES "PackageHandleStandardArgs" "PackageMessage")
+list(APPEND NO_FIND_MODULES "PackageHandleStandardArgs" "PackageMessage")
-foreach(FIND_MODULE ${FIND_MODULES})
+foreach(FIND_MODULE IN LISTS FIND_MODULES)
string(REGEX REPLACE ".*/Find(.*)\\.cmake$" "\\1" MODULE_NAME "${FIND_MODULE}")
list(FIND NO_QT4_MODULES ${MODULE_NAME} NO_QT4_INDEX)
diff --git a/Tests/ExportImport/Export/CMakeLists.txt b/Tests/ExportImport/Export/CMakeLists.txt
index 1f23b2a..72ae78f 100644
--- a/Tests/ExportImport/Export/CMakeLists.txt
+++ b/Tests/ExportImport/Export/CMakeLists.txt
@@ -159,7 +159,7 @@ set_property(TARGET testLibRequired APPEND PROPERTY
$<BUILD_INTERFACE:$<TARGET_PROPERTY:testLibIncludeRequired5,INTERFACE_INCLUDE_DIRECTORIES>>
# Test that the below is non-fatal
$<$<STREQUAL:one,two>:$<TARGET_PROPERTY:not_a_target,INTERFACE_INCLUDE_DIRECTORIES>>
- $<INSTALL_INTERFACE:include/testLibIncludeRequired7>
+ $<INSTALL_INTERFACE:include/testLibIncludeRequired7;include/testLibIncludeRequired4>
)
set_property(TARGET testLibRequired APPEND PROPERTY
diff --git a/Tests/MakeClean/ToClean/CMakeLists.txt b/Tests/MakeClean/ToClean/CMakeLists.txt
index 28569dd..37d7292 100644
--- a/Tests/MakeClean/ToClean/CMakeLists.txt
+++ b/Tests/MakeClean/ToClean/CMakeLists.txt
@@ -26,6 +26,18 @@ add_custom_command(OUTPUT ${ToClean_BINARY_DIR}/generated.txt
add_custom_target(generate ALL DEPENDS ${ToClean_BINARY_DIR}/generated.txt)
set(TOCLEAN_FILES ${TOCLEAN_FILES} "${ToClean_BINARY_DIR}/generated.txt")
+# Create a custom command whose output should be cleaned, but whose name
+# is not known until generate-time
+set(copied_exe "$<TARGET_FILE_DIR:toclean>/toclean_copy${CMAKE_EXECUTABLE_SUFFIX}")
+add_custom_command(TARGET toclean POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy $<TARGET_FILE:toclean>
+ ${copied_exe}
+ )
+set_property(DIRECTORY APPEND PROPERTY
+ ADDITIONAL_MAKE_CLEAN_FILES ${copied_exe})
+list(APPEND TOCLEAN_FILES "${ToClean_BINARY_DIR}/toclean_copy${CMAKE_EXECUTABLE_SUFFIX}")
+
# Configure a file listing these build-time-generated files.
configure_file(${ToClean_SOURCE_DIR}/ToCleanFiles.cmake.in
${ToClean_BINARY_DIR}/ToCleanFiles.cmake @ONLY IMMEDIATE)
diff --git a/Tests/QtAutomoc/CMakeLists.txt b/Tests/QtAutomoc/CMakeLists.txt
index 69e52ac..8ad693a 100644
--- a/Tests/QtAutomoc/CMakeLists.txt
+++ b/Tests/QtAutomoc/CMakeLists.txt
@@ -41,7 +41,7 @@ add_library(codeeditorLib STATIC codeeditor.cpp)
add_library(privateSlot OBJECT private_slot.cpp)
add_executable(foo main.cpp calwidget.cpp foo.cpp blub.cpp bar.cpp abc.cpp
- xyz.cpp yaf.cpp $<TARGET_OBJECTS:privateSlot>)
+ xyz.cpp yaf.cpp gadget.cpp $<TARGET_OBJECTS:privateSlot>)
set_target_properties(foo codeeditorLib privateSlot PROPERTIES AUTOMOC TRUE)
diff --git a/Tests/QtAutomoc/gadget.cpp b/Tests/QtAutomoc/gadget.cpp
new file mode 100644
index 0000000..23d95fa
--- /dev/null
+++ b/Tests/QtAutomoc/gadget.cpp
@@ -0,0 +1,4 @@
+
+#include "gadget.h"
+
+#include "moc_gadget.cpp"
diff --git a/Tests/QtAutomoc/gadget.h b/Tests/QtAutomoc/gadget.h
new file mode 100644
index 0000000..7c688ee
--- /dev/null
+++ b/Tests/QtAutomoc/gadget.h
@@ -0,0 +1,18 @@
+
+#ifndef GADGET_H
+#define GADGET_H
+
+#include <QObject>
+
+class Gadget
+{
+ Q_GADGET
+ Q_ENUMS(Type)
+public:
+ enum Type {
+ Type0,
+ Type1
+ };
+};
+
+#endif
diff --git a/Tests/RunCMake/CMP0022/CMP0022-WARN-stderr.txt b/Tests/RunCMake/CMP0022/CMP0022-WARN-stderr.txt
index 29103c9..93c0ab3 100644
--- a/Tests/RunCMake/CMP0022/CMP0022-WARN-stderr.txt
+++ b/Tests/RunCMake/CMP0022/CMP0022-WARN-stderr.txt
@@ -5,4 +5,13 @@ CMake Warning \(dev\) in CMakeLists.txt:
Target "bar" has a INTERFACE_LINK_LIBRARIES property which differs from its
LINK_INTERFACE_LIBRARIES properties.
+
+ INTERFACE_LINK_LIBRARIES:
+
+ foo
+
+ LINK_INTERFACE_LIBRARIES:
+
+ bat
+
This warning is for project developers. Use -Wno-dev to suppress it.$
diff --git a/Tests/RunCMake/CMP0022/CMP0022-WARN-tll-stderr.txt b/Tests/RunCMake/CMP0022/CMP0022-WARN-tll-stderr.txt
index 5a5ad27..6370b24 100644
--- a/Tests/RunCMake/CMP0022/CMP0022-WARN-tll-stderr.txt
+++ b/Tests/RunCMake/CMP0022/CMP0022-WARN-tll-stderr.txt
@@ -5,4 +5,13 @@ CMake Warning \(dev\) in CMakeLists.txt:
Target "bar" has a INTERFACE_LINK_LIBRARIES property which differs from its
LINK_INTERFACE_LIBRARIES properties.
+
+ INTERFACE_LINK_LIBRARIES:
+
+ foo
+
+ LINK_INTERFACE_LIBRARIES:
+
+ bat
+
This warning is for project developers. Use -Wno-dev to suppress it.
diff --git a/bootstrap b/bootstrap
index fb4a0a0..9784d5d 100755
--- a/bootstrap
+++ b/bootstrap
@@ -692,7 +692,10 @@ if ${cmake_system_linux}; then
# avoid binutils problem with large binaries, e.g. when building CMake in debug mode
# See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50230
if ${cmake_machine_parisc}; then
- cmake_ld_flags="${LDFLAGS} -Wl,--unique=.text.*"
+ # if -O[s23] is given the effect is inverted, so do not use the flag then
+ if [ "`echo "${CXXFLAGS}" | sed -r '/^(.* )?(-O[s234])( .*)?$/s/.*/-Os/'`" != "-Os" ]; then
+ cmake_ld_flags="${LDFLAGS} -Wl,--unique=.text.*"
+ fi
fi
fi