Commit Graph

29470 Commits

Author SHA1 Message Date
vvs31415
dae5fe8b8f cmConditionEvaluator: More use of cmProp 2020-09-08 12:19:34 -04:00
Brad King
503d0f80e1 Merge topic 'generate-target-order'
aea465793e cmLocalVisualStudio7Generator: Consolidate target iteration
1527242745 cmLocalVisualStudio10Generator: Simplify target ordering by dependencies
48bf7192e7 cmLocalVisualStudio7Generator: Generate targets in dependency order
17aba9c9a6 cmLocalUnixMakefileGenerator3: Generate targets in dependency order
69ee18163b cmLocalGhsMultiGenerator: Generate targets in dependency order
c4e296a609 cmGlobalGenerator: Compute a global target ordering respecting dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5187
2020-09-08 11:25:17 -04:00
Brad King
d0ccc7cf2a Merge topic 'ispc_improvements'
a020787a9b ISPC: Support generation for multiple instruction sets
5a1750017e ISPC: Add compiler launcher support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5173
2020-09-08 11:19:28 -04:00
Brad King
b63f508e4d Merge topic 'GetExecutionListFile-by-ref'
879bd7fd9c cmStateSnapshot: Return const reference from GetExecutionListFile()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5186
2020-09-08 11:18:28 -04:00
Brad King
0bd9640968 Merge topic 'optimize-cmJoin'
38928ee3ee cmStringAlgorithms: Add faster cmJoin overloads for strings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5185
2020-09-08 11:17:29 -04:00
Marc Chevrier
56134c1708 Merge topic 'cmake_path'
eb583b0a66 cmake_path command: path management
212e953d35 cmCMakePath: Class for path handling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Acked-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5158
2020-09-08 08:49:12 -04:00
Kitware Robot
412cc37d35 CMake Nightly Date Stamp 2020-09-08 00:01:14 -04:00
Kyle Edwards
11a0c04472 Merge topic 'fix-compare'
4bc1486cd3 cmConditionEvaluator: Avoid comparing pointers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5189
2020-09-07 12:17:39 -04:00
Kitware Robot
726fe80759 CMake Nightly Date Stamp 2020-09-07 00:01:37 -04:00
Marc Chevrier
eb583b0a66 cmake_path command: path management
Fixes: #19568, #20922
2020-09-06 10:52:25 +02:00
Marc Chevrier
212e953d35 cmCMakePath: Class for path handling 2020-09-06 10:34:17 +02:00
Kitware Robot
46fbb75b21 CMake Nightly Date Stamp 2020-09-06 00:01:08 -04:00
Kitware Robot
1aed7c5d59 CMake Nightly Date Stamp 2020-09-05 00:01:24 -04:00
vvs31415
4bc1486cd3 cmConditionEvaluator: Avoid comparing pointers 2020-09-04 13:39:27 -04:00
Kyle Edwards
6ff33a2011 Merge topic 'use-tocstr'
1380b43764 Refactor: Use cmToCStr()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5184
2020-09-04 11:47:44 -04:00
Brad King
aea465793e cmLocalVisualStudio7Generator: Consolidate target iteration
Combine iteration with `cmLocalVisualStudio10Generator` and dispatch
generation of each target with a virtual `GenerateTarget` method.
2020-09-04 09:44:30 -04:00
Brad King
1527242745 cmLocalVisualStudio10Generator: Simplify target ordering by dependencies
Replace our own depth-first traversal with use of the global generator's
computed target order that respects dependencies.
2020-09-04 09:44:30 -04:00
Brad King
48bf7192e7 cmLocalVisualStudio7Generator: Generate targets in dependency order
Use the globally computed target ordering so that we generate all
of a target's dependencies before generating the target itself.
2020-09-04 09:44:30 -04:00
Brad King
17aba9c9a6 cmLocalUnixMakefileGenerator3: Generate targets in dependency order
Use the globally computed target ordering so that we generate all
of a target's dependencies before generating the target itself.
2020-09-04 09:44:30 -04:00
Brad King
69ee18163b cmLocalGhsMultiGenerator: Generate targets in dependency order
Use the globally computed target ordering so that we generate all
of a target's dependencies before generating the target itself.
2020-09-04 09:44:08 -04:00
Brad King
c4e296a609 cmGlobalGenerator: Compute a global target ordering respecting dependencies
Move this up from `cmGlobalXCodeGenerator`.  It will be useful for all
generators.
2020-09-04 09:31:06 -04:00
Robert Maynard
a020787a9b ISPC: Support generation for multiple instruction sets 2020-09-04 08:37:07 -04:00
Brad King
b03bc81d62 Merge topic 'pragma-once'
5585e8575b Help: Add note about #pragma once
407afc0f91 Bootstrap: Use #pragma once in cmThirdParty.h
aa7bce8495 Utilities/Scripts: Remove temporary #pragma once conversion script
bdca8b01d2 Modernize: Use #pragma once in all header files
093ba4061d Utilities/Scripts: Add temporary #pragma once conversion script

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5171
2020-09-04 07:16:35 -04:00
Kitware Robot
5cc01fe2ed CMake Nightly Date Stamp 2020-09-04 00:01:14 -04:00
Oleksandr Koval
879bd7fd9c cmStateSnapshot: Return const reference from GetExecutionListFile() 2020-09-04 00:17:32 +03:00
Oleksandr Koval
38928ee3ee cmStringAlgorithms: Add faster cmJoin overloads for strings
cmJoin() is often used with std::string ranges. Generic implementation
uses std::ostringstream which is not optimal. With strings we can avoid
operator<<() and make much faster implementation. Additional 'initial'
argument is useful for cmStringCommand.cxx:HandleAppendCommand().
2020-09-03 23:25:37 +03:00
Robert Maynard
5a1750017e ISPC: Add compiler launcher support 2020-09-03 11:46:11 -04:00
Vitaly Stakhovsky
1380b43764 Refactor: Use cmToCStr() 2020-09-03 11:36:54 -04:00
Kitware Robot
bdca8b01d2 Modernize: Use #pragma once in all header files
#pragma once is a widely supported compiler pragma, even though it is
not part of the C++ standard. Many of the issues keeping #pragma once
from being standardized (distributed filesystems, build farms, hard
links, etc.) do not apply to CMake - it is easy to build CMake on a
single machine. CMake also does not install any header files which can
be consumed by other projects (though cmCPluginAPI.h has been
deliberately omitted from this conversion in case anyone is still using
it.) Finally, #pragma once has been required to build CMake since at
least August 2017 (7f29bbe6 enabled server mode unconditionally, which
had been using #pragma once since September 2016 (b13d3e0d)). The fact
that we now require C++11 filters out old compilers, and it is unlikely
that there is a compiler which supports C++11 but does not support
#pragma once.
2020-09-03 09:30:21 -04:00
Brad King
ca5babfd7a Merge topic 'getdef'
11425041f0 cmMakefile::GetDefinition: return cmProp

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5179
2020-09-03 09:18:05 -04:00
Brad King
85e52ea704 Merge topic 'Fortran-visibility-var'
76cc687e98 Fortran: Initialize Fortran_VISIBILITY_PRESET property from variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5182
2020-09-03 09:16:57 -04:00
Brad King
0b6a007419 Merge topic 'ninja-multi-automoc-regression'
2a6471dd7b Merge branch 'master' into ninja-multi-automoc-regression
a9fd3a107d Ninja Multi-Config: Fix dependencies of utility targets
f1199bdc96 Ninja Multi-Config: Fix cleaning of utility targets with commands
657047cd24 Ninja Multi-Config: Fix clean:all target
c35d1927a5 Tests: Pass additional Qt information to Ninja and NMC tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5177
2020-09-03 08:47:33 -04:00
Kitware Robot
0782a69037 CMake Nightly Date Stamp 2020-09-03 00:01:11 -04:00
Kyle Edwards
2a6471dd7b Merge branch 'master' into ninja-multi-automoc-regression 2020-09-02 14:39:04 -04:00
Thomas G
76cc687e98 Fortran: Initialize Fortran_VISIBILITY_PRESET property from variable
The `CMAKE_Fortran_VISIBILITY_PRESET` variable is documented to
initialize the property.  Fix it.
2020-09-02 13:48:42 -04:00
Kyle Edwards
a9fd3a107d Ninja Multi-Config: Fix dependencies of utility targets
Fixes: #21118
2020-09-02 12:59:59 -04:00
Kyle Edwards
f1199bdc96 Ninja Multi-Config: Fix cleaning of utility targets with commands 2020-09-02 12:59:59 -04:00
Kyle Edwards
657047cd24 Ninja Multi-Config: Fix clean:all target 2020-09-02 12:59:59 -04:00
Brad King
68b674b8bc Merge topic 'xcode-custom-commands'
e33f8f078a Xcode: Avoid unnecessary duplication of custom commands across targets
8c60c49ae2 Xcode: Refactor custom command dependency expansion

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5176
2020-09-02 09:21:22 -04:00
Vitaly Stakhovsky
11425041f0 cmMakefile::GetDefinition: return cmProp 2020-09-02 07:27:32 -04:00
Kitware Robot
99b21e58e0 CMake Nightly Date Stamp 2020-09-02 00:01:11 -04:00
Brad King
e33f8f078a Xcode: Avoid unnecessary duplication of custom commands across targets
Do not attach a custom command to a target if it is already attached to one of
the target's dependencies.  The command's output will be available by the time
the target needs it because the dependency containing the command will have
already been built.

Since commit fb45559e09 (Xcode: Process targets in depth-first order during
generation, 2018-07-19, v3.13.0-rc1~293^2) we generate a target only after
generating its dependencies.  Therefore when visiting the custom commands in a
target, we can assume that custom commands in its dependencies have already
been visited.
2020-09-01 14:05:57 -04:00
Brad King
8c60c49ae2 Xcode: Refactor custom command dependency expansion
Compute and store the "real" dependencies earlier.
2020-09-01 14:05:47 -04:00
Brad King
8f73ff0c37 Merge topic 'target_genex_dependency'
f14b390198 GenEx: Remove unneeded dependencies from target info queries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5127
2020-09-01 09:59:08 -04:00
Craig Scott
3001e8b5d9 Merge topic 'xcode-link-phase-all'
525464ed2a Xcode: Use "Link Binary With Libraries" build phase in some cases
dc0898205c Xcode: Add special case for file type extension map for .xcassets
7b3d8411a2 Xcode: Refactor build setting append code and attribute getter naming

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5036
2020-09-01 09:38:05 -04:00
Robert Maynard
f14b390198 GenEx: Remove unneeded dependencies from target info queries
Only generate a graph dependency between a custom command and
a target when the custom command queries for the file path
of an artifact of the target.

This makes generator expressions such as `TARGET_FILE_DIR`
behave the same way as `TARGET_PROPERTY` which never generated
a graph dependency.
2020-09-01 09:25:19 -04:00
Brad King
f7fbe40513 Merge topic 'file_chmod'
7de60beddf file: Add CHMOD and CHMOD_RECURSE subcommands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Marc Chevrier <marc.chevrier@gmail.com>
Merge-request: !5122
2020-09-01 09:19:18 -04:00
Brad King
4a80483750 Merge topic 'file-RENAME-windows'
e39e9c4043 cmSystemTools: Teach RenameFile to disable Windows Search Indexing
b54190a406 cmSystemTools: Teach RenameFile to try for longer on directories
2f8ef095da cmSystemTools: Add more error handling to RenameFile on Windows
d78c22aa64 cmSystemTools: Improve RenameFile on Windows with MOVEFILE_WRITE_THROUGH
73f8240ae7 cmSystemTools: Factor out RenameFile wstring conversion on Windows
97fc44f70e cmSystemTools: Factor out MoveFileExW call in RenameFile
35039286eb cmSystemTools: Define directory-specific Windows filesystem retry settings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5161
2020-09-01 09:17:49 -04:00
Brad King
f10682b796 Merge topic 'ispc_lang_support'
5ece12b7e4 gitlab-ci: add ISPC to the Fedora CI image
8976817d6d ISPC: Update help documentation to include ISPC
2368f46ba4 ISPC: Support building with the MSVC toolchain
e783bf8aa6 ISPC: Support ISPC header generation byproducts and parallel builds
34cc6acc81 Add ISPC compiler support to CMake
419d70d490 Refactor some swift only logic to be re-used by other languages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5065
2020-09-01 09:15:39 -04:00
Brad King
94964b60a0 Merge topic 'automoc-depend-project-file'
776059ef0f Merge branch 'backport-3.17-automoc-depend-project-file'
6b20bbd2dd AutoMoc: Restore support for re-running after project file changes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5166
2020-09-01 09:09:30 -04:00