summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | CUDA: Filter out -framework arguments during device linkingRobert Maynard2019-02-281-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The filter in commit e768d96c74 (CUDA: Filter out host link flags during device linking, 2018-10-22, v3.13.0-rc2~4^2~2^2) removes `-framework` but not the framework name that comes after it. Revise the logic to remove both. Fixes: #18911
* | | | | Merge branch 'vs2019' into release-3.14Brad King2019-02-281-8/+0
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Merge-request: !3044
| * | | | | VS: Drop workaround needed only for VS 2019 preview 2 and 3Brad King2019-02-281-8/+0
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A temporary workaround added by commit 626c51f47b (VS: Update for Visual Studio 2019 Preview 2, 2019-01-24, v3.14.0-rc1~74^2) is no longer needed as of VS 2019 preview 4. Fixes: #18898
* | | | | Merge branch 'backport-check-std-size-cbegin-cend' into release-3.14Brad King2019-02-272-2/+18
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Merge-request: !3030
| * | | | | Extend C++17/C++14 feature checks to cover more standard library APIsMathieu Garaud2019-02-272-2/+18
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure `std::cbegin`, `std::cend`, and `std::size` work in C++17 or C++14 mode before choosing the corresponding standard level for compiling CMake itself. This helps in cases that the compiler is using a standard library too old to support the full standard level chosen.
* | | | | Merge branch 'cmake_role-vs-fix' into release-3.14Brad King2019-02-271-1/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Merge-request: !3028
| * | | | | CMAKE_ROLE: Fix value in --build for Visual Studio generatorsKyle Edwards2019-02-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Fixes: #18990
* | | | | | include_external_msproject: Restore support for EXCLUDE_FROM_ALLBrad King2019-02-261-1/+3
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit dc6888573d (Pass EXCLUDE_FROM_ALL from directory to targets, 2019-01-15, v3.14.0-rc1~83^2) all `AddNewTarget` call sites were updated to copy the directory-level `EXCLUDE_FROM_ALL` into the target property of the same name, except that the one for `include_external_msproject` was incorrectly missed. Add it now. Furthermore, refactoring in commit b99129d2d8 (ENH: some code cleanup, 2007-03-12, v2.6.0~2020) accidentally set the `EXCLUDE_FROM_ALL` target property of `include_external_msproject`-generated targets to `FALSE` instead of simply leaving it unset. This was not necessary but had no effect until the above commit gave it a meaning. Drop that. Fixes: #18986
* | | | | Merge branch 'remove-exclude-from-all-warning' into release-3.14Brad King2019-02-222-17/+0
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Merge-request: !3002
| * | | | | EXCLUDE_FROM_ALL: Don't warn if installing target excluded from allCraig Scott2019-02-212-17/+0
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original warning pre-dates support for install components. There are now legitimate scenarios where an install(TARGETS) command may list a target that is excluded from all, e.g. hierarchical projects that will never install the component such a target belongs to. Fixes: #18938
* | | | | Merge branch 'link-options' into release-3.14Brad King2019-02-201-15/+4
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Merge-request: !2996
| * | | | | PIE link options: No warning when policy CMP0083 is not set.Marc Chevrier2019-02-201-15/+4
| |/ / / / | | | | | | | | | | | | | | | Fixes: #18955
* | | | | Merge branch 'fix-implicit-includes-fortran' into release-3.14Brad King2019-02-201-9/+15
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Merge-request: !2994
| * | | | | Fortran: Do not suppress explicit use of implicit include directoriesBrad King2019-02-201-9/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 2e91627dea (ParseImplicitIncludeInfo: add Fortran implicit include handling, 2019-01-25, v3.14.0-rc1~73^2) we actually populate `CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES` for the first time. This value may be useful to project code to pass to other tooling that wants to preprocess the way Fortran does, so we should compute the value. However, compilers like `gfortran` do not actually search their own implicit include directories for `.mod` files. The directories must be passed via `-I` in order for `.mod` files in them to be found. Since Fortran has no standard library header files that we need to avoid overriding, it is safe to *not* filter out implicit include directories from those passed explicitly via `-I` options. Skip this filtering so that include directories specified by project code to find `.mod` files will be searched by the compiler even if they happen to be implicitly searched by the preprocessor. Fixes: #18914
* | | | | | Merge branch 'autogen_cache_binary_checks' into release-3.14Brad King2019-02-194-39/+88
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Merge-request: !2990
| * | | | | | Autogen: Use output caching GetExecutableTestOutputSebastian Holtermann2019-02-192-39/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the output caching cmQtAutoGenGlobalInitializer::GetExecutableTestOutput method to avoid identical calls to moc, uic and rcc. Closes #18947
| * | | | | | Autogen: Add output caching GetExecutableTestOutputSebastian Holtermann2019-02-192-0/+70
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the cmQtAutoGenGlobalInitializer::GetExecutableTestOutput method which caches the output of the called executable and returns the cached value on any subsequent call.
* | | | | | Merge branch 'vs-win-sdk' into release-3.14Brad King2019-02-193-3/+19
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Merge-request: !2989
| * | | | | | VS: Tell VS 2019 to use Windows SDK 8.1 explicitly when neededBrad King2019-02-191-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | VS 2019 does not default to the 8.1 SDK as VS 2017 and VS 2015 did. When `CMAKE_SYSTEM_VERSION` is 8.1 or lower, select the 8.1 SDK explicitly. Fixes: #18927
| * | | | | | VS: Factor out a method to set the Windows SDK version internallyBrad King2019-02-192-3/+13
| |/ / / / /
* | | | | | Merge branch 'fix-legacy-implicit-includes' into release-3.14Brad King2019-02-191-34/+27
|\ \ \ \ \ \ | |/ / / / / |/| / / / / | |/ / / / Merge-request: !2981
| * | | | Do not explicitly report "standard" include directories as implicitBrad King2019-02-181-20/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 1293ed8507 (ParseImplicitIncludeInfo: keep implicit incl. consistent when rerunning cmake, 2019-01-30, v3.14.0-rc1~26^2) we did not account for `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES`. This variable lets platform modules or toolchain files specify directories that are to be explicitly passed as standard include directories. These include directories are used by the test project from which we extract implicit include directories so they appear in the parsed results whether or not the compiler really considers them implicit. Exclude these entries from the computed implicit include directories since they are not actually implied by the compiler when we invoke it with "standard" include directories passed explicitly. Instead teach the build system generators to treat the "standard" directories as implicit for purposes of excluding them from appearing earlier in the compiler command line due to `include_directories` and `target_include_directories` calls. Issue: #18936, #18944
| * | | | Restore unconditional use of "standard" include directoriesBrad King2019-02-181-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` is meant to unconditionally add explicitly specified include directories to compile lines. In commit 5f34bdc7f9 (cmLocalGenerator: Refactor `GetIncludeDirectoriesImplicit` method, 2019-01-25, v3.14.0-rc1~65^2~1) a condition was accidentally added to exclude implicit include directories. Drop that condition. Fixes: #18936
| * | | | Prefix implicit include directories with sysroot on constructionBrad King2019-02-181-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 7cd65c97fa (Add CMAKE_SYSROOT variable to set --sysroot when cross compiling., 2013-04-13, v3.0.0-rc1~342^2) we have prefixed the value of `CMAKE_SYSROOT` to implicit include directories. This was done because we hard-coded `/usr/include` as an implicit include directory without accounting for the sysroot. Instead we should prefix the hard-coded paths when they are constructed. Update the `Platform/UnixPaths` module to do this as `Platform/Darwin` already does. Since commit 5990ecb741 (Compute implicit include directories from compiler output, 2018-12-07, v3.14.0-rc1~108^2) the values of the `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` variables are computed from a real compiler invocation so they already account for the sysroot prefix. In commit 6fc3382944 (Update logic for sysroot in detected implicit include directories, 2019-02-13, v3.14.0-rc2~6^2) we attempted to apply the prefix conditionally, but that is incorrect because the compiler's real implicit include directories are not all under the sysroot. Instead assume that all implicit include directories in `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` already have the sysroot prefix if needed. Code that constructs the value must be responsible for that because it is the only place that knows.
* | | | | CMake 3.14.0-rc2v3.14.0-rc2Brad King2019-02-151-1/+1
| | | | |
* | | | | Merge branch 'try_compile-expand-compile-defs' into release-3.14Brad King2019-02-151-1/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Merge-request: !2965
| * | | | | try_compile: Restore expansion of ;-list in COMPILE_DEFINITIONSBrad King2019-02-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The quoting added by commit 8c5221fb1f (try_compile: Preserve special characters in COMPILE_DEFINITIONS, 2019-01-21, v3.14.0-rc1~108^2~3) broke the case that the `COMPILE_DEFINITIONS` value contains a `;`. Without the quoting the `;` would be generated literally in an unquoted argument in the test `CMakeLists.txt` file and would then be expanded. With quoting the `;` is preserved, which is not the old behavior. Fix this by expanding the `;`-list ahead of time. Add test cases for behavior with both `#` and `;`. This was noticed with the PGI compiler where we set `CMAKE_CXX*_STANDARD_COMPILE_OPTION` to values like `--c++17;-A`. The symptom had also been observed while preparing commit ef8f237686 (ParseImplicitIncludeInfo: add SunPro Fortran and PGI compiler, Cray fix, 2019-01-29, v3.14.0-rc1~26^2~2) but was not recognized at the time as a regression. Revert the workaround added by that commit. Fixes: #18919
* | | | | | Merge branch 'vs2017-sdk81' into release-3.14Brad King2019-02-141-1/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Merge-request: !2962
| * | | | | | VS: Fix validation of Windows 8.1 SDKBrad King2019-02-141-1/+2
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The check added by commit 0a29a31161 (VS2017: Verify Windows 8.1 SDK before using it, 2017-04-25, v3.8.1~2^2) used the wrong path to `windows.h` within the SDK, leading to it never being detected. Fixes: #18923
* | | | | | Merge branch 'fortran-submodule-names' into release-3.14Brad King2019-02-147-11/+76
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Merge-request: !2958
| * | | | | | Fortran: Fix submodule file names across compilersBrad King2019-02-147-1/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The naming convention for submodule files varies across compilers. Add a table to the compiler information modules and thread the information through to the Fortran module dependency parser. Fill out the table for compiler ids known to support Fortran submodules. Fixes: #18746
| * | | | | | Fortran: Thread compiler id through to internal Fortran parserBrad King2019-02-145-5/+26
| | | | | | |
| * | | | | | Fortran: Factor out .mod and .smod file name constructionBrad King2019-02-142-6/+21
| |/ / / / /
* | | | | | Merge branch 'fix-pointer-truncation' into release-3.14Brad King2019-02-132-2/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Merge-request: !2956
| * | | | | | cmListFileLexer: Add missing include to avoid possible pointer truncationZsolt Parragi2019-02-132-2/+2
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `cmsys/Enconding.h` include had a typo in its surrounding ifdef, possibly causing a missing function declaration (`cmsysEncoding_DupToWide`). As this is C code, this resulted in the code compiling, but with a truncated return value, possibly causing crashes.
* | | | | | Merge branch 'fix-legacy-implicit-includes' into release-3.14Brad King2019-02-132-7/+29
|\ \ \ \ \ \ | | |/ / / / | |/| | | | | | | | | | Merge-request: !2957
| * | | | | Update logic for sysroot in detected implicit include directoriesBrad King2019-02-131-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 5990ecb741 (Compute implicit include directories from compiler output, 2018-12-07, v3.14.0-rc1~108^2) the values of the `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` variables are computed from a real compiler invocation. In this case the paths under the sysroot should already have the sysroot prefix so we should no longer have to add the sysroot prefix. However, it is also possible for project code to add its own paths to `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` without the sysroot prefix and expect the historical addition of the sysroot prefix to be preserved. Try to account for both cases by conditionally adding the sysroot prefix on implicit include directories that do not already have it.
| * | | | | cmAlgorithms: Add cmHasPrefix to match existing cmHasSuffixBrad King2019-02-131-0/+8
| | | | | |
| * | | | | Fix regression in -I/usr/include exclusion logicBrad King2019-02-131-6/+16
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change in commit 15ad830062 (Refactor exclusion of -I/usr/include to avoid per-language values, 2019-01-21, v3.14.0-rc1~108^2~4) caused the exclusion to apply to Fortran, but it was only meant for C, CXX, and CUDA. The purpose of the change was to prepare for the value of `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` to be computed from the actual compiler instead of hard-coded. We need to preserve exclusion of `-I/usr/include` if the compiler has any implicit include directory that looks intended to replace it, e.g. `<sdk>/usr/include` on macOS. Fixes: #18914
* | | | | Merge branch 'genex-GENEX_EVAL-fix-recursion' into release-3.14Brad King2019-02-132-10/+4
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Merge-request: !2954
| * | | | | genex: Fix erroneous handling of recursion for $<GENEX_EVAL:>Marc Chevrier2019-02-132-10/+4
| |/ / / / | | | | | | | | | | | | | | | Fixes: #18894
* | | | | Merge branch 'ghs-updates' into release-3.14Brad King2019-02-081-1/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Merge-request: !2943
| * | | | | GHS: Document usage of GHS_NO_SOURCE_GROUP_FILEFred Baksik2019-02-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | -- Also change variable name to CMAKE_GHS_NO_SOURCE_GROUP_FILE
* | | | | | Merge branch 'fix-exclude-dir-with-iface' into release-3.14Brad King2019-02-081-1/+3
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | Merge-request: !2937
| * | | | | Fix EXCLUDE_FROM_ALL on directory with an interface libraryBrad King2019-02-081-1/+3
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit dc6888573d (Pass EXCLUDE_FROM_ALL from directory to targets, 2019-01-15, v3.14.0-rc1~83^2) we automatically forward the `EXCLUDE_FROM_ALL` to targets as they are created. This regressed support for interface libraries on which the property is not allowed. Skip forwarding the `EXCLUDE_FROM_ALL` property for interface libraries. It is not needed on them because they do not participate in the generated build system anyway. Fixes: #18896
* | | | | Merge branch 'xcode-stdlib-flags' into release-3.14Brad King2019-02-071-0/+16
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Merge-request: !2919
| * | | | | Xcode: Derive stdlib from CXX flagsGregor Jasny2019-02-071-0/+16
| |/ / / / | | | | | | | | | | | | | | | Closes: #18396
* | | | | Merge branch 'vs-csharp-nowarn-numbers' into release-3.14Brad King2019-02-074-1/+18
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Merge-request: !2923
| * | | | | VS: Fix nowarn compiler option to accept warning numbers.Wil Stark2019-02-074-1/+18
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | Warning disables are transferred to the VS IDE `<NoWarn>` node. Fixes: #18878
* | | | | CMake 3.14.0-rc1 version updateBrad King2019-02-061-3/+3
|/ / / /