summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* CMake Nightly Date StampKitware Robot2023-01-291-1/+1
|
* CMake Nightly Date StampKitware Robot2023-01-281-1/+1
|
* Merge topic 'vs-asm-flags'Brad King2023-01-271-0/+4
|\ | | | | | | | | | | | | | | 24bcad5bac VS: Honor compile options for ASM_NASM b44714a642 VS: Honor compile options for ASM_MARMASM Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8125
| * VS: Honor compile options for ASM_NASMBrad King2023-01-261-0/+2
| | | | | | | | | | | | | | | | The Ninja and Makefile generators honor `target_compile_options` and friends for ASM_NASM `.asm` sources. Teach the VS generator to honor them too for consistency. Issue: #24289
| * VS: Honor compile options for ASM_MARMASMBrad King2023-01-261-0/+2
| | | | | | | | | | | | | | | | The Ninja and Makefile generators honor `target_compile_options` and friends for ASM_MARMMASM `.asm` sources. Teach the VS generator to honor them too for consistency. Issue: #24289
* | Merge topic 'jmalak-master-patch-responsefile'Brad King2023-01-273-6/+12
|\ \ | | | | | | | | | | | | | | | | | | | | | a6bdf54a5e Watcom: Fix double-quote to be single-quote in response files for wlink Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8119
| * | Watcom: Fix double-quote to be single-quote in response files for wlinkJiri Malak2023-01-263-6/+12
| |/ | | | | | | | | Response files contained double-quote for any response file, but response files for wlink must contains single-quote. This is fix for libraries list response file. Problem for object file list was fixed by MR !8115
* | CMake Nightly Date StampKitware Robot2023-01-271-1/+1
|/
* Merge topic 'xcode-swift-inherited-flags'Brad King2023-01-261-0/+3
|\ | | | | | | | | | | | | 01c1d81527 Xcode: Inherit Swift flags and compilation conditions Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8122
| * Xcode: Inherit Swift flags and compilation conditionsRoss Kilgariff2023-01-251-0/+3
| | | | | | | | | | | | | | | | Extend the change from commit dfaf55fbfd (Xcode: add extra '$(inherited)' entries using InheritBuildSettingAttribute, 2021-05-03, v3.21.0-rc1~182^2) to cover Swift flags and compilation conditions, allowing CocoaPods and CMake to interoperate when used in the same project.
* | Merge topic 'jmalak-master-patch-watcomquote'Brad King2023-01-265-26/+21
|\ \ | | | | | | | | | | | | | | | | | | | | | a1d065e5c7 Watcom: Replace WATCOMQUOTE format by UseWatcomQuote attribute Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8115
| * | Watcom: Replace WATCOMQUOTE format by UseWatcomQuote attributeJiri Malak2023-01-245-26/+21
| | | | | | | | | | | | | | | | | | | | | Replace WATCOMQUOTE output format by UseWatcomQuote attribute to properly handle single quote This attribute is used globaly only for Watcom linker to handle single-quote separator instead of double-quote it doesn't mean different output format only change of quoting separator It is now applied to any output form SHELL/RESPONSE/NINJAMULTI if Watcom linker is used otherwise double-quote is used
* | | Merge topic 'vs-BuildInParallel'Brad King2023-01-262-6/+16
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 8024c41685 VS: Do not concurrently build custom commands with generated MAIN_DEPENDENCY Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8120
| * | | VS: Do not concurrently build custom commands with generated MAIN_DEPENDENCYBrad King2023-01-252-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 33c15ae2b9 (VS: Build custom commands concurrently when possible, 2023-01-19) several tests have failed intermittently with the VS generator. It seems that if the `BuildInParallel` setting is attached to a generated input: <CustomBuild Include="generated_input.txt"> <BuildInParallel Condition="...">true</BuildInParallel> <Command Condition="...">copy geneated_input.txt output.txt</Command> ... </CustomBuild> then MSBuild does not wait for the input to be generated before running the command. This occurs when using `add_custom_command`'s `MAIN_DEPENDENCY`, so avoid using `BuildInParallel` in that case. Issue: #18405
* | | | CMake Nightly Date StampKitware Robot2023-01-261-1/+1
| |_|/ |/| |
* | | Merge topic 'swiftmodule-dependency-tracking'Brad King2023-01-251-25/+52
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | 1730d208b5 Add incremental Swift static lib build test bf3a8ef6d5 Ninja: Swift: Add dependency edge to swiftmodule file d0b469b7e0 Ninja: NFC: refactor swift module name computations Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8084
| * | Ninja: Swift: Add dependency edge to swiftmodule fileEvan Wilde2023-01-211-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Swiftmodules act like headers for Swift, but are generated by the compiler while building the module. Unlike headerfiles in a pure C/C++ world, where the compiler generates the appropriate depfile. We don't have We're already adding the swiftmodule as an output from swift-linked targets, but aren't using that on inputs. This dependency edge is most important for static libraries in incremental builds. Suppose we have two static libraries, A, and B, and an executable E. B "links" against A, and E links against B. In a C/C++ environment, the library link dependency edge will run from E to both A and B, but there won't be an edge from B to A. If A is changed, the only way this should affect B is if the public interface changes, in which case, the headers will also change. The dep file contains the header link, so Ninja will rebuild B when appropriate. With Swift in an incremental build, B sees the order-dependency on A, but A already exists. If A is changed in a way that changes the public interface, the swiftmodule will change, but since we don't track it, we don't rebuild B, resulting in the final executable to fail to link.
| * | Ninja: NFC: refactor swift module name computationsEvan Wilde2023-01-211-25/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | In order to handle determining the swiftmodule name to add to the ninja dependency graph, we'll need to be able to compute the swiftmodule name for the dependency target, not just the current target. This patch refactors the computation of the module name out of inaccessible lambdas and into static functions that can compute the swiftmodule name from the generator and the target.
* | | CMake Nightly Date StampKitware Robot2023-01-251-1/+1
| |/ |/|
* | Merge topic 'cxxmodules-ninja-1.11'Brad King2023-01-242-10/+17
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 8d4e510a44 Merge branch 'backport-cxxmodules-ninja-1.11' into cxxmodules-ninja-1.11 7abddcab08 Ninja: require Ninja 1.11 for C++ module support 0512428ad9 Ninja: require Ninja 1.11 for C++ module support Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8099
| * | Ninja: require Ninja 1.11 for C++ module supportBen Boeckel2023-01-232-10/+17
| | | | | | | | | | | | | | | See: https://gitlab.kitware.com/cmake/cmake/-/issues/18355#note_1296721 See: https://github.com/ninja-build/ninja/pull/1937
* | | CMake Nightly Date StampKitware Robot2023-01-241-1/+1
|/ /
* | Merge topic 'genex-CONFIG-validate-all'Brad King2023-01-231-3/+21
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 910ada1a88 Genex: $<CONFIG:> syntax of all entries checked 42e417ad12 GeneratorExpression Tests: Remove duplicate test entry Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8082
| * | Genex: $<CONFIG:> syntax of all entries checkedRobert Maynard2023-01-201-3/+21
| | | | | | | | | | | | Fixes #24327
* | | Merge topic 'vs-BuildInParallel'Brad King2023-01-234-3/+20
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 33c15ae2b9 VS: Build custom commands concurrently when possible Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8093
| * | | VS: Build custom commands concurrently when possibleIvan Zinkevich2023-01-234-3/+20
| | | | | | | | | | | | | | | | | | | | | | | | Enable the `BuildInParallel` setting in VS project files when supported. Fixes: #18405
* | | | Merge topic 'try_compile-verbose'Brad King2023-01-231-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | faa950a155 try_compile: Run native build tool with verbose output Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8095
| * | | | try_compile: Run native build tool with verbose outputBrad King2023-01-201-1/+1
| |/ / / | | | | | | | | | | | | | | | | | | | | Make the compiler command lines visible in the configure log. Issue: #23200
* | | | CMake Nightly Date StampKitware Robot2023-01-231-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2023-01-221-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2023-01-211-1/+1
| |_|/ |/| |
* | | Merge topic 'configure-log'Brad King2023-01-202-11/+0
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 317aac14ef cmake: Stop pointing users at logs on configure errors eae1398d09 cmake --system-information: Stop dumping CMake{Output,Error}.log Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8094
| * | | cmake: Stop pointing users at logs on configure errorsBrad King2023-01-192-11/+0
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 18e1bfbb3c (cmake: On configure error suggest looking at CMake*.log files, 2013-07-09, v2.8.12~210^2), when configuring a project fails, we print `See also .../CMake{Output,Error}.log` near the end of the output. This was intended to help users find failures in system and compiler inspection checks, but for normal project errors the messages may be misleading. The logs may contain incidental errors that are part of normal operation and do not need to be addressed by the user. Since commit f6ed2585e5 (Modules: Record system inspection steps in the configure log, 2023-01-16), CMake's builtin modules no longer log information to the old-style `CMake{Output,Error}.log` files anyway, so stop mentioning them. Fixes: #22131 Issue: #23200
* | | Merge topic 'ninja-swift-exported-executables'Brad King2023-01-201-8/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 4165eb3d0b Ninja: Emit swiftmodule from executable with exports Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8048
| * | | Ninja: Emit swiftmodule from executable with exportsEvan Wilde2023-01-191-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for tracking the swiftmodules for executables exporting symbols. This fixes a bug in the earlier implementation around emitting the swiftmodule. Previously, the code would use `CMAKE_EXE_EXPORTS_Swift_FLAG` to inject the `-emit-module`, and module path information into the `CMAKE_Swift_LINK_EXECUTABLE` rule. Because Swift skips the build step and only runs during the link phase, these flags were injected in `cmNinjaNormalTargetGenerator::ComputeLinkCmd` instead of `cmLocalGenerator::GetTargetFlags` where it is done normally. Unfortunately, injecting in `ComputeLinkCmd` didn't do anything because we have a `linkCmd` so `ComputeLinkCmd` exits early, before the EXE_EXPORT flags get added to the link command. Instead of playing with that flag, CMake checks `CMAKE_Swift_LINK_EXECUTABLE_WITH_EXPORTS` and uses that as the link rule if it exists and falls back on `CMAKE_Swift_LINK_EXECUTABLE`. I've defined that variable in terms of `CMAKE_Swift_LINK_EXECUTABLE` with the necessary additional flags for emitting the swift module instead. This has the same end effect as the desired behavior, but simplifies things a bit. Since we're generating the swiftmodule for executables with exports, I've also updated the dependency graph to include the swiftmodule as an output in the build dependency graph if the executable has exports. Tests updated: - RunCMake/NoWorkToDo: Ensure that the build graph does not result in unnecessary rebuilds with exporting executables. - SwiftOnly: Ensure that we can consume functions defined in the executable by a library getting linked into said executable.
* | | | Merge topic 'cygwin-no-legacy-win32'Brad King2023-01-203-15/+0
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a429e4b9b1 CYGWIN: Drop pre-2.8.4 compatibility mode CMAKE_LEGACY_CYGWIN_WIN32 Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8096
| * | | | CYGWIN: Drop pre-2.8.4 compatibility mode CMAKE_LEGACY_CYGWIN_WIN32Brad King2023-01-193-15/+0
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to CMake 2.8.4 (released in 2011), we defined `WIN32` on CYGWIN. That was removed, but an undocumented `CMAKE_LEGACY_CYGWIN_WIN32` compatibility mode was left to help projects transition. Only projects that do not require at least 2.8.4 as their minimum CMake version need the compatibility mode. We've also long warned about projects that do not require at least 2.8.12, so it is now reasonable to remove the legacy compatibility mode.
* | | | Merge topic 'print-configure-generate-time'Brad King2023-01-201-2/+19
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5f0c5ec49b cmake: Print configure/generate time Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: scivision <michael@scivision.dev> Merge-request: !8083
| * | | | cmake: Print configure/generate timeKyle Edwards2023-01-191-2/+19
| | |_|/ | |/| |
* | | | Merge topic 'update-kwsys'Brad King2023-01-2015-26/+26
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dae189fb09 Merge branch 'upstream-KWSys' into update-kwsys 4ac17cff42 KWSys 2023-01-19 (be3c441e) Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8092
| * | | | Merge branch 'upstream-KWSys' into update-kwsysBrad King2023-01-1915-26/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # By KWSys Upstream * upstream-KWSys: KWSys 2023-01-19 (be3c441e)
* | | | | CMake Nightly Date StampKitware Robot2023-01-201-1/+1
| |_|/ / |/| | |
* | | | Merge topic 'optimize-target-depends-closure'Brad King2023-01-192-56/+68
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1f16af01f4 cmGlobalNinjaGenerator: Optimize target depends closure Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8079
| * | | | cmGlobalNinjaGenerator: Optimize target depends closurePierre Testart2023-01-172-56/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rewrite AppendTargetDependsClosure method to only cache local target outputs, not including outputs from dependencies. Caching all recursive target outputs causes much time to be spent merging sets that have many elements in common (from targets that are included through multiple dependency paths). It is faster to always iterate over all dependencies instead.
* | | | | Merge topic 'optimize-full-name-function'Brad King2023-01-194-91/+94
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | a525f5f1bf cmGeneratorTarget: Cache full name components Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8033
| * | | | cmGeneratorTarget: Cache full name componentsPierre Testart2023-01-184-91/+94
| | | | | | | | | | | | | | | | | | | | | | | | | Cache the result of cmGeneratorTarget::GetFullNameInternalComponents to improve performance.
* | | | | Merge topic 'clang-format-15'Brad King2023-01-1914-51/+56
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 33abef7416 Revise C++ coding style using clang-format-15 57221fd56f Empty commit at end of history preceding clang-format-15 style transition 6739d57948 clang-format.bash: update to clang-format-15 9ee57226bc clang-format: Add comments to suppress some formatting Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8086
| * | | | | Revise C++ coding style using clang-format-15Kitware Robot2023-01-1813-51/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Run the `clang-format.bash` script to update all our C and C++ code to a new style defined by `.clang-format`. Use `clang-format` version 15. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit. Fixes: #24315
| * | | | | clang-format: Add comments to suppress some formattingBrad King2023-01-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Preserve manually-formatted blocks.
* | | | | | CMake Nightly Date StampKitware Robot2023-01-191-1/+1
|/ / / / /