summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* PCH: Fix compiler errors on iOS multi-arch using Ninja Multi-ConfigCristian Adam2020-11-301-2/+4
| | | | Fixes: #21401
* QNX: Do not disable compiler extensions for CMake itselfStephen Kelly2020-11-251-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | The `set(CMAKE_CXX_EXTENSIONS FALSE)` option has the effect of passing compile option `-std=c++NN` instead of `-std=gnu++NN`. On some platforms, the latter form (or the secondary effects that it has, such as setting _XOPEN_SOURCE) is required. This typically affects platforms such as mingw, cygwin and QNX. The GNU-like compiers default to `-std=gnu++NN`, which means that users can typically build source code on those platforms by default. While the `set(CMAKE_CXX_EXTENSIONS FALSE)` option was set here in commit f034b0f6 (CMake compilation: do not use compiler extensions, 2020-03-14), the other changes in that commit added `#defines` which become required in the absense of use of `-std=gnu++NN`. However, only platforms regularly tested in the cmake dashboard were ported, as is reasonable. That made CMake fail to compile on QNX and perhaps other platforms which for which no one is submitting regular testing to the cmake dashboard. Make the `set(CMAKE_CXX_EXTENSIONS FALSE)` option conditional on non-QNX to restore the QNX build. Issue: #21503
* CMake 3.19.1v3.19.1Brad King2020-11-241-1/+1
|
* Merge topic 'policy-cmp0111-iface' into release-3.19Brad King2020-11-242-28/+31
|\ | | | | | | | | | | | | | | | | 54ef732b0c cmVisualStudio10TargetGenerator: Avoid GetFullPath on INTERFACE library f06f4b517c cmTarget: Do not enforce CMP0111 on imported INTERFACE libraries 43c95df8fb Tests: Match RunCMake.CMP0111 stderr more strictly Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5530
| * cmVisualStudio10TargetGenerator: Avoid GetFullPath on INTERFACE libraryBrad King2020-11-231-1/+2
| | | | | | | | Issue: #21470
| * cmTarget: Do not enforce CMP0111 on imported INTERFACE librariesBrad King2020-11-231-27/+29
| | | | | | | | | | | | | | | | Fix logic added by commit 359c500a24 (cmTarget: Raise error if imported target location is not set, 2020-08-08, v3.19.0-rc1~273^2) to exclude INTERFACE libraries from the policy. They have no location. Fixes: #21470
* | Merge topic 'fix-find-make-program' into release-3.19Brad King2020-11-244-1/+29
|\ \ | | | | | | | | | | | | | | | | | | | | | ef91fb02f3 cmGlobalGenerator: FindMakeProgram() at a generator-specific time Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Frank Dana <ferdnyc@gmail.com> Merge-request: !5529
| * | cmGlobalGenerator: FindMakeProgram() at a generator-specific timeKyle Edwards2020-11-234-1/+29
| |/ | | | | | | | | | | | | | | | | | | d5b5c192 moved FindMakeProgram() to an earlier time, which resulted in CMAKE_MAKE_PROGRAM not being read from the toolchain file. Change it to only call FindMakeProgram() early in the specific cases of Visual Studio and Xcode, and restore the old behavior for all other generators. Fixes: #21486
* | Merge topic 'xcode-cc-work-dir' into release-3.19Brad King2020-11-241-3/+11
|\ \ | | | | | | | | | | | | | | | | | | 36921d2d23 Xcode: Fix custom command work-dir placeholders in "new build system" Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5527
| * | Xcode: Fix custom command work-dir placeholders in "new build system"Brad King2020-11-231-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | The placeholders for `CONFIGURATION` and `EFFECTIVE_PLATFORM_NAME` need to be handled in the `WORKING_DIRECTORY` of custom commands just as we already do for the `COMMAND`. Fixes: #21483
* | | Merge topic 'cmFileTime-fix-overflow' into release-3.19Brad King2020-11-242-27/+40
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | b4c994f69c cmFileTime: Fix overflow on time computation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5526
| * | cmFileTime: Fix overflow on time computationMarc Chevrier2020-11-232-27/+40
| |/ | | | | | | | | | | On Windows, time starting point is Januray, 1st of 1601. So computing number of nanoseconds from this date exceeds 64bit capabilities.
* | Merge topic 'fix-compile-db-crash' into release-3.19Brad King2020-11-231-6/+10
|\ \ | |/ |/| | | | | | | | | 67e2130c96 Makefiles: Fix CMAKE_EXPORT_COMPILE_COMMANDS crash with custom compile rule Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5521
| * Makefiles: Fix CMAKE_EXPORT_COMPILE_COMMANDS crash with custom compile ruleBrad King2020-11-201-6/+10
| | | | | | | | Fixes: #21471
* | Revert "specify language flag when source LANGUAGE property is set"Brad King2020-11-194-32/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | Revert commit 74b1c9fc8e (Explicitly specify language flag when source LANGUAGE property is set, 2020-06-01, v3.19.0-rc1~722^2) and the lookup tables from its two immediate ancestors. The purpose of that change was to convert an explicit `LANGUAGE` source file property into an explicit language specification compiler flag like `-x c`. This seems reasonable since the property is documented as meaning "indicate what programming language the source file is". It is also needed to help compilers deal with non-standard source file extensions they don't recognize. However, some projects have been setting `LANGUAGE C` on `.S` assembler source files to mean "use the C compiler". Passing `-x c` for them breaks the build because the `.S` sources are not written in C. These projects should be updated to use `enable_language(ASM)`, for which CMake often chooses the C compiler as the assembler when using toolchains that support it (which would have to be the case for projects using the approach). Revert the change for now to preserve the old behavior for such projects. We can re-introduce it with a policy in a future version of CMake. Fixes: #21469 Issue: #14516, #20716
* CMake 3.19.0v3.19.0Brad King2020-11-181-1/+1
|
* CTest: Rename CudaMemcheck to CudaSanitizerTobias Ribizel2020-11-172-16/+16
|
* Xcode: Clean library paths to avoid linker duplicate symbol definitionsGusts Kaksis2020-11-151-10/+20
|
* Ninja: Avoid cleandead with dyndep bindings for Fortran module dependenciesBrad King2020-11-102-2/+10
| | | | | | | | | The Ninja `cleandead` tool does not account for implicit outputs discovered by `dyndep` bindings and can remove Fortran `.mod` files that are still needed. Disable the `cleandead` step when using `dyndep` bindings. Fixes: #21406
* CMake 3.19.0-rc3v3.19.0-rc3Brad King2020-11-061-1/+1
|
* Merge topic 'cmake-gui-file-dialog-crash' into release-3.19Brad King2020-11-062-0/+14
|\ | | | | | | | | | | | | 5f782119c8 cmake-gui: Restore workaround for crash in file dialog Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5472
| * cmake-gui: Restore workaround for crash in file dialogBrad King2020-11-052-0/+14
| | | | | | | | | | | | | | | | | | | | In commit ce9dbceb42 (QtDialog: remove Qt4-only code, 2020-06-02, v3.19.0-rc1~712^2~1) we removed an event filter that was thought to be necessary only as a workaround for a bug in Qt. However, that bug was fixed in Qt 4.5, and the file dialog still crashes as of Qt 5.14 without the filter. Restore the workaround pending further investigation. Fixes: #21400
* | Xcode: Inherit target library and framework search paths from projectGusts Kaksis2020-11-051-0/+4
|/ | | | | | | | | | | | | | | | Xcode has multiple levels of build settings with priority in descending order: 1. Target 2. Project 3. Workspace 4. SDK defaults `CMAKE_XCODE_ATTRIBUTE_*` path variables add these to project level, but linked frameworks and libraries override this in target level. Add the `$(inherited)` macro to keep both in the final list. Fixes: #21387
* cmake_path: remove new command from 3.19Marc Chevrier2020-11-032-4/+0
| | | | | | | Defer adding this command until post-3.19 development so that it has more time to mature before being included in a release. Issue: #21385
* CMakePresets.json: Don't warn if no path argument is givenKyle Edwards2020-11-021-1/+7
| | | | | | | | | If --preset is specified with no path argument, use the current directory as the source directory, the preset's binaryDir as the binary directory, and don't issue the standard warning for no path specified. Fixes: #21386
* CMake 3.19.0-rc2v3.19.0-rc2Brad King2020-10-281-1/+1
|
* Merge topic 'cmake-presets-help-flag' into release-3.19Brad King2020-10-283-3/+8
|\ | | | | | | | | | | | | c619be2784 ccmake: Don't list --preset in --help Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5428
| * ccmake: Don't list --preset in --helpKyle Edwards2020-10-273-3/+8
| | | | | | | | | | | | And show available options in cmake-gui. Fixes: #21313
* | Merge topic 'cmake-gui-manual-argument' into release-3.19Brad King2020-10-282-14/+22
|\ \ | | | | | | | | | | | | | | | | | | ef03124237 CMake GUI: Add --browse-manual argument Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5417
| * | CMake GUI: Add --browse-manual argumentKyle Edwards2020-10-272-14/+22
| |/
* | Merge topic 'xcode-fix-source-linking' into release-3.19Brad King2020-10-281-2/+3
|\ \ | |/ |/| | | | | | | | | 5dc23300b1 Xcode: Fix regression that automatically links libraries in source list Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5432
| * Xcode: Fix regression that automatically links libraries in source listGusts Kaksis2020-10-271-2/+3
| | | | | | | | | | | | | | | | | | | | | | In commit e637744c51 (Xcode: Use "Link Binary With Libraries" to link any library, 2019-07-10, v3.19.0-rc1~494^2~1) we accidentally added all the library type files to "Link Binary With Libraries" build phase if they were passed in as source files. Revert that change as any actually linked libraries will be added to that build phase later in the `AddDependAndLinkInformation` call. Fixes: #21361
* | Merge topic 'cuda_vs_skip_computation' into release-3.19Brad King2020-10-273-2/+14
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | dd77dec18d VS: Don't compute CUDA options unless necessary e9109dec36 Merge branch 'ninja-multi-per-config-sources' into release-3.18 7c0de4175b Merge branch 'cmake-E-cat-binary' into release-3.18 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5422
| * | VS: Don't compute CUDA options unless necessaryRaul Tambre2020-10-273-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the following scenario (with 3.18 policies): 1. A CXX target is created. 2. CUDA language is enabled. CMake 3.18 introduced CMP0104, which requires CUDA_ARCHITECTURES to be set. Because the CXX target was created before CUDA was enabled it wouldn't have it set. The Visual Studio generator would however end up computing CUDA compile options for the CXX target, which would result in a fatal error due to the policy violation. There doesn't seem to be a reason to do this for targets that don't actually use the CUDA language, so we can skip and generate the CXX target just fine. Fixes: #21341
| * | Merge branch 'ninja-multi-per-config-sources' into release-3.18Brad King2020-10-261-1/+3
| |\ \ | | | | | | | | | | | | Merge-request: !5430
* | \ \ Merge topic 'cmake-presets-path-arg' into release-3.19Craig Scott2020-10-277-5/+17
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | b7d7eca66d CMakePresets.json: Rework how --preset argument is handled Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5416
| * | | CMakePresets.json: Rework how --preset argument is handledKyle Edwards2020-10-267-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a path argument with no -S or -B leads to a cache directory, use that directory as the binary directory. Otherwise, use the binary directory from the preset. Fixes: #21311
* | | | Merge branch 'release' into ninja-multi-per-config-sourcesKyle Edwards2020-10-26685-7807/+15778
|\ \ \ \ | |_|_|/ |/| | |
| * | | Merge topic 'correct_profiling-output_exception' into release-3.19Brad King2020-10-261-3/+3
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | afac7482d2 cmake: command arguments which use '=' behave consistently Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5414
| | * | | cmake: command arguments which use '=' behave consistentlyRobert Maynard2020-10-231-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: #21351 The `profiling-format`, `profiling-output`, and `preset` all would crash when invoked without a trailing `=`.
| * | | | Merge topic 'per-config-source-TARGET_FILE' into release-3.19Brad King2020-10-261-6/+11
| |\ \ \ \ | | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | cd33bfcad5 add_custom_command: Properly recognize if sources depend on config Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5410
| | * | | add_custom_command: Properly recognize if sources depend on configDeniz Bahadir2020-10-221-6/+11
| | | | | | | | | | | | | | | | | | | | Fixes: #21349
| * | | | Merge topic 'vs-fortran-debugging-flags' into release-3.19Brad King2020-10-231-3/+2
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8ad6fabfc5 VS: Remove flag table entries for Fortran /Z* flags Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5406
| | * | | | VS: Remove flag table entries for Fortran /Z* flagsVolker Jacht2020-10-221-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These were included when the Fortran flag table was first created by commit 10c91ded4f (ENH: add support for Intel Fortran Visual studio IDE, 2008-04-30, v2.8.0~2227), but they map to fields not actually supported by the IDE. Remove their table entries. Instead use just `/debug:minimal` and `/debug:full` to control debug information level in VS Intel Fortran. Let flags like `/Z7` pass through as raw additional options because they have no corresponding IDE property and can be used to complement the supported options. Fixes: #21340
| * | | | | Merge topic 'cmake-presets-toolset-arch-config' into release-3.19Craig Scott2020-10-237-32/+83
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 64afabdbcb CMakePresets.json: Split cmakeGeneratorConfig field Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5387
| | * | | | | CMakePresets.json: Split cmakeGeneratorConfig fieldKyle Edwards2020-10-227-32/+83
| | | |/ / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make this field separate for both architecture and toolset. Allow architecture and toolset to be either strings or objects with value and strategy fields. Fixes: #21317
| * | | | | CMakePresets.json: Add ${sourceDirName} macroKyle Edwards2020-10-221-0/+4
| |/ / / / | | | | | | | | | | | | | | | Fixes: #21312
| * | | | Merge topic 'cmake-presets-invalid-macro' into release-3.19Kyle Edwards2020-10-224-137/+190
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 638557cbfe CMakePresets.json: Properly report macro expansion errors Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5397
| | * | | | CMakePresets.json: Properly report macro expansion errorsKyle Edwards2020-10-214-137/+190
| | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make a distinction between strings which simply use the $vendor{<...>} macro, which is valid but makes it unusable by CMake, and strings which actually contain invalid macro expansions. Fixes: #21308
| * | | | CMakePresets.json: Allow boolean for cache variable valueKyle Edwards2020-10-211-1/+23
| |/ / / | | | | | | | | | | | | Fixes: #21327