Marc Chevrier
2faa3f6c55
Refactoring: Third-parties public headers are under cm3p prefix
...
Fixes : #20666
2020-05-07 12:06:08 +02:00
Kyle Edwards
d837f8b6fb
Merge branch 'master' into ninja-order-only-fix
2020-04-23 12:47:22 -04:00
Kyle Edwards
b45976fe10
Ninja: Remove config suffix from order-only target
...
Fixes : #20621
2020-04-23 12:46:58 -04:00
Brad King
aae1efc7d2
Merge topic 'ninja-fortran-doc'
...
f2fa7d20b2 Merge branch 'backport-3.17-ninja-fortran-doc' into ninja-fortran-doc
fa31c195b8 Ninja: Document that Fortran support is available with Ninja 1.10+
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4626
2020-04-20 07:53:49 -04:00
Brad King
f2fa7d20b2
Merge branch 'backport-3.17-ninja-fortran-doc' into ninja-fortran-doc
2020-04-17 11:04:56 -04:00
Brad King
fa31c195b8
Ninja: Document that Fortran support is available with Ninja 1.10+
...
Ninja 1.10 was released in Jan 2020 and has the features we need
to support Fortran. Replace documentation that mentions Kitware's
branch with mention of Ninja 1.10+ instead.
2020-04-17 10:58:53 -04:00
Marc Chevrier
aacd4e4a90
Refactoring: add cm::contains to <cmext/algorithm>
2020-04-17 10:00:03 +02:00
Brad King
413d26030f
cmGlobalNinjaGenerator: Remove outdated comment
2020-04-13 11:02:59 -04:00
Kyle Edwards
d54f0aa9b7
Merge branch 'master' into ninja-order-depends
2020-04-07 14:54:54 -04:00
Kyle Edwards
2f949be4b3
Ninja: Make config uppercase in object order target
...
Fixes : #20539
2020-04-07 14:28:35 -04:00
Brad King
d6119e2305
Merge topic 'cleanup-endls-1'
...
3fdd8db3aa Refactor: Avoid `std::endl` where it's not necessary (part 1)
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4513
2020-03-27 07:51:27 -04:00
Alex Turbov
3fdd8db3aa
Refactor: Avoid std::endl where it's not necessary (part 1)
...
The `std::endl` manupulator, except inserting `\n` character, also
performs `os.flush()`, which may leads to undesired effects (like
disk I/O in the middle of forming data strings). For the
`std::stringstream` it also has no meaning.
2020-03-26 11:36:57 +08:00
Daan De Meyer
e565053bce
Ninja: Remove unnecessary newlines in compile commands
2020-03-23 21:34:19 +01:00
Brad King
9871190dd7
Merge topic 'ninja-multi-custom-command-deps'
...
081c4679f7 Ninja Multi-Config: Don't build target dependencies for custom commands
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4423
2020-03-05 07:24:49 -05:00
Brad King
cf0dc5efbf
Merge topic 'ninja-multi-custom-command-deps' into release-3.17
...
081c4679f7 Ninja Multi-Config: Don't build target dependencies for custom commands
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4423
2020-03-05 07:24:48 -05:00
Brad King
26f728ca78
Merge topic 'ninja-multi-spurious-unused-variables'
...
8b799f80e3 Ninja Multi-Config: Fix spurious unused variable warning
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4421
2020-03-04 08:18:03 -05:00
Kyle Edwards
8b799f80e3
Ninja Multi-Config: Fix spurious unused variable warning
...
Fixes : #20381
2020-03-03 15:52:36 -05:00
Kyle Edwards
081c4679f7
Ninja Multi-Config: Don't build target dependencies for custom commands
...
If cross-config mode is used, and a target depends on another target
as well as a custom command, we don't want the custom command to also
depend on the depended target, as that would build targets unnecessarily.
Fix this behavior.
2020-03-03 15:15:13 -05:00
Brad King
f18c72815b
Merge topic 'ninja-multi-variable-shuffle-again'
...
c794b70f19 Ninja Multi-Config: Always generate build.ninja
9590c3a400 Generator: Don't allow Ninja Multi-Config variables on other generators
7a63dafafb Ninja Multi-Config: Remove "NMC" from variable names
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4403
2020-02-28 11:32:07 -05:00
Kyle Edwards
c794b70f19
Ninja Multi-Config: Always generate build.ninja
...
If CMAKE_DEFAULT_BUILD_TYPE is not specified, use the first item
from CMAKE_CONFIGURATION_TYPES instead.
2020-02-27 10:39:35 -05:00
Kyle Edwards
7a63dafafb
Ninja Multi-Config: Remove "NMC" from variable names
...
Also rename `..._DEFAULT_BUILD_FILE_CONFIG` to `..._DEFAULT_BUILD_TYPE`.
These name changes make the variables meaningful for future use by other
generators.
2020-02-27 09:22:08 -05:00
Kyle Edwards
665c8fde8b
Merge branch 'backport-ninja-multi-framework-dependency-autogen-fix' into ninja-multi-framework-dependency-autogen-fix
2020-02-17 10:51:48 -05:00
Kyle Edwards
7abc3d61ac
Ninja Multi-Config: Fix issue with framework dependencies and Autogen
...
Fixes : #20345
2020-02-17 08:24:57 -05:00
Kyle Edwards
72229159d7
Merge topic 'ninja-strcat-usage'
...
6e65b869c3 cmNinjaTargetGenerator: cmStrCat usage
9f6544048f cmGlobalNinjaGenerator: cmStrCat usage
04ac0ea501 cmGlobalNinjaGenerator: factor out /all target name computation
a85bea173a cmGlobalNinjaGenerator: avoid unnecessary string addition
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4347
2020-02-12 11:59:21 -05:00
Brad King
566a9c8467
Merge topic 'ninja-multi-default-configs-fix'
...
46c836644d Ninja Multi-Config: Fix issue with "all" in CMAKE_NMC_DEFAULT_CONFIGS
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4349
2020-02-12 09:15:54 -05:00
Kyle Edwards
46c836644d
Ninja Multi-Config: Fix issue with "all" in CMAKE_NMC_DEFAULT_CONFIGS
...
Prior to this fix, CMAKE_NMC_DEFAULT_CONFIGS would inherit "all" from
the union of CMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG and
CMAKE_NMC_CROSS_CONFIGS. This is inconsistent with the behavior of the
"all" target signifying CMAKE_NMC_CROSS_CONFIGS. Update "all" in
CMAKE_NMC_DEFAULT_CONFIGS to inherit only from CMAKE_NMC_CROSS_CONFIGS.
2020-02-11 10:49:54 -05:00
Ben Boeckel
9f6544048f
cmGlobalNinjaGenerator: cmStrCat usage
2020-02-11 03:55:50 -05:00
Ben Boeckel
04ac0ea501
cmGlobalNinjaGenerator: factor out /all target name computation
2020-02-11 03:55:50 -05:00
Ben Boeckel
a85bea173a
cmGlobalNinjaGenerator: avoid unnecessary string addition
2020-02-11 03:55:50 -05:00
Brad King
4e44cbc673
Merge topic 'ninja-multi-default-config-fix'
...
1844be451e Ninja Multi-Config: Fix issue with CMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4331
2020-02-07 09:26:37 -05:00
Brad King
135378fd18
Merge topic 'ninja-multi-default-config-fix' into release-3.17
...
1844be451e Ninja Multi-Config: Fix issue with CMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4331
2020-02-07 09:26:36 -05:00
Brad King
6c142ac7aa
Merge topic 'ninja-multi-no-minsizerel'
...
9e219de4fb Ninja Multi-Config: Don't include MinSizeRel by default
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: Ben Boeckel <ben.boeckel@kitware.com >
Merge-request: !4326
2020-02-07 09:17:26 -05:00
Kyle Edwards
1844be451e
Ninja Multi-Config: Fix issue with CMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG
...
Fix an issue where CMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG is specified
and CMAKE_NMC_CROSS_CONFIGS is not, which results in a false error
with CMAKE_NMC_DEFAULT_CONFIGS.
2020-02-06 14:31:13 -05:00
Kyle Edwards
9e219de4fb
Ninja Multi-Config: Don't include MinSizeRel by default
2020-02-06 11:07:38 -05:00
Kyle Edwards
65679ed8d9
Ninja: Move rules.ninja into CMakeFiles
...
Since this is an implementation detail, it should not be user-
visible. Move it into the implementation directory.
2020-02-05 13:52:54 -05:00
Kyle Edwards
16a4ba5b31
Ninja Multi-Config: Use build.ninja if cmake --build has no --config
...
If cmake --build is called with no --config argument, and a
build.ninja file is available, use that instead of defaulting to the
Debug config.
2020-02-04 14:13:07 -05:00
Ben Boeckel
f4e02c46fc
cmGlobalNinjaGenerator: run ninja tools in the build directory
...
Fixes : #20303
2020-02-03 15:31:26 -05:00
Kyle Edwards
b966f86d86
Ninja Multi-Config: Shuffle variables around
...
Remove redundant variable CMAKE_NINJA_MULTI_CROSS_CONFIG_ENABLE.
Rename other variables. Document and improve handling of error
conditions.
2020-02-03 13:27:51 -05:00
Brad King
38ee7db2ac
Merge topic 'mixed-mode-multi-arch'
...
15f6606abd Swift: disallow multiple `CMAKE_OSX_ARCHITECTURES` with Swift
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4283
2020-01-29 10:32:38 -05:00
Saleem Abdulrasool
15f6606abd
Swift: disallow multiple CMAKE_OSX_ARCHITECTURES with Swift
...
This disallows the use of multiple values in `CMAKE_OSX_ARCHITECTURES`
with Swift which does not support FAT compilation.
2020-01-28 10:13:28 -08:00
Brad King
ccaa0bccc4
Ninja: Do not clean metadata when re-generating inside a running build
...
When `ninja` re-runs CMake to re-generate the build system, do not try
to use the ninja tools to update metadata on Windows. The outer ninja
process is already holding the files open.
Issue: #20274
2020-01-27 15:39:04 -05:00
Brad King
657820a00b
Ninja: Track when running to re-generate during a build
...
Tell CMake explicitly when it is re-running inside a `ninja` invocation
to re-generate the build system.
2020-01-27 15:39:04 -05:00
Brad King
b12b013028
Ninja: Factor metadata cleanup into dedicated method
2020-01-27 15:39:04 -05:00
Brad King
5d92e60d81
Ninja: Skip cleandead and recompact if build.ninja is missing
...
In error cases the `build.ninja` file may not exist. Skip running ninja
tools that require it so that we do not generate additional errors.
2020-01-27 15:09:18 -05:00
Brad King
dd0a4718fd
Ninja: Fix CMAKE_NINJA_OUTPUT_PATH_PREFIX with Ninja 1.10
...
The ninja 1.10 tools we use since commit fb18215904 (Ninja: clean ninja
metadata once generated, 2019-05-13) expect `build.ninja` to be
available and loadable. In commit 6cc74b6140 (cmGlobalNinjaGenerator:
avoid cleandead and recompact in Ninja-Multi, 2020-01-22) we added a
condition to exclude the tools in a case where `build.ninja` is not
available. Generalize that condition using a local variable and extend
it for the case that `build.ninja` is not loadable in the current
directory because it is meant to be a sub-ninja for a higher directory.
2020-01-27 15:09:18 -05:00
Brad King
072a95350c
Merge topic 'ninja-multi-cross-configs'
...
b7a2baf38c Ninja Multi-Config: Add variable to control configs used in cross-config build
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4269
2020-01-24 15:02:20 -05:00
Brad King
89a93348d5
Merge topic 'multi-ninja-no-cleandead'
...
6cc74b6140 cmGlobalNinjaGenerator: avoid cleandead and recompact in Ninja-Multi
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4261
2020-01-24 09:17:07 -05:00
Kyle Edwards
b7a2baf38c
Ninja Multi-Config: Add variable to control configs used in cross-config build
2020-01-23 15:47:12 -05:00
Ben Boeckel
6cc74b6140
cmGlobalNinjaGenerator: avoid cleandead and recompact in Ninja-Multi
...
Fixes : #20247
2020-01-23 09:24:46 -05:00
Kyle Edwards
8337ed0d73
Ninja Multi-Config: Add variable to control aliases in build.ninja
2020-01-22 10:26:21 -05:00