summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/NinjaMultiConfig
Commit message (Collapse)AuthorAgeFilesLines
* Ninja Multi-Config: Fix dependencies of custom commandsKyle Edwards2020-09-175-7/+27
| | | | | | | | | | a9fd3a10 addressed the scenario where the depending target is a utility target, but not the scenario where the dependent target is a utility target. Account for this scenario. Also add a Qt-specific test case. Fixes: #21118
* Ninja Multi-Config: Fix dependencies of utility targetsKyle Edwards2020-09-025-1/+30
| | | | Fixes: #21118
* Tests: Pass additional Qt information to Ninja and NMC testsKyle Edwards2020-09-011-1/+1
|
* Merge topic 'ninja-multi-export-all-symbols'Brad King2020-06-011-0/+2
|\ | | | | | | | | | | | | | | 6fc4bfa11c Ninja Multi-Config: Fix bug in CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Alex Reinking <alex_reinking@berkeley.edu> Merge-request: !4825
| * Ninja Multi-Config: Fix bug in CMAKE_WINDOWS_EXPORT_ALL_SYMBOLSKyle Edwards2020-05-291-0/+2
| | | | | | | | Fixes: #20775
* | Merge topic 'ninja-multi-install'Brad King2020-05-253-1/+75
|\ \ | |/ | | | | | | | | | | dddb4f02f7 Ninja Multi-Config: Make "install" targets depend on default configs Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4778
| * Ninja Multi-Config: Make "install" targets depend on default configsKyle Edwards2020-05-223-1/+75
| | | | | | | | | | | | And add an "install:all" target. Fixes: #20713
| * Merge topic 'ninja-multi-custom-command-deps' into release-3.17Brad King2020-03-053-6/+3
| |\ | | | | | | | | | | | | | | | | | | 081c4679f7 Ninja Multi-Config: Don't build target dependencies for custom commands Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4423
* | | Tests: Restore NVCC-specific CUDA testsBrad King2020-05-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit a653ca9504 (Tests: Update CUDA tests to work with Clang, 2020-03-27) some tests were conditioned using `CMAKE_CUDA_COMPILER_ID`. That is not defined when configuring CMake itself, so it accidentally turned off NVCC-specific CUDA tests altogether. Convert the conditions to check `CMake_TEST_CUDA` for `Clang` instead. That option is added explicitly to builds where we want the tests to run, so we can set it to a value indicating the CUDA compiler vendor. In commit a653ca9504 (Tests: Update CUDA tests to work with Clang, 2020-03-27) the NVCC-specific `CudaOnly.GPUDebugFlag` test was accidentally broken by removing a space when appending `-G` to the CUDA flags. This was covered by the test not running. Restore the space. Fixes: #20727
* | | Tests: Update CUDA tests to work with ClangRaul Tambre2020-05-151-1/+2
| | |
* | | CUDA: Add CUDA_ARCHITECTURES target propertyRaul Tambre2020-04-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simplifies CUDA target architecture handling. Required for Clang support as Clang doesn't automatically select a supported architecture. We detect a supported architecture during compiler identification and set CMAKE_CUDA_ARCHITECTURES to it. Introduces CMP0104 for backwards compatibility with manually setting code generation flags with NVCC. Implements #17963.
* | | Merge topic 'ninja-multi-custom-command-deps'Brad King2020-03-053-6/+3
|\ \ \ | |/ / |/| / | |/ | | | | | | 081c4679f7 Ninja Multi-Config: Don't build target dependencies for custom commands Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4423
| * Ninja Multi-Config: Don't build target dependencies for custom commandsKyle Edwards2020-03-033-6/+3
| | | | | | | | | | | | | | 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.
* | Ninja Multi-Config: Fix spurious unused variable warningKyle Edwards2020-03-032-2/+13
|/ | | | Fixes: #20381
* Ninja Multi-Config: Always generate build.ninjaKyle Edwards2020-02-274-12/+3
| | | | | If CMAKE_DEFAULT_BUILD_TYPE is not specified, use the first item from CMAKE_CONFIGURATION_TYPES instead.
* Ninja Multi-Config: Remove "NMC" from variable namesKyle Edwards2020-02-276-27/+27
| | | | | | Also rename `..._DEFAULT_BUILD_FILE_CONFIG` to `..._DEFAULT_BUILD_TYPE`. These name changes make the variables meaningful for future use by other generators.
* Ninja Multi-Config: Fix issue with framework dependencies and AutogenKyle Edwards2020-02-172-0/+27
| | | | Fixes: #20345
* Ninja Multi-Config: Fix issue with "all" in CMAKE_NMC_DEFAULT_CONFIGSKyle Edwards2020-02-113-0/+45
| | | | | | | | 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.
* Ninja Multi-Config: Add support for DEPFILE option in add_custom_command()Kyle Edwards2020-02-073-0/+18
| | | | And give other generators a path forward to add support in the future.
* Merge topic 'ninja-multi-default-config-fix' into release-3.17Brad King2020-02-072-0/+5
|\ | | | | | | | | | | | | 1844be451e Ninja Multi-Config: Fix issue with CMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4331
| * Ninja Multi-Config: Fix issue with CMAKE_NMC_DEFAULT_BUILD_FILE_CONFIGKyle Edwards2020-02-062-0/+5
| | | | | | | | | | | | 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.
* | Ninja Multi-Config: Don't include MinSizeRel by defaultKyle Edwards2020-02-061-4/+4
|/
* Ninja Multi-Config: Use build.ninja if cmake --build has no --configKyle Edwards2020-02-042-2/+8
| | | | | | 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.
* Merge topic 'ninja-multi-variable-shuffle'Brad King2020-02-0321-10/+230
|\ | | | | | | | | | | | | b966f86d86 Ninja Multi-Config: Shuffle variables around Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4305
| * Ninja Multi-Config: Shuffle variables aroundKyle Edwards2020-02-0321-10/+230
| | | | | | | | | | | | Remove redundant variable CMAKE_NINJA_MULTI_CROSS_CONFIG_ENABLE. Rename other variables. Document and improve handling of error conditions.
* | NinjaMultiConfig: CUDA executables generate symbols on windowsRobert Maynard2020-01-312-0/+6
| |
* | Merge topic 'automoc-using-depfiles'Brad King2020-01-301-0/+12
|\ \ | |/ |/| | | | | | | | | | | | | | | aebfbcaa46 AutoGen: Use depfiles for the XXX_autogen ninja targets f765fdea03 AutoGen: Use moc's feature to output dependencies f8c505d4b3 Add a parser for GCC-style depfiles Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Jan Niklas Hasse <jhasse@bixense.com> Merge-request: !4221
| * AutoGen: Use depfiles for the XXX_autogen ninja targetsJoerg Bornemann2020-01-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The XXX_autogen targets are implemented as utility commands, which means they always run, even if there weren't any changes. For the Ninja generator and Qt >= 5.15 we're taking a different approach: This commit adds custom commands that create XXX_autogen/timestamp files. Those custom commands have a depfile assigned that is generated from the depfiles that were created by moc. The XXX_autogen targets merely wrap the XXX_autogen/timestamp custom commands. Fixes: #18749
| * AutoGen: Use moc's feature to output dependenciesJoerg Bornemann2020-01-281-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Qt version 5.15.0 moc learned to output the dependencies of the generated file. This commit enhances JobCompileMocT to read the dependency file written by moc. The dependencies are stored in the same cache that's used for the dependencies determined by dependency filters. The dependency filter functionality is turned off if moc's dependency output feature is used. Fixes: #17750 Fixes: #19058
* | Ninja Multi-Config: Fix bug with MacOS frameworksKyle Edwards2020-01-242-0/+29
|/
* Ninja Multi-Config: Add variable to control configs used in cross-config buildKyle Edwards2020-01-2315-0/+377
|
* Ninja Multi-Config: Add variable to control aliases in build.ninjaKyle Edwards2020-01-225-0/+140
|
* Refactor: Split Ninja files into impl-<Config>.ninja and build-<Config>.ninjaKyle Edwards2020-01-224-0/+142
|
* Ninja Multi-Config: Rename variable to be more consistentKyle Edwards2020-01-161-7/+7
| | | | Also make some tweaks to the documentation.
* Merge topic 'ninja_multi_config_support_cuda'Kyle Edwards2020-01-146-0/+101
|\ | | | | | | | | | | | | c7ac13e8ed CUDA: Mult-Config Ninja generator now supports CUDA Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4187
| * CUDA: Mult-Config Ninja generator now supports CUDARobert Maynard2020-01-136-0/+101
| |
* | Ninja Multi-Config: Improve error handling when not doing cross-config buildKyle Edwards2020-01-132-6/+2
|/
* Ninja Multi-Config: Make cross-config building opt-inKyle Edwards2020-01-1016-5/+106
| | | | | | | | | | | Many users will want to use the Ninja Multi-Config generator like a traditional Visual Studio-style multi-config generator, which doesn't mix configurations - custom commands are built using target executables of the same configuration the command is for. We do not want to force these people to generate an N*N build matrix when they only need N*1, especially if they have lots of targets. Add a new variable, CMAKE_NINJA_CROSS_CONFIG_ENABLE, to opt-in to the cross-config build matrix.
* Tests: Add test for Multi-Configuration Ninja generatorKyle Edwards2019-12-1371-0/+1703