summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'fix-overlay-icon-windows' into release-3.14Brad King2019-04-111-1/+0
|\ | | | | | | Merge-request: !3217
| * cmake-gui: Fix icon overlay on windowsJulien Jomier2019-04-111-1/+0
| | | | | | | | | | | | | | | | | | Since commit 9175a378f5 (QtDialog: Add windows taskbar progress, 2018-11-17, v3.14.0-rc1~330^2) we've added a missing overlay icon. This results in Windows falling back to a default overlay icon. Simply drop this line. Fixes: #19160
* | Merge branch 'xcode-extra-sources' into release-3.14Brad King2019-04-111-18/+23
|\ \ | | | | | | | | | Merge-request: !3208
| * | Xcode: Avoid mutating App Bundle targets during generationBrad King2019-04-111-8/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For `MACOSX_BUNDLE` targets we generate an `Info.plist` automatically and add it to the sources presented to Xcode. Avoid mutating the original target's list of sources to achieve this. Otherwise when we generate the same target again (e.g. in a sub-project's Xcode file) it will look different than the first time and possibly break invariants. Fixes: #19114
| * | Xcode: Factor out duplicate source group code into lambdaBrad King2019-04-111-11/+10
| |/
* | cmake-gui: Fix theme on Windows with Qt >= 5.10mistersandman2019-04-081-0/+3
|/ | | | | | | In Qt 5.10 the theme support moved to a separate QWindowsVistaStyle plugin. Issue: #19147
* CMake 3.14.1v3.14.1Brad King2019-03-291-1/+1
|
* Merge branch 'implicit-includes-autogen' into release-3.14Brad King2019-03-291-8/+13
|\ | | | | | | Merge-request: !3159
| * Autogen: Do not treat hard-coded -I/usr/include exclusion as implicit includeSebastian Holtermann2019-03-281-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `cmLocalGenerator::GetIncludeDirectoriesImplicit` method is called by `cmQtAutoGenInitializer` to get the compiler's list of implicit include directories. Since commit 557b2d6e65 (Fix regression in -I/usr/include exclusion logic, 2019-02-13, v3.14.0-rc2~6^2~2) the method hard-codes exclusion of `/usr/include` for historical reasons. However, it should not be reported as a real implicit include directory unless the compiler really has it. Refactor the logic to distinguish the hard-coded exclusion of `/usr/include` from the real list of implicit include directories. Fixes: #19100
* | Merge branch 'backport-kwsys-SystemTools-copy-self' into release-3.14Brad King2019-03-271-4/+4
|\ \ | |/ |/| | | Merge-request: !3145
| * cmake: Fix '-E copy foo .' to avoid clobbering fileBrad King2019-03-261-4/+4
| | | | | | | | | | | | | | Backport KWSys commit 92334e7670 (SystemTools: CopyFileAlways: avoid copying file over self, 2019-03-25) to the CMake 3.14 release branch. Fixes: #19075
* | Merge branch 'jacoco_parser_crash' into release-3.14Brad King2019-03-271-0/+1
|\ \ | | | | | | | | | Merge-request: !3147
| * | ctest_coverage: fix out-of-bounds index in Jacoco parserSylvain Joubert2019-03-261-0/+1
| |/ | | | | | | | | | | | | | | | | | | When the current source file is not found the FilePath variable was left with the previous path content. In case the previous file had less lines than the current one and there are 'line' entries for the current one with higher number we ended up in a buffer overflow while indexing the previous file entry with a line number higher. By clearing the FilePath, the empty() guard triggers correctly on an empty path and it avoid modifying the wrong data.
* | Merge branch 'toolchain-include_directories' into release-3.14Brad King2019-03-251-1/+16
|\ \ | | | | | | | | | Merge-request: !3140
| * | Restore support for include_directories() in toolchain filesBrad King2019-03-251-1/+16
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Any `include_directories()` calls in toolchain files are used during our ABI detection step even though it does not include any system headers. Since commit 5990ecb741 (Compute implicit include directories from compiler output, 2018-12-07, v3.14.0-rc1~108^2), that check is also used to detect implicit include directories. Any `include_directories()` in a toolchain file are detected as implicit and later excluded from explicit specification on compiler command lines, thus breaking the purpose of the calls in the first place. Fix the implicit include directory detection step to avoid using paths from `include_directories()` calls in the toolchain file. Fixes: #19079
* | Merge branch 'eclipse-interface-lib' into release-3.14Brad King2019-03-201-0/+5
|\ \ | | | | | | | | | Merge-request: !3125
| * | Eclipse: Fix extra generator to not crash on interface librariesBrad King2019-03-201-0/+5
| |/ | | | | | | | | | | | | | | | | | | | | Do not process interface libraries in ways that expect build information to be present internally. This filtering was left out of the extra generator accidentally when interface libraries were introduced, but it worked by accident until commit 76ad2ecb50 (Order SYSTEM include directories after non-system directories, 2018-04-13, v3.12.0-rc1~179^2) added a code path that was not tolerated. Fixes: #18363
* | Merge branch 'find_program-windows-share' into release-3.14Brad King2019-03-141-1/+1
|\ \ | | | | | | | | | Merge-request: !3105
| * | find_program: Restore leading double slash on Windows network pathBrad King2019-03-141-1/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit c76c1ea208 (find_program: Consider CWD only for paths with separator, 2018-05-31, v3.13.0-rc1~413^2) we accidentally convert the leading `//` to just `/` on results with Windows network paths. This was caused by `CollapseCombinedPath` being less robust than `CollapseFullPath`. Restore use of the latter but in a way that preserves the requirement of the above commit to support candidates that are themselves absolute. Fixes: #19049 Issue: #19050
* | VS: Fix x64 host recognition by x86 cmake processBrad King2019-03-141-5/+10
|/ | | | | | | | | | | | | In commit 57e48f16f2 (VS: Add Visual Studio 16 2019 generator, 2019-01-09, v3.14.0-rc1~150^2) and commit 0fd742a6ff (VS: Teach VS 2019 generator to select host tools matching host arch, 2019-01-28, v3.14.0-rc1~63^2) we intended to select the `x64` target architecture and `x64` host tools by default on x64 host machines. Fix detection of a x64 host when CMake itself is a 32-bit x86 process. The KWSys SystemInformation `Is64Bits` member is not set correctly, which led to this bug. Pending investigation on the KWSys side, simply test ourselves via `IsWow64Process`.
* CMake 3.14.0v3.14.0Brad King2019-03-141-1/+1
|
* VS: Revert "Use MSBuild matching toolset host architecture"Brad King2019-03-121-12/+0
| | | | | | | | | | | Revert commit da402a081b (VS: Use MSBuild matching toolset host architecture, 2019-01-28, v3.14.0-rc1~50^2). Multiple people have reported that the 64-bit `amd64/msbuild` tool fails in cases that the 32-bit `msbuild` works. Drop our change pending further investigation and hopefully a fix to VS. Fixes: #18904, #19037 Issue: #18219
* CMake 3.14.0-rc4v3.14.0-rc4Brad King2019-03-081-1/+1
|
* Merge branch 'cxx-checks-warning-match' into release-3.14Brad King2019-03-071-1/+1
|\ | | | | | | Merge-request: !3075
| * C++ feature checks: Match warnings more strictlyBrad King2019-03-071-1/+1
| | | | | | | | | | | | | | | | Require the word "warning" to appear at the start of a line, after whitespace, or after a `:`. This is the same that CTest launchers use to match warnings. It avoids matching "warning" inside file paths. Fixes: #19019
* | Merge branch 'install-no-imported-global' into release-3.14Brad King2019-03-071-1/+5
|\ \ | | | | | | | | | Merge-request: !3071
| * | install: Do not crash on imported global targetBrad King2019-03-071-1/+5
| |/ | | | | | | | | | | | | | | | | | | | | Since commit e89ad0f94e (install: Allow installing targets created in another directory, 2018-06-18, v3.13.0-rc1~407^2) the `install(TARGETS)` command may find a global-scoped target outside the calling directory. Ignore an `IMPORTED GLOBAL` target if it is found in this way. Imported targets cannot be installed, and trying to do so violates internal invariants. Fixes: #19022
* | Merge branch 'vs-explicit-newline' into release-3.14Brad King2019-03-061-0/+1
|\ \ | | | | | | | | | Merge-request: !3065
| * | VS: Encode newlines in XML attributesLuca Cappa2019-03-061-0/+1
| |/ | | | | | | | | | | | | | | Encode `\n` as `
` to avoid generating a literal newline inside an XML attribute. This is more readable and also fixes custom commands in `.csproj` files with VS 2019 RC. Fixes: #19001
* | VS: Fix Fortran target type selection with RC sourcesBrad King2019-03-011-0/+4
|/ | | | | | | | | | | | | The Intel Fortran `.vfproj` files do support both Fortran and the Windows Resource compiler (`.rc)` files. Prior to CMake 3.9 we did not support that, but commit 2c9f35789d (VS: Decide project type by linker lang as fallback, 2017-03-30, v3.9.0-rc1~340^2) accidentally enabled it. It was then broken by commit d3d2c3cd49 (VS: Fix Fortran target type selection when linking C++ targets, 2019-02-04, v3.14.0-rc1~13^2). Restore support for Fortran+RC in VS projects and add a test case. Fixes: #19002
* CMake 3.14.0-rc3v3.14.0-rc3Brad King2019-03-011-1/+1
|
* Merge branch 'cuda_device_link_handle_frameworks' into release-3.14Brad King2019-03-011-0/+12
|\ | | | | | | Merge-request: !3039
| * 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