summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* cmGeneratedFileStream: Do not remove empty pathBrad King2022-04-291-1/+3
| | | | | | | | | If `Close()` is called when a file was never opened, we have no temporary file path. Do not try to remove it. Some implementations of `unlink()` crash on an empty path (though the documented behavior is to fail with `ENOENT`). Fixes: #23414
* cmExportBuildFileGenerator: handle genex-wrapped source pathsBen Boeckel2022-04-181-8/+85
| | | | | | | Previously a fileset with `$<$<CONFIG:Debug>:some_file>` would show up as-is (with escaping) in the build directory export. Instead, evaluate all fileset entries as generator expressions and list them as they are similar to the installation information.
* cmInstallCommand: tweak error messageBen Boeckel2022-04-161-3/+3
| | | | | Not all filesets need to be installed; just those that are visible on the target's interface. Clarify the error message.
* Merge topic 'CPackIFW-extra-dot' into release-3.23Brad King2022-04-151-3/+3
|\ | | | | | | | | | | | | | | | | 331c5d458e CPackIFW: Fix regression in icon file names Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: Erlend E. Aasland <erlend.aasland@innova.no> Merge-request: !7174
| * CPackIFW: Fix regression in icon file namesJean-Philippe Lebel2022-04-141-3/+3
| | | | | | | | | | | | | | | | Changes in commit 761b6e2466 (CPackIFW: Avoid colliding names for icons / logos, 2021-10-08, v3.23.0-rc1~546^2) accidentally left an extra `.` in computed file names. Remove it. Fixes: #23423
* | FILE_SET: Make INTERFACE libraries with HEADER_SETS participate in buildsystemKyle Edwards2022-04-141-2/+4
|/ | | | | | | | If an INTERFACE library has HEADER_SETS, and its header sets contain files generated by a custom command, the library needs to participate in the buildsystem so that the files will be generated. Fixes: #23422
* CMake 3.23.1v3.23.1Brad King2022-04-121-1/+1
|
* Merge topic 'file-set-repr-improvements' into release-3.23Brad King2022-04-125-101/+136
|\ | | | | | | | | | | | | | | | | 5fa15ec9f3 Help: Document that target_sources defines [INTERFACE_]HEADER_SETS c5d4812f20 cmTarget: make HEADER_SETS and INTERFACE_HEADER_SETS read-only 05783b168d cmFileSet: store visibility with the fileset Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7168
| * cmTarget: make HEADER_SETS and INTERFACE_HEADER_SETS read-onlyBen Boeckel2022-04-112-61/+39
| | | | | | | | | | | | There is no reason to allow these properties to be manipulated by user code. Instead, use the stored visibility on the fileset objects to derive what these properties should contain.
| * cmFileSet: store visibility with the filesetBen Boeckel2022-04-115-40/+97
| | | | | | | | | | The visibility is intrinsic to the fileset, so store it with it. This avoids recalculating it on every addition to the fileset.
* | Merge topic 'correct_list-presets_parsing' into release-3.23Brad King2022-04-121-2/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | 45299a8f9b cmake: --list=presets=[type] doesn't generate incorrect warnings Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7164
| * | cmake: --list=presets=[type] doesn't generate incorrect warningsRobert Maynard2022-04-111-2/+3
| | | | | | | | | | | | Fixes #23407
* | | Merge topic 'xcode-pch' into release-3.23Brad King2022-04-121-4/+6
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | 476c6a8910 PCH: Fix Xcode non-pch language exclusion fcf1fcfd0c Tests: Ignore all classes in Xcode internal objc warnings Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7166
| * | PCH: Fix Xcode non-pch language exclusionCristian Adam2022-04-111-4/+6
| | | | | | | | | | | | | | | | | | | | | Fix a regression caused by commit bbcdac4e5d (PCH: Fix all-language precompile header support in Xcode, 2021-08-07, v3.22.0-rc1~140^2). Fixes: #23138
| * | Merge branch 'aix-exe-exports' into release-3.22Brad King2022-03-261-3/+3
| |\ \ | | | | | | | | | | | | Merge-request: !7120
| * | | CMake 3.22.3v3.22.3Brad King2022-03-041-1/+1
| | | |
* | | | CheckSourceCompiles: Avoid linker warning with -fembed-bitcodeCraig Scott2022-04-091-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the Apple linker sees -headerpad_max_install_names and bitcode is enabled with a flag like -fembed-bitcode, it issues a warning and ignores the -headerpad_max_install_names flag. This causes unrelated compiler and linker flag checks to fail for valid flags. In f745e0497e (CheckCompilerFlags: Catch linker warning about ignored flags, 2022-01-03), we started detecting linker warnings, which caused a regression for projects that were setting -fembed-bitcode in their CMAKE_CXX_FLAGS or similar. Prevent that regression by removing the -headerpad_max_install_names linker flag when we know it will warn and be ignored anyway. Fixes: #23390 Issue: #23408
* | | | FILE_SET: Forbid adding header sets to Apple FRAMEWORK librariesKyle Edwards2022-04-071-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The feature needs a specialized implementation to place headers in the right place inside frameworks. To avoid silently doing the wrong thing, make this case an error for the 3.23 series. Issue: #23386
* | | | CUDA: Ninja generator generates valid compile databaseRobert Maynard2022-03-301-15/+19
| |_|/ |/| | | | | | | | | | | | | | | | | The ninja generator has been updated to poperly write the compile database when the CUDA language has been enabled. Fixes #23368
* | | CMake 3.23.0v3.23.0Brad King2022-03-291-1/+1
| | |
* | | Merge topic 'cpack-ifw-validate-input' into release-3.23Brad King2022-03-281-2/+22
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e41f1ef6ff CPack/IFW: Add missing referenced source file validation Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: Konstantin Podsvirov <konstantin@podsvirov.pro> Merge-request: !7116
| * | | CPack/IFW: Add missing referenced source file validationCraig Scott2022-03-251-2/+22
| | | |
* | | | Merge topic 'bindexplib-arm64ec' into release-3.23Brad King2022-03-281-15/+43
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b019ee1a8d bindexplib: Exclude entry and exit thunks for arm64EC Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7112
| * | | | bindexplib: Exclude entry and exit thunks for arm64ECmoyo19972022-03-251-15/+43
| |/ / /
* | | | Merge topic 'aix-exe-exports' into release-3.23Brad King2022-03-281-3/+3
|\ \ \ \ | |/ / / |/| | / | | |/ | |/| | | | | | | a8dae21ac1 AIX: Fix executable ENABLE_EXPORTS in Makefile generators Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7120
| * | AIX: Fix executable ENABLE_EXPORTS in Makefile generatorsBrad King2022-03-261-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit afcd9fe669 (AIX: Add an option to disable automatic exports from shared libraries, 2020-01-30, v3.17.0-rc1~47^2) the population of the `<AIX_EXPORTS>` rule variable placeholder was accidentally added to the device linking rule rather than the main linking rule. This caused our `ExportImportList` script on AIX, when called for executables with `ENABLE_EXPORTS` set, to be given an `AIX_EXPORTS` file name that does not exist, leading to a warning from the `dump` tool. Move the population of the `<AIX_EXPORTS>` placeholder in the Makefile generators to the main link rule. Issue: #20290
| * | CMake 3.21.6v3.21.6Brad King2022-03-041-1/+1
| | |
| * | CMake 3.21.5v3.21.5Brad King2022-02-011-1/+1
| | |
* | | CMake 3.23.0-rc5v3.23.0-rc5Brad King2022-03-231-1/+1
| | |
* | | define_property(): Change constraints of INITIALIZE_FROM_VARIABLEKyle Edwards2022-03-231-4/+4
| | | | | | | | | | | | | | | | | | | | | Remove the requirement that the variable name have a prefix while keeping the suffix requirement. Require that the property name contains an underscore. Update docs and tests accordingly. Fixes: #23340
* | | Merge topic 'revert-link-interface-direct-for-3.23' into release-3.23Brad King2022-03-228-263/+25
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 687a91967f Revert INTERFACE_LINK_LIBRARIES_DIRECT feature for 3.23 branch Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7098
| * | | Revert INTERFACE_LINK_LIBRARIES_DIRECT feature for 3.23 branchBrad King2022-03-218-263/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commit f3ad061858 (Add usage requirements to update direct link dependencies, 2022-01-12, v3.23.0-rc1~44^2) and the property storage updates in its predecessor commit 193a999cd5 (cmTarget: Add INTERFACE_LINK_LIBRARIES_DIRECT{,_EXCLUDE} backtrace storage, 2022-01-06, v3.23.0-rc1~44^2~1) from the 3.23 release branch. After initial experience using the feature in practice, additional design considerations have been raised for discussion in the original issue. To avoid rushing this for the 3.23 series, we've decided to revert the feature for now so it can be revised for a future release. Issue: #22496
* | | | Merge topic 'cleanup-define_property' into release-3.23Brad King2022-03-221-13/+13
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 87c3b5e421 define_property(): Only test prefix if INITIALIZE_FROM_VARIABLE is given 9b50f221f6 Help: Update the main purpose of define_property() e993e2c52c Help: Clean up INITIALIZE_FROM_VARIABLE define_property() option Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Acked-by: Kyle Edwards <kyle.edwards@kitware.com> Merge-request: !7090
| * | | | define_property(): Only test prefix if INITIALIZE_FROM_VARIABLE is givenCraig Scott2022-03-191-13/+13
| |/ / /
* | | | productbuild: Don't write rootVolumeOnly attribute if writing domainsCraig Scott2022-03-211-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | The rootVolumeOnly attribute is deprecated. Apple docs say to use domains instead. Fixes: #23343
* | | | productbuild: Simplify internal CPACK_PRODUCTBUILD_DOMAINS usageCraig Scott2022-03-211-5/+4
|/ / / | | | | | | | | | | | | | | | | | | There's no benefit to storing the CPACK_PRODUCTBUILD_DOMAINS prefix in a variable and appending to it in the C++ code. It has the disadvantage of making it harder to find usages of the variables with a suffix appended to that string. Expand out the strings at the places they are used so that they are easier to spot.
* | | CMake 3.23.0-rc4v3.23.0-rc4Brad King2022-03-181-1/+1
| | |
* | | Merge topic 'always_prefer_last_source_dir' into release-3.23Brad King2022-03-182-23/+7
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | b44ad7992a cmake: Always prefer the last source directory provided Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7084
| * | | cmake: Always prefer the last source directory providedRobert Maynard2022-03-172-23/+7
| | | | | | | | | | | | | | | | Fixes: #23334
* | | | target_link_libraries: Restore LINK_ONLY for multiple static lib dependenciesBrad King2022-03-161-2/+27
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit c1e812ad4f (target_link_libraries: Improve tolerance of unquoted generator expressions, 2022-02-15, v3.23.0-rc2~11^2) we accumulate consecutive non-keyword arguments to recover an unquoted generator expression as a single entry. When given multiple consecutive non-genex library names, the grouping breaks our logic that expects each entry is either a raw target name or a genex. Revise the logic to only accumulate multiple arguments when they end inside a partial genex. This bug caused `target_link_libraries` to stop wrapping static library private dependencies in `$<LINK_ONLY:...>` for `INTERFACE_LINK_LIBRARIES` when multiple consecutive library names are given. Add a test case covering that behavior. Fixes: #23302
* | | CMake 3.23.0-rc3v3.23.0-rc3Brad King2022-03-101-1/+1
| | |
* | | CMakePresets.json: Add ${fileDir} macroKyle Edwards2022-03-071-0/+8
| | | | | | | | | | | | Fixes: #23214
* | | Merge topic 'file-set-name-requirements' into release-3.23Brad King2022-03-043-3/+16
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | b357d334fc target_sources(): Enforce stricter requirements for FILE_SET name Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7037
| * | | target_sources(): Enforce stricter requirements for FILE_SET nameKyle Edwards2022-03-033-3/+16
| | | | | | | | | | | | | | | | Fixes: #23286
* | | | Merge topic 'file-set-multiple-names' into release-3.23Brad King2022-03-041-5/+28
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8c23ecbd93 target_sources(): Process multiple FILE_SET arguments per block Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7040
| * | | | target_sources(): Process multiple FILE_SET arguments per blockKyle Edwards2022-03-031-5/+28
| |/ / / | | | | | | | | | | | | Fixes: #23287
* | | | Merge topic 'while-bug-compatibility' into release-3.23Brad King2022-03-041-3/+8
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | da2361ffb3 while: Restore tolerance of condition error 47d197745a Tests: Simplify RunCMake.{if,while} unbalanced parenthesis cases Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7041
| * | | while: Restore tolerance of condition errorAlex Turbov2022-03-031-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 880ca66b51 (Fix: `while()` can silently ignore incorrect condition, 2021-08-09, v3.22.0-rc1~238^2~4) we correctly reject the code set(paren "(") while(${paren}) endwhile() However, rejecting it breaks compatibility with projects that used such code accidentally. In CMake 3.21 and below, any error in the condition was ignored because the `false` result exited the loop first. Restore tolerance of the error for now. A policy will be needed to make it an error later. Note that the same condition with `if` was always correctly rejected. Fixes: #22524 Issue: #23296 Co-authored-by: Brad King <brad.king@kitware.com>
* | | | Merge topic 'cmake-dir-args' into release-3.23Brad King2022-03-031-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d2e9478321 Tests: Add RunCMake.CommandLine ExplicitiDirs explicit work directory 78e8f11456 cmake: Correct regression in `-B <dir> <src_dir>` 4091d5c58c Tests: Verify RunCMake.CommandLine ExplicitDirs source/build dirs 1b97f8f35c Tests: Clarify RunCMake.CommandLine ExplicitDirs case names Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7030
| * | | | cmake: Correct regression in `-B <dir> <src_dir>`Robert Maynard2022-03-021-1/+1
| | | | | | | | | | | | | | | | | | | | Fixes: #23285