summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* CMake 3.5.2v3.5.2maintBrad King2016-04-151-1/+1
|
* Merge branch 'ninja-restat-custom-command-byproducts' into releaseBrad King2016-04-053-2/+31
|\
| * Ninja: Restat custom command byproducts even with a SYMBOLIC output (#16049)Brad King2016-04-053-1/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change in commit v3.5.0-rc1~198^2 (Ninja: Always re-run custom commands that have symbolic dependencies, 2015-11-19) broke the byproducts feature added by commit v3.2.0-rc1~340^2~2 (Add an option for explicit BYPRODUCTS of custom commands, 2014-11-13) when SYMBOLIC outputs also appear. This case occurs with AUTORCC-generated custom targets because the output is SYMBOLIC (to always run) and the generated file is a byproduct (for restat so dependents do not run unnecessarily). The two use cases conflict because Ninja does not support per-output restat. Favor restat whenever byproducts are present because it is required for byproducts to work correctly. In use cases where we want an always-run chain we simply will not be able to also use byproducts.
| * Ninja: Fix detection of custom command symbolic outputsBrad King2016-04-051-1/+1
| | | | | | | | | | | | | | Fix logic introduced by commit v3.5.0-rc1~198^2 (Ninja: Always re-run custom commands that have symbolic dependencies, 2015-11-19) to not consider only the last output. We need to know if any output is SYMBOLIC, so stop checking as soon as one is found.
* | Merge branch 'fortran-line-directives-no-dirs' into releaseBrad King2016-04-051-1/+1
|\ \
| * | cmFortranParser: Skip #line directives that do not name filesBrad King2016-04-051-1/+1
| |/ | | | | | | | | | | | | | | | | Since commit v3.5.0-rc1~241^2~1 (cmFortranParser: Parse #line directives, 2015-11-02) our Fortran dependency scanner parses `#line` directives to extract the named files. However, some compilers produce `#line` directives that name directories instead of files. Work around such cases by verifying that the extracted path names a file and not a directory.
* | Merge branch 'FindGSL-doc-typo' into releaseBrad King2016-04-051-1/+1
|\ \
| * | FindGSL: Fix typo in documentationPierrick Koch2016-04-051-1/+1
| |/ | | | | | | s/GSL_CLBAS_LIBRARY/GSL_CBLAS_LIBRARY/
* | Merge branch 'fix-target-alias-in-subdir' into releaseBrad King2016-04-018-33/+15
|\ \
| * | Rename local target lookup methods to clarify purposeBrad King2016-04-017-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename methods: * `cmMakefile::Find{ => LocalNonAlias}Target` * `cmLocalGenerator::Find{ => LocalNonAlias}GeneratorTarget` These names clarify that they are for directory-local target names and do not consider alias targets.
| * | Fix lookup of an ALIAS target outside aliased target's directory (#16044)Brad King2016-04-014-27/+8
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactoring in commit v3.5.0-rc1~272^2~11 (cmTarget: Implement ALIAS in terms of name mapping, 2015-10-25) accidentally introduced logic that assumes ALIAS targets always reference targets in their own directory. Fix this and add a test case. The configure-step fix is that `cmMakefile::FindTarget` should not consider aliases. The purpose of this method is just to look up targets local to a directory. Since ALIAS and normal targets share a namespace we know a locally defined target will never collide with an ALIAS target anyway. The method has 3 call sites, and this change is safe for all of them: * `cmInstallCommand::HandleTargetsMode`: Rejects aliases before the call. * `cmFLTKWrapUICommand::FinalPass`: Should never have considered aliases. * `cmMakefile::FindTargetToUse`: Falls back to a global lookup anyway. The generate-step fix is that `cmLocalGenerator::FindGeneratorTarget` should not consider aliases. This method is the generate-step equivalent to the above. The method has 2 call sites, and this change is safe for both of them: * `cmInstallTargetGenerator::Compute`: Never uses an alias target name. * `cmLocalGenerator::FindGeneratorTargetToUse`: Falls back to global lookup. Reported-by: Matteo Settenvini <matteo@member.fsf.org>
* | Merge branch 'backport-asm-includes' into releaseBrad King2016-03-315-5/+5
|\ \
| * | ASM: Add missing <INCLUDES> placeholder for "compile" rulesGregor Jasny2016-03-315-5/+5
| |/ | | | | | | | | | | | | | | This placeholder was added to the compilation rules for other languages by commit v3.4.0-rc1~342^2 (Factor an <INCLUDES> placeholder out of <FLAGS> in rule variables, 2015-07-13) but ASM was incorrectly left out. Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
* | Merge branch 'xcode73-xctest-location' into releaseBrad King2016-03-281-0/+4
|\ \ | |/ |/|
| * Xcode: Fixup XCTest bundle location for Xcode 7.3Gregor Jasny2016-03-281-0/+4
|/ | | | | | | | | | | | | | | | | | | | | | | | Prior to Xcode 7.3 a XCTest bundle was built like an ordinary bundle. But starting with Xcode 7.3 it is implicitely built as a plugin for the test host. It looks like in that case the 'Build Products Path' is ignored. This patch simply sets the CMake target output path to the value Xcode expects internally to get a matching view of both. The command: xcodebuild -showBuildSettings -target CocoaExampleTests -configuration Debug Output with Xcode 7.2: TARGET_BUILD_DIR = .../Tests/XCTest/Debug Output with Xcode 7.3 TARGET_BUILD_DIR = .../Tests/XCTest/Debug/CocoaExample.app/Contents/PlugIns Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
* CMake 3.5.1v3.5.1Brad King2016-03-241-1/+1
|
* Merge branch 'fix-variable_watch-reallocation' into releaseBrad King2016-03-233-10/+19
|\
| * Avoid occasional use-after-free when a variable watch is executedYves Frederix2016-03-233-10/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Re-lookup a variable value when an associated VariableWatch is executed in cmMakefile::GetDefinition. This fixes a problem with 'def' sometimes becoming invalid due to memory reallocation inside an std::vector. In this case, the problem was that if the call to VariableAccessed actually executed a callback function, the internal state of the makefile has changed due to the associated function scope being pushed. This in turn implies that a new cmDefinitions instance was pushed in cmMakefile::VarTree. As cmLinkedTree is based on an std::vector, this push can have triggered reallocation of its internal memory buffer. However, as the value of 'def', which was computed on method entry, actually points to a property of one of the cmDefinitions instances in cmMakefile::VarTree, reallocation can invalidate the value of 'def' so that it cannot simply be returned at the end of the function. The solution implemented here is to simply lookup the value of 'def' again.
* | Merge branch 'FindCUDA-verbatim' into releaseBrad King2016-03-221-1/+6
|\ \
| * | FindCUDA: Fix regression in separate compilation (#16027)Brad King2016-03-221-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | Since commit v3.5.0-rc1~47^2 (FindCUDA: Support special characters in path, 2016-01-15) our add_custom_command calls use VERBATIM so that CMake will automatically quote special characters correctly. Fix the separate compilation code path to not add its own quoting when the VERBATIM option will be used.
* | | Merge branch 'fix-repeat-pkg-config' into releaseBrad King2016-03-212-6/+7
|\ \ \
| * | | FindPkgConfig: set correctly named variables in cache (#15903)Ben Boeckel2016-03-212-6/+7
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | The fix in commit v3.5.0-rc1~27^2 (FindPkgConfig: set standard variables in the cache, 2016-01-20) added the wrong variable name to the cache. The test was only testing that the cache variable existed, not that it also had the correct value. Update the test to ensure that the cache value matches the local variable value. Reported-by: Bernd Lörwald
* | | Merge branch 'cpack-osx-optional-CoreServices' into releaseBrad King2016-03-182-1/+20
|\ \ \
| * | | CPack: Avoid using OS X CoreServices if compiler fails on header (#16021)Brad King2016-03-182-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | Some compilers on OS X report errors in the CoreServices framework headers. Check for support of the header ahead of time and compile the relevant code only when the header is available.
* | | | Merge branch 'cmake-gui-osx-identifier' into releaseBrad King2016-03-171-0/+1
|\ \ \ \
| * | | | cmake-gui: Populate CFBundleIdentifier in our Info.plist file (#16023)Brad King2016-03-171-0/+1
| | |/ / | |/| |
* | | | Merge branch 'cpack-osx-no-carbon' into releaseBrad King2016-03-172-16/+7
|\ \ \ \ | | |/ / | |/| |
| * | | CPack: Avoid requiring Carbon framework on OS X (#16021)Sean McBride2016-03-172-16/+7
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit v3.5.0-rc1~232^2 (CPackDMG: Add support for multilingual SLAs, 2015-10-19) we added use of the Carbon framework in order to get access to its APIs to convert Script Manager RegionCode values. This is not necessary. Instead we can use CoreServices. While at it, replace individual CoreFoundation includes with including the entire framework, which is the correct way.
* | | Merge branch 'ios-install-combined-one-arch' into releaseBrad King2016-03-154-1/+75
|\ \ \
| * | | Fix iOS combined feature for single architecture targetsRuslan Baratov2016-03-154-1/+75
| |/ / | | | | | | | | | | | | | | | | | | If list of valid target architectures is empty for given SDK then there will be no VALID_ARCHS build setting returned by Xcode. Return "" (empty string) explicitly in this case. This may happens if CMAKE_IOS_INSTALL_COMBINED is ON but only one architecture used in target.
* | | Merge branch 'FindBoost-optional-indirect-depends' into releaseBrad King2016-03-151-2/+12
|\ \ \ | |/ / |/| |
| * | FindBoost: Tolerate missing indirect dependencies (#16013)Roger Leigh2016-03-151-2/+12
|/ / | | | | | | | | | | | | | | | | Depending upon the configuration, certain components may or may not be installed, for example Boost.Regex, but other components may still have header dependencies upon these components which will obviously fail to work. Since we can't make a sensible determination with the hardcoded dependency information, we choose to interpret these dependencies less strictly.
* | CMake 3.5.0v3.5.0Brad King2016-03-081-1/+1
| |
* | Merge branch 'doc-find-python-call-order' into releaseBrad King2016-03-072-6/+8
|\ \
| * | FindPython{Interp,Libs}: Clarify recommended call orderBrad King2016-03-072-6/+8
| | | | | | | | | | | | Improve wording in our advice about how to call both of these modules.
* | | Merge branch 'vs14-debug-enum-older-toolsets' into releaseBrad King2016-03-071-0/+28
|\ \ \
| * | | VS: Fix VS 2015 .vcxproj debug setting for older toolsets (#15986)Brad King2016-03-071-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit v3.4.2~2^2 (VS: Fix VS 2015 .vcxproj file value for GenerateDebugInformation, 2016-01-08) we generate invalid project files for the v110 and v120 toolsets. VS complains: C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(639,9): error MSB4030: "Debug" is an invalid value for the "GenerateDebugInformation" parameter of the "Link" task. The "GenerateDebugInformation" parameter is of type "System.Boolean". This reveals that our VS flag map selection should be based on the toolset instead of the version of VS. However, that will be a non-trivial change so for now fix this particular use case by hard-coding a correction to the flag map. Reported-by: Gregor Jasny <gjasny@googlemail.com>
* | | | Merge branch 'doc-typos' into releaseBrad King2016-02-241-5/+5
|\ \ \ \
| * | | | Help: Fix typos in cmake-packages.7 manualAshley Whetter2016-02-241-5/+5
| | |/ / | |/| |
* | | | Merge branch 'doc-cmake-E-details' into releaseBrad King2016-02-191-4/+8
|\ \ \ \
| * | | | Help: Clarify `cmake -E` command behavior with respect to file existenceBartosz Kosiorek2016-02-191-4/+8
| |/ / /
* | | | CMake 3.5.0-rc3v3.5.0-rc3Brad King2016-02-181-1/+1
| | | |
* | | | Merge branch 'FindCUDA-verbatim' into releaseBrad King2016-02-171-3/+13
|\ \ \ \ | | |_|/ | |/| |
| * | | FindCUDA: Fix regression under Visual Studio generatorsBrad King2016-02-171-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit v3.5.0-rc1~47^2 (FindCUDA: Support special characters in path, 2016-01-15) our add_custom_command calls use VERBATIM so that CMake will automatically quote special characters correctly. However, this breaks the special `$(VCInstallDir)` placeholder used with Visual Studio generators. Since we do not support preservation of such placeholders with VERBATIM (see issue #15001) we must fall back to not using VERBATIM when the placeholder is used. A better fix would be to stop using `$(VCInstallDir)` and use the value of `CMAKE_${CUDA_C_OR_CXX}_COMPILER` instead, but that will require additional semantic and documentation changes. For now simply fix the regression with the above approach. Reported-by: Stephen Sorley <Stephen.Sorley@jhuapl.edu>
* | | | Merge branch 'fix-static-private-non-target-depends' into releaseBrad King2016-02-177-5/+40
|\ \ \ \
| * | | | Fix export of STATIC library PRIVATE non-target dependenciesBrad King2016-02-177-5/+40
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit v3.5.0-rc1~43^2 (Fix export of STATIC library PRIVATE dependencies with CMP0022 NEW, 2016-01-15) we taught target_link_libraries to generate `$<LINK_ONLY:$<TARGET_NAME:dep>>` in INTERFACE_LINK_LIBRARIES instead of `$<LINK_ONLY:dep>` so that `dep` can be recognized as a target name and updated during export. However, this approach does not work when `dep` is just a plain library name and not a target because `$<TARGET_NAME:...>` requires the name of a reachable target. Since we do not know during target_link_libraries whether the name will correspond to a reachable target or not, we cannot inject the `$<TARGET_NAME:...>` expression. Revert this change and solve the original problem instead by teaching the export logic to recognize and update target names directly in `$<LINK_ONLY:...>` expressions. Reported-by: Ben Boeckel <ben.boeckel@kitware.com>
* | | | Merge branch 'backport-doc-install-component-association' into releaseBrad King2016-02-171-7/+12
|\ \ \ \
| * | | | Help: Clarify install(TARGETS) INCLUDES DESTINATION optionBrad King2016-02-171-7/+12
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | The option does not actually participate in argument groups like the others because it does not actually install anything. Fix the order in the documentation accordingly. Reported-by: Daniel Wirtz <daniel.wirtz@simtech.uni-stuttgart.de>
* | | | Merge branch 'de-deprecate-CMakeForceCompiler' into releaseBrad King2016-02-172-10/+9
|\ \ \ \
| * | | | CMakeForceCompiler: De-deprecate until more use cases have alternativesBrad King2016-02-172-10/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We deprecated this module in commit v3.5.0-rc1~295^2 (CMakeForceCompiler: Deprecate this module and its macros, 2015-10-19) in order to determine whether anyone still has use cases that require it. Indeed we still need to provide a way to work with toolchains that cannot link binaries without special flags. Remove the deprecation warnings until we can provide an alternative to the module for this use case.