summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* CMake Nightly Date StampKitware Robot2022-02-011-1/+1
|
* Merge topic 'link-interface-direct'Brad King2022-01-3110-115/+375
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | f3ad061858 Add usage requirements to update direct link dependencies 193a999cd5 cmTarget: Add INTERFACE_LINK_LIBRARIES_DIRECT{,_EXCLUDE} backtrace storage 22d5427aa6 cmGeneratorTarget: Add LookupLinkItem option to consider own target name f3d2eab36a cmGeneratorTarget: Fix link interface caching of partial results d75ab9d066 cmGeneratorTarget: Clarify CMP0022 logic in ComputeLinkInterfaceLibraries f3e9e03fe0 cmGeneratorTarget: Simplify CMP0022 warning check 216aa14997 cmGeneratorTarget: Return early from ExpandLinkItems with no items 1bc98371d1 Tests: Remove unnecessary policy setting from ObjectLibrary test ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6886
| * Add usage requirements to update direct link dependenciesBrad King2022-01-296-26/+203
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Link line construction starts with `LINK_LIBRARIES` and appends dependencies from the transitive closure of `INTERFACE_LINK_LIBRARIES`. Only the entries of `LINK_LIBRARIES` are considered direct link dependencies. In some advanced use cases, particularly involving static libraries and static plugins, usage requirements need to update the list of direct link dependencies. This may mean adding new items, removing existing items, or both. Add target properties to encode these usage requirements: * INTERFACE_LINK_LIBRARIES_DIRECT * INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE Fixes: #22496
| * cmTarget: Add INTERFACE_LINK_LIBRARIES_DIRECT{,_EXCLUDE} backtrace storageBrad King2022-01-292-0/+61
| | | | | | | | These properties will be given meaning by later commits.
| * cmGeneratorTarget: Add LookupLinkItem option to consider own target nameBrad King2022-01-292-7/+14
| |
| * cmGeneratorTarget: Fix link interface caching of partial resultsBrad King2022-01-291-16/+14
| | | | | | | | | | | | | | | | | | | | `GetLinkInterface` and `GetLinkInterfaceLibraries` cache their results to avoid repeating work. In the case that the result does not depend on the "head" target, they re-use results computed from the first call with any "head" target. However, if `GetLinkInterfaceLibraries` is called first, then not all of the link interface is populated. If `GetLinkInterface` is later called, it needs to finish populating the link interface even if a partially completed interface was cached.
| * cmGeneratorTarget: Clarify CMP0022 logic in ComputeLinkInterfaceLibrariesBrad King2022-01-291-56/+59
| | | | | | | | | | | | Follow up commit 1d709ea2f5 (cmGeneratorTarget: Propagate backtraces from INTERFACE_LINK_LIBRARIES, 2021-12-15), which made the logic a bit more complicated due to having backtraces for CMP0022 NEW behavior.
| * cmGeneratorTarget: Simplify CMP0022 warning checkBrad King2022-01-291-7/+4
| | | | | | | | | | | | Since commit 1d709ea2f5 (cmGeneratorTarget: Propagate backtraces from INTERFACE_LINK_LIBRARIES, 2021-12-15) we can use the special storage of the property directly.
| * cmGeneratorTarget: Return early from ExpandLinkItems with no itemsBrad King2022-01-291-0/+3
| |
| * PCH: Clear link interface cache when adding PCH object to itBrad King2022-01-293-0/+14
| | | | | | | | | | | | | | On platforms using `CMAKE_LINK_PCH`, the implementation of `PRECOMPILE_HEADERS_REUSE_FROM`, when re-using the PCH from one object library in another, adds a PCH object file to the link interface. Clear any cached link interface to ensure it is used.
| * cmLinkItem: Clarify name of CMP0027 check memberBrad King2022-01-293-7/+7
| | | | | | | | | | | | | | The only purpose of `cmLinkImplItem`'s `FromGenex` member is to decide whether to check CMP0027. That won't be needed for link items added by new interfaces in the future. Clarify the name to indicate that we do not always need to know if the item came from a generator expression.
| * cmGeneratorExpressionDAGChecker: Re-order EvaluatingLinkLibraries conditionBrad King2022-01-291-3/+3
| | | | | | | | Place the modern properties first.
* | Merge topic 'shorter-obj'Brad King2022-01-311-12/+18
|\ \ | | | | | | | | | | | | | | | | | | | | | 5f8c5657a9 Shorten object name even if still longer than CMAKE_OBJECT_PATH_MAX Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !6915
| * | Shorten object name even if still longer than CMAKE_OBJECT_PATH_MAXNick Little2022-01-281-12/+18
| | | | | | | | | | | | | | | | | | | | | In some cases the shortened path may end up working in practice, even if it is over CMAKE_OBJECT_PATH_MAX, where the original path does not. If the original path is too long, do the MD5 substitution whenever it makes the path shorter. Retain the warning if it is still too long.
* | | Merge topic 'update-kwsys'Brad King2022-01-312-3/+12
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | e83bb75160 Merge branch 'upstream-KWSys' into update-kwsys d01d634bc7 KWSys 2022-01-29 (389a74dc) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6919
| * | | Merge branch 'upstream-KWSys' into update-kwsysBrad King2022-01-292-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | # By KWSys Upstream * upstream-KWSys: KWSys 2022-01-29 (389a74dc)
* | | | CMake Nightly Date StampKitware Robot2022-01-311-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2022-01-301-1/+1
|/ / /
* | | Merge topic 'gcc12-warning'Brad King2022-01-291-2/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | ae101921e8 Source: Avoid gcc 12 compilation warning Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6916
| * | | Source: Avoid gcc 12 compilation warningBrad King2022-01-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC 12 warns: warning: '%04d' directive output may be truncated writing between 4 and 11 bytes into a region of size 5 [-Wformat-truncation=] The surrounding logic guarantees the formatted integer will never be more than 4 bytes, but it doesn't hurt to use a larger buffer. This GCC behavior is documented: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104012#c5
* | | | CMake Nightly Date StampKitware Robot2022-01-291-1/+1
| | | |
* | | | Merge topic 'ibmclang-compiler'Brad King2022-01-281-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8c1731546c Help: Add release note for IBM Open XL C/C++ compiler support 24da80b70a Utilities: Suppress warnings in third-party code with IBMClang 6da99e671c IBMClang: Add support for IBM Open XL C/C++ Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6785
| * | | | Utilities: Suppress warnings in third-party code with IBMClangAaron Liu2022-01-271-1/+1
| | | | |
* | | | | Merge topic 'cuda_vs_arch_all'Brad King2022-01-281-0/+4
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | daf372c4d6 CUDA: Fix issuing error if default architecture detection fails 7a0d098352 CUDA: Error on empty/invalid CMAKE_CUDA_ARCHITECTURES set by user d19273bc7b CUDA: Support all and all-major on Visual Studio 5f667d783a CUDA: Actually use reverse architecture deprecation order for Clang Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Brad King <brad.king@kitware.com> Merge-request: !6912
| * | | | | CUDA: Support all and all-major on Visual StudioRaul Tambre2022-01-271-0/+4
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | The Visual Studio integration's CodeGeneration option only knows how to generate a -gencode flag, which doesn't recognize all. Add a special case to pass these two as regular additional flags.
* | | | | Merge topic 'timestamp-microseconds'Brad King2022-01-282-11/+57
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | c050d6a01e string(TIMESTAMP): add %f specifier for microseconds Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6910
| * | | | | string(TIMESTAMP): add %f specifier for microsecondsPeter Würth2022-01-282-11/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The %f specified extends the string(TIMESTAMP) and file(TIMESTAMP) commands to output the timestamp with a microsecond resolution. This convention is offered by python's datetime module. Before, the precision was limited to seconds. The implementation is done by extending existing cmTimestamp methods with a `microseconds` parameter. This parameter is optional in order to be backwards compatible. The timestamps are now received in a cross-platform manner using libuv, since the standard C functions like time() don't allow for sub-second precision. This requires libuv 1.28 or higher. We already require higher than that on Windows, so update the required version for other platforms. Implements: #19335
* | | | | | Merge topic 'message-flush'Brad King2022-01-281-2/+2
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 634587e322 message: Restore explicit flushing of messages on stderr Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6913
| * | | | | message: Restore explicit flushing of messages on stderrBrad King2022-01-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the `cmake` command-line tool, the `message()` command with no message mode argument prints the message stderr using the C++ `cerr` stream. Since commit 0a0a0f8a74 (cmMessenger: Color messages to terminal by type, 2021-05-18, v3.21.0-rc1~146^2) and an update by commit c7a8c9c811 (cmMessenger: Revert to non-color messages on Windows, 2021-07-20, v3.21.1~15^2), we print the newline at the end of the message using just `\n`. We've now observed some cases of output on stdout and stderr getting jumbled when the two go to the same file descriptor. Previously the newline was printed with `endl`, which implicitly flushes. Flush explicitly to restore that behavior. Fixes: #23155
* | | | | | CMake Nightly Date StampKitware Robot2022-01-281-1/+1
| |_|/ / / |/| | | |
* | | | | Merge topic 'enlarge-build-file-stream-buffer'Brad King2022-01-272-0/+14
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bbdb000c55 GlobalNinjaGenerator: enlarge file stream buffer Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6903
| * | | | | GlobalNinjaGenerator: enlarge file stream bufferClemens Wasser2022-01-262-0/+14
| | | | | |
* | | | | | Merge topic 'encode-literal-inplace'Brad King2022-01-272-6/+11
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5c3f188bef GlobalNinjaGenerator: Add EncodeLiteralInplace which doesn't copy Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6904
| * | | | | | GlobalNinjaGenerator: Add EncodeLiteralInplace which doesn't copyClemens Wasser2022-01-252-6/+11
| |/ / / / /
* | | | | | Merge topic 'vs-version-enum-class'Brad King2022-01-2712-121/+126
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a88f98b3be Make cmGlobalVisualStudioGenerator::VSVersion enum class Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6902
| * | | | | | Make cmGlobalVisualStudioGenerator::VSVersion enum classSumit Bhardwaj2022-01-2512-121/+126
| | | | | | |
* | | | | | | Merge topic 'lcc-lexer-warnings'Brad King2022-01-271-0/+4
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a8fbe9a2fa LexerParser: Suppress LCC warnings in generated code Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6896
| * | | | | | | LexerParser: Suppress LCC warnings in generated codeBrad King2022-01-261-0/+4
| | | | | | | |
* | | | | | | | Merge topic 'nmake-rsp-encoding'Brad King2022-01-271-2/+15
|\ \ \ \ \ \ \ \ | | |_|_|/ / / / | |/| | | / / / | |_|_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d5ee6d50ee NMake: Use UTF-8 BOM in response files only with MSVC tooling cab631c2e2 NMake: Document response file encoding heuristic in a comment Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !6905
| * | | | | | NMake: Use UTF-8 BOM in response files only with MSVC toolingBrad King2022-01-261-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit f3f57cc4ed (NMake: Use UTF-8 with BOM if supported by nmake, 2021-04-22, v3.21.0-rc1~217^2), we add a BOM to response files to tell MSVC tooling that they are encoded as UTF-8. However, the "NMake Makefiles" generator may also be used with non-MSVC toolchains that do not understand the BOM. Update the response file encoding selection heuristic to add the BOM only with MSVC tooling. Fixes: #23143
| * | | | | | NMake: Document response file encoding heuristic in a commentBrad King2022-01-261-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit f3f57cc4ed (NMake: Use UTF-8 with BOM if supported by nmake, 2021-04-22, v3.21.0-rc1~217^2) the encoding of response files is selected based on the makefile encoding. In principle these may be orthogonal, but in practice it is a useful heuristic. Call out this heuristic in a comment, and leave a FIXME to do something better.
| * | | | | | Merge branch 'IntelLLVM-Fortran-copy-mod' into release-3.21Brad King2021-11-171-1/+1
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Merge-request: !6740
* | | | | | | | CMake Nightly Date StampKitware Robot2022-01-271-1/+1
| | | | | | | |
* | | | | | | | Merge topic 'parser-cleanup'Brad King2022-01-264-86/+68
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4959276c02 cmListFileCache: Remove cmCommandContext 0386641142 cmListFileCache: Rename FromCommandContext to FromListFileFunction 3c4fa4c892 cmListFileCache: Move cmListFileFunction earlier Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !6899
| * | | | | | | | cmListFileCache: Remove cmCommandContextBrad King2022-01-251-31/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Subsume it inside `cmListFileFunction`.
| * | | | | | | | cmListFileCache: Rename FromCommandContext to FromListFileFunctionBrad King2022-01-254-18/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Accept a `cmListFileFunction` instead of a `cmCommandContext`.
| * | | | | | | | cmListFileCache: Move cmListFileFunction earlierBrad King2022-01-251-44/+44
| | |_|_|/ / / / | |/| | | | | |
* | | | | | | | Merge topic 'cache-short-paths'Brad King2022-01-261-4/+26
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6f835c3699 cmOutputConverter: Cache Short Paths Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6887
| * | | | | | | | cmOutputConverter: Cache Short PathsClemens Wasser2022-01-251-4/+26
| | |_|_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cache the Short Paths since we only convert the same few paths anyway and calling `GetShortPathNameW` is really expensive. Also, compile the code path only on Windows hosts since it only runs when using a Windows Shell anyway.
* | | | | | | | CMake Nightly Date StampKitware Robot2022-01-261-1/+1
| |/ / / / / / |/| | | | | |