summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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-182-15/+11
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* 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-132-11/+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
* macOS: Fix addition of <sdk>/usr/include to default implicit include dirsBrad King2019-02-131-1/+1
| | | | | | | | | | | | | | | In commit 1293ed8507 (ParseImplicitIncludeInfo: keep implicit incl. consistent when rerunning cmake, 2019-01-30, v3.14.0-rc1~26^2) the `Platform/UnixPaths` module was updated to add `/usr/include` to `CMAKE_{C,CXX,CUDA}_IMPLICIT_INCLUDE_DIRECTORIES` through an initialization variable used by `CMakeDetermineCompilerABI` instead of directly. This approach makes it only a default that can be overridden by detection of the implicit include directories really used by the compiler. The addition of `<sdk>/usr/include` to default implicit include directories by the `Platform/Darwin` module needs the same update but was accidentally left out of the original commit.
* Merge topic 'doc-3.14-relnotes'Brad King2019-02-0665-413/+342
|\ | | | | | | | | | | | | | | aa9161fd57 Help: Organize and revise 3.14 release notes 0d1a9282c4 Help: Consolidate 3.14 release notes Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2925
| * Help: Organize and revise 3.14 release notesBrad King2019-02-061-154/+200
| | | | | | | | | | Add section headers similar to the 3.13 release notes and move each individual bullet into an appropriate section. Revise a few bullets.
| * Help: Consolidate 3.14 release notesBrad King2019-02-0665-413/+296
|/ | | | | Run the `Utilities/Release/consolidate-relnotes.bash` script to move notes from `Help/release/dev/*` into `Help/release/3.14.rst`.
* Merge topic 'deprecate-xcode-4'Brad King2019-02-062-1/+9
|\ | | | | | | | | | | | | 75a75d2754 Xcode: deprecate support for Xcode 4 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2922
| * Xcode: deprecate support for Xcode 4Gregor Jasny2019-02-062-1/+9
| |
* | Merge topic 'relax_CUDA_RESOLVE_DEVICE_SYMBOLS_constraints'Brad King2019-02-0611-35/+219
|\ \ | | | | | | | | | | | | | | | | | | | | | 850ef90a66 CUDA: Honor CUDA_RESOLVE_DEVICE_SYMBOLS for more target types Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Robert Maynard <robert.maynard@kitware.com> Merge-request: !2900
| * | CUDA: Honor CUDA_RESOLVE_DEVICE_SYMBOLS for more target typesRobert Maynard2019-02-0511-35/+219
| | | | | | | | | | | | | | | | | | | | | `CUDA_RESOLVE_DEVICE_SYMBOLS` can be used with shared, module, and executable target types. This relaxation is to allow for better interoperability with linkers that automatically do CUDA device symbol resolution and have no way to disable it.
* | | Merge topic 'autogen_same_name_different_extension'Brad King2019-02-068-14/+103
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | a28caabf45 Autogen: AUTOMOC support for files with the same name but different extensions 1f802295f2 Autogen: Extend the SameName test with same name but different extension files Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2920
| * | | Autogen: AUTOMOC support for files with the same name but different extensionsSebastian Holtermann2019-02-052-13/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for AUTOMOC to moc header files with the same but different extensions (e.g `obj.h`, `obj.hpp`, `obj.hxx`). If a moc file would appear multiple times in `mocs_compilation.cpp`, a number suffix is appended to the name to make it unique. Closes #14489
| * | | Autogen: Extend the SameName test with same name but different extension filesSebastian Holtermann2019-02-056-1/+68
| | |/ | |/|
* | | CMake Nightly Date StampKitware Robot2019-02-061-1/+1
|/ /
* | Merge topic 'update-kwsys'Brad King2019-02-051-1/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | 9ddbf4c6e6 Merge branch 'upstream-KWSys' into update-kwsys 8372c05472 KWSys 2019-02-05 (65802a20) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2918
| * \ Merge branch 'upstream-KWSys' into update-kwsysBrad King2019-02-051-1/+2
| |\ \ | | | | | | | | | | | | | | | | * upstream-KWSys: KWSys 2019-02-05 (65802a20)
| | * | KWSys 2019-02-05 (65802a20)KWSys Upstream2019-02-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Code extracted from: https://gitlab.kitware.com/utils/kwsys.git at commit 65802a20ec4b9a774518151c3f8772e082163601 (master). Upstream Shortlog ----------------- Nicolae Vartolomei (1): d1536b02 macOS: Better approximation for AvailablePhysicalMemory
* | | | Merge topic 'autogen_single_all_sources_iteration'Brad King2019-02-054-85/+85
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b6cf086267 Autogen: Iterate over makefile sources only once ed0fa784eb cmSystemTools: Let `GetFileFormat` accept a `std::stding const&` Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2909
| * | | | Autogen: Iterate over makefile sources only onceSebastian Holtermann2019-02-021-78/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In QtAutoGen we used to iterate over all makefile source two times to extract file parameters for moc and uic respectively. This patch merges both iterations into one loop. This makes the code easier to understand and likely faster to execute as well.
| * | | | cmSystemTools: Let `GetFileFormat` accept a `std::stding const&`Sebastian Holtermann2019-02-024-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | | The `const char*` used formerly was converted to a `std::string` internally anyway.
* | | | | Merge topic 'vs-fortran-target-check'Brad King2019-02-052-19/+17
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d3d2c3cd49 VS: Fix Fortran target type selection when linking C++ targets Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2913
| * | | | | VS: Fix Fortran target type selection when linking C++ targetsBrad King2019-02-042-19/+17
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 2c9f35789d (VS: Decide project type by linker lang as fallback, 2017-03-30, v3.9.0-rc1~340^2) we consider the linker language when detecting whether to generate a `.vfproj` or `.vcxproj` file. However, this could cause C-only projects to become `.vfproj` files if they link to Fortran projects. Instead we should consider only the `LINKER_LANGUAGE` property on the target itself. This approach is already used for CSharp. It allows project code to specify the project file type for a target with no sources but does not allow linked targets to affect it. Fixes: #18687
* | | | | Merge topic '17870-iphone-friendly-cmake'Brad King2019-02-0526-111/+215
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e8ee8cab97 Xcode: Completely disable code signing for compiler id detection 11da882a12 Apple: Introduce separate system name for iOS, tvOS, and watchOS 36cf44a7a3 Tests: Isolate RunCMake.XcodeProject per-device cases from host arch Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2392
| * | | | | Xcode: Completely disable code signing for compiler id detectionGregor Jasny2019-02-043-14/+3
| | | | | | | | | | | | | | | | | | | | | | | | Issue: #17870
| * | | | | Apple: Introduce separate system name for iOS, tvOS, and watchOSGregor Jasny2019-02-0425-68/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove code signing requirements for non-macOS - Do not set deployment target for non-macOS - Build static library for compiler feature detection for non-macOS - Use framework to run CompilerId tests for watchOS - Port tests to new SDK handling - Add new Apple cross-compiling section to toolchain documentation Closes: #17870
| * | | | | Tests: Isolate RunCMake.XcodeProject per-device cases from host archBrad King2019-02-041-30/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Run all host cases before per-device cases. Do not expose the host `CMAKE_OSX_ARCHITECTURES` environment value to the per-device tests.
* | | | | | Merge topic 'swift-xcode-10.2'Brad King2019-02-054-3/+13
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 96dece6dc1 Xcode: Update default Swift language version for Xcode 10.2 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2912
| * | | | | Xcode: Update default Swift language version for Xcode 10.2Brad King2019-02-044-3/+13
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | Xcode 10.2 no longer supports Swift language versions before 4.0. Fixes: #18871
* | | | | CMake Nightly Date StampKitware Robot2019-02-051-1/+1
|/ / / /
* | | | Merge topic 'cmSourceFile_refactor'Brad King2019-02-0413-84/+112
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 254b7260f4 cmSourceFile: Check if a file is GENERATED first in the full path computation cd8a930d61 cmSourceFile: Refactor FindFullPath method 6d407ae439 Use cmSourceFile::GetIsGenerated 2ddf3f4467 cmSourceFile: Add IsGenerated method b9d44fc350 cmSourceFile: Additional static property strings Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2908
| * | | cmSourceFile: Check if a file is GENERATED first in the full path computationSebastian Holtermann2019-02-021-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In `cmSourceFile::FindFullPath` check first if the file is GENERATED before aborting on `FindFullPathFailed`. This allows recomputation of the full path when the GENERATED property was set after the file path was computed with an error.
| * | | cmSourceFile: Refactor FindFullPath methodSebastian Holtermann2019-02-024-63/+74
| | | | | | | | | | | | | | | | | | | | Refactors the cmSourceFile::FindFullPath method to use lambdas.
| * | | Use cmSourceFile::GetIsGeneratedSebastian Holtermann2019-02-0110-11/+11
| | | |
| * | | cmSourceFile: Add IsGenerated methodSebastian Holtermann2019-02-012-4/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | All cmSourceFiles are checked at least once whether they're `GENERATED` or not. This adds a convenience method `GetIsGenerated` that returns a private boolean cache variable `IsGenerated`. `IsGenerated` is updated every time the `GENERATED` property is written.
| * | | cmSourceFile: Additional static property stringsSebastian Holtermann2019-02-012-3/+7
| | | |
* | | | Merge topic 'vs-wince-deployment'Brad King2019-02-042-1/+15
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f5d72be57a VS: Fix deployment for WinCE projects Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2907
| * | | | VS: Fix deployment for WinCE projectsWil Stark2019-02-012-1/+15
| |/ / / | | | | | | | | | | | | Fixes: #18868
* | | | Merge topic 'winrtrefs'Brad King2019-02-046-5/+59
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cff026dbc0 VS: Fix WinRT component references 6c21722adb Tests: Fix VSWinStorePhone test with Windows 10 SDK 17763 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2906
| * | | | VS: Fix WinRT component referencesGilles Khouzam2019-02-016-4/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WinRT components need to be referenced in a similar way that managed code libraries are referenced. Validate that the library reference is a WinRT component and reference it through the project. Add test coverage for `VS_WINRT_COMPONENT`. While at it, fix the IOT reference failing on Win10 SDK 17763 which doesn't include it anymore. Fixes: #18846
| * | | | Tests: Fix VSWinStorePhone test with Windows 10 SDK 17763Gilles Khouzam2019-02-011-1/+5
| |/ / / | | | | | | | | | | | | The Windows 10 SDK no longer includes IOT.
* | | | Merge topic 'set-env-warning'Brad King2019-02-045-1/+24
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cb01b8c8ba set: warn of extra arguments after ENV value. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2903
| * | | | set: warn of extra arguments after ENV value.Taylor Holberton2019-02-015-1/+24
| | | | | | | | | | | | | | | | | | | | Fixes: #18842
* | | | | CMake Nightly Date StampKitware Robot2019-02-041-1/+1
| | | | |
* | | | | CMake Nightly Date StampKitware Robot2019-02-031-1/+1
| | | | |
* | | | | CMake Nightly Date StampKitware Robot2019-02-021-1/+1
| |/ / / |/| | |
* | | | Merge branch 'release-3.13'Brad King2019-02-010-0/+0
|\ \ \ \
| * | | | CMake 3.13.4v3.13.4Brad King2019-02-011-1/+1
| | | | |