summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* CUDA: CMAKE_EXPORT_COMPILE_COMMANDS now works with CUDA and NinjaRobert Maynard2017-07-131-6/+21
| | | | Fixes: #17061
* CMake 3.9.0-rc6v3.9.0-rc6Brad King2017-07-121-1/+1
|
* Merge branch 'vs-2017-sln-guid' into release-3.9Brad King2017-07-111-4/+16
|\
| * VS: Add SolutionGuid to generated .sln filesBrad King2017-07-111-4/+16
| | | | | | | | | | | | Visual Studio 2017 Update 3 adds a SolutionGuid to its `.sln` files. Fixes: #17041
* | Merge branch 'find_package-root-prefix-path-suffixes' into release-3.9Brad King2017-07-113-18/+3
|\ \
| * | find_*: Honor PATH_SUFFIXES in PackageName_ROOT pathsBrad King2017-07-111-0/+2
| | | | | | | | | | | | | | | | | | | | | This was accidentally forgotten in commit v3.9.0-rc1~71^2~2 (find_*: Add a new PackageRoot search path group, 2017-05-03). Fixes: #17052
| * | cmFindCommon: Drop unused FilterPaths methodBrad King2017-07-112-17/+0
| | | | | | | | | | | | | | | | | | The method has not been used since commit v3.2.0-rc1~400^2~1 (Encapsulate search path manipulation functions into a seperate class, 2014-10-15).
| * | cmFindCommon: Fix typo in PackageName_ROOT path labelBrad King2017-07-111-1/+1
| |/
* | Merge branch 'bindexplib-revert-consts' into release-3.9Brad King2017-07-101-10/+12
|\ \
| * | bindexplib: Revert support for constants symbolsBrad King2017-07-101-10/+12
| |/ | | | | | | | | | | | | | | | | | | Revert the main logic change of commit v3.9.0-rc1~192^2 (bindexplib: fix constants symbols export, 2017-04-26) and its test case. Unfortunately some constants may be provided by multiple object files with different `@...` suffixes, leading to ambiguous references. Revert support pending further investigation. Fixes: #17045
* | Merge branch 'vs-2017-choose-via-environment' into release-3.9Brad King2017-07-101-0/+28
|\ \
| * | VS: Choose VS 2017 instance via environment variableBrad King2017-07-101-0/+28
| |/ | | | | | | | | | | | | | | | | In the `Visual Studio 15 2017` generator, if the `VS150COMNTOOLS` environment variable points at a specific VS 2017 instance reported by the Visual Studio Installer tool, use that as the preferred instance. Inspired-by: Iyyappa Murugandi <iyyappam@microsoft.com> Fixes: #16846
* | Merge branch 'autogen_skip_included' into release-3.9Brad King2017-07-101-28/+33
|\ \
| * | Autogen: Skip included files on demandSebastian Holtermann2017-07-101-28/+33
| | |
* | | Merge branch 'autogen-no-generated-files' into release-3.9Brad King2017-07-071-0/+7
|\ \ \
| * | | Autogen: Skip generated files for compatibility with CMake 3.8Brad King2017-07-071-0/+7
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change in commit v3.9.0-rc1~464^2~8 (Autogen: Add AUTOMOC/UIC support for generated source files, 2017-03-02) changes behavior of existing projects that may not expect `AUTOGEN` on generated files and do not yet set `SKIP_AUTOGEN` on them. Disable the behavior change for now to fix the regression for CMake 3.9. We can restore it later with a policy. In order to keep the implementation and tests working, add an undocumented property we can use in the tests to enable the behavior before the policy is introduced. Fixes: #17031 Issue: #16186
* | | Merge branch 'find_package-restore-considered-configs' into release-3.9Brad King2017-07-071-1/+2
|\ \ \ | |_|/ |/| |
| * | find_package: Restore longer message when config files were consideredBrad King2017-07-071-1/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit v3.9.0-rc1~58^2 (find_package: shorten output for missing package in config mode, 2017-05-09) we print only the one line - Could NOT find Foo (missing: Foo_DIR) when package Foo cannot be found in CONFIG mode and it is not REQUIRED. However, in the case that package configuration files were found but not used, this one line message leaves out important information. This can happen when a package configuration file sets `Foo_FOUND` to `FALSE` or when its package version file does not match the requested version. Restore the longer message in these cases. Otherwise a seemingly valid explicit `Foo_DIR` setting appears to be silently ignored even if it was considered. Fixes: #17029
* | Merge branch 'autogen_p' into release-3.9Brad King2017-07-051-1/+0
|\ \
| * | Autogen: Continue search for FOO_p.h when FOO.h was foundSebastian Holtermann2017-07-021-1/+0
| | |
* | | Merge branch 'autogen-header-skip' into release-3.9Brad King2017-07-051-1/+1
|\ \ \
| * | | Autogen: Check .moc header name against SKIP listSebastian Holtermann2017-06-301-1/+1
| | |/ | |/| | | | | | | | | | | | | When encountering an #include "FOO.moc" statement where FOO.hpp was chosen over FOO.cpp as the moc source, the FOO.hpp name was not checked against the moc SKIP list.
* | | Merge branch 'vs-link-guard-cf' into release-3.9Brad King2017-06-302-6/+0
|\ \ \ | |_|/ |/| |
| * | VS: Fix support for '/guard:cf' linker flagOlender, Sebastian D2017-06-302-6/+0
| | | | | | | | | | | | | | | | | | | | | Although `$(VCTargetsPath)/1033/link.xml` for v140 and v141 toolsets contains an entry for `LinkControlFlowGuard`, it does not work when used in a `.vcxproj` file. Drop our link flag table entries for these toolsets so that the flag will be passed via `AdditionalOptions`.
* | | Merge branch 'xcode-cross-sdk-object-libraries' into release-3.9Brad King2017-06-302-5/+5
|\ \ \ | |/ / |/| |
| * | Xcode: Use correct Object Library paths for cross-SDK buildsGregor Jasny2017-06-292-5/+5
| |/ | | | | | | | | | | | | | | When calculating Object Library paths take a look at the `XCODE_EMIT_EFFECTIVE_PLATFORM_NAME` property to enable builds with different SDKs. Otherwise a hard-coded architecture could be chosen. Fixes: #16040
* | VS: Add v140 and v141 flag table entries for /DEBUG:NONE and /DEBUG:FULLIan Hojnicki2017-06-282-0/+11
| |
* | VS: Fix GenerateDebugInformation values for v140 and v141 toolsetsBrad King2017-06-285-30/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When VS 2015 was first released, its new v140 toolset came with a `link.xml` file that changed the `GenerateDebugInformation` boolean (`false` and `true`) value from earlier toolsets to an enumeration consisting of the possible values `No`, `Debug`, and `DebugFastLink`. We first adapted to this in commit v3.4.2~2^2 (VS: Fix VS 2015 .vcxproj file value for GenerateDebugInformation, 2016-01-08), but that broke older toolsets that still expected the boolean. Then commit v3.6.0-rc1~295^2~1 (VS: Fix VS 2015 .vcxproj debug setting for older toolsets, 2016-02-24) added a hack to fix up the value based on the toolset in use. Several follow-up commits fixed this for more older toolsets because our flag table was at the time based on the generator in use rather than the toolset in use. Since commit v3.8.0-rc1~396^2 (VS: Choose flag map based on the toolset name, 2016-10-17) we use a flag table based on the toolset, so the fixup hack should not be needed. We had to keep it around only due to our default value for GenerateDebugInformation (`false` or `No`) still being based on the generator instead of the toolset. A VS 2015 update was released that changed the v140 toolset `link.xml` file back to using `false` and `true` for the `GenerateDebugInformation` enumeration variants previously known as `No` and `Debug`. In order to know which pair to use, we need to parse the `link.xml` file for the current toolset. Switch back to using `false` and `true` unconditionally in our `GenerateDebugInformation` flag table entries and default value. With that plus the toolset-based flag table, we now get incorrect values for `GenerateDebugInformation` only when using a v140 toolset from an older VS 2015 installation. Detect this case by parsing `link.xml` and add special logic to convert `false` and `true` to `No` and `Debug` to satisfy the older toolset specification. Inspired-by: Ian Hojnicki <nullref@live.com> Fixes: #17020
* | VS: Fix GenerateDebugInformation flag map text for v141 toolsetsIan Hojnicki2017-06-281-2/+2
| | | | | | | | Update the help text to match that from v141's link.xml file.
* | VS: Split link flag table between v140 and v141 toolsetsIan Hojnicki2017-06-285-6/+291
|/
* CMake 3.9.0-rc5v3.9.0-rc5Brad King2017-06-271-1/+1
|
* Merge branch 'fix-crash-on-non-enabled-language-features' into release-3.9Brad King2017-06-271-2/+19
|\
| * target_compile_features: Do not crash on non-enabled languageBrad King2017-06-261-2/+19
| | | | | | | | Fixes: #17011
* | Merge branch 'vs-cuda-fix-flags' into release-3.9Brad King2017-06-271-3/+3
|\ \ | |/ |/|
| * VS: Fix support for nvcc flags not in our flag tableBrad King2017-06-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | The change in commit v3.9.0-rc4~3^2 (VS: Improve workaround for CUDA -Xcompiler placement bug, 2017-06-21) accidentally appended to the `AdditionalOptions` as if it were a `;`-separated list, but it is actually a command-line string. Append with a space instead. While at it, fix the same problem for the `AdditionalOptions` added to `CudaLink` by commit v3.9.0-rc3~1^2 (CUDA: When linking device code suppress CUDA 8.0+ deprecation warnings, 2017-06-09). Fixes: #17008
* | CMake 3.9.0-rc4v3.9.0-rc4Brad King2017-06-221-1/+1
| |
* | Merge branch 'vs-rc-flags' into release-3.9Brad King2017-06-224-0/+4
|\ \
| * | VS: Fix support for rc /nologo flag in per-source COMPILE_FLAGSBrad King2017-06-224-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit v3.9.0-rc1~160^2 (VS: Use tool-specific flag table for COMPILE_FLAGS parsing, 2017-05-03) we now correctly use the `rc` flag table to process the COMPILE_FLAGS flags of `.rc` source files instead of incorrectly using the `cl` flag table as before. However, our `rc` flag table is not complete. The `/nologo` flag was working before only by accident because the `cl` flag table entry for it happened to match. Add the proper entry to the `rc` flag table. Fixes: #16991
* | | Merge branch 'vs-cuda-fix-flags' into release-3.9Brad King2017-06-211-10/+35
|\ \ \ | | |/ | |/|
| * | VS: Improve workaround for CUDA -Xcompiler placement bugBrad King2017-06-211-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit v3.9.0-rc1~431^2~6 (VS: Place CUDA host compiler options in proper project file fields, 2017-03-07) we worked around a bug in the CUDA VS integration by dropping `AdditionalCompilerOptions`. However, this silently drops `-Xcompiler=` options given by the user that don't map to one of CudaCompile's dedicated settings. Improve the workaround to instead put the remaining `AdditionalCompilerOptions` into the `AdditionalOptions` field behind `-Xcompiler=` ourselves.
| * | VS: Fix target_compile_options for CUDABrad King2017-06-211-7/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the VS generator to honor `COMPILE_OPTIONS` for CUDA. The exclusion added by commit v3.9.0-rc1~431^2~7 (VS: Do not pass CUDA compile options to C compiler, 2017-03-07) was correct but we need additional logic to pass the CUDA compile options to the CUDA compiler. Also we should still pass the CXX or C options to MSVC (ClCompile) when those languages are enabled even if the link language is CUDA.
* | | Vs: allow CSharp targets to be linked to CXX targetsMichael Stürmer2017-06-211-4/+0
|/ / | | | | | | Fixes: #16755
* | Merge branch 'ipo-per-lang' into release-3.9Brad King2017-06-148-20/+28
|\ \
| * | IPO: Consider support for each language separatelyBrad King2017-06-148-20/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | We only define `INTERPROCEDURAL_OPTIMIZATION` behavior for C, CXX, and Fortran languages. Do not try to enable support for other languages. Furthermore, each language builds with a different compiler, so check for support by CMake and the compiler for each language independently. Fixes: #16944
* | | Merge branch 'libuv-restore-fmode' into release-3.9Brad King2017-06-141-0/+16
|\ \ \
| * | | cmake: Fix default file translate mode when using libuvBrad King2017-06-141-0/+16
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Windows, libuv's one-time initialization changes the C runtime library's `_fmode` setting to `_O_BINARY`, thus causing files to open as binary after that instead of the default `_O_TEXT` mode. See upstream libuv issue 840. Work around the problem by performing libuv initialization early and then restoring `_fmode`. In particular, this currently affects server mode. Without this fix, the `_fmode` setting changes when the server mode initializes libuv. Fixes: #16962
* | | CMake 3.9.0-rc3v3.9.0-rc3Brad King2017-06-131-1/+1
| | |
* | | Merge branch 'cuda-dlink-no-deprecated-gpu' into release-3.9Brad King2017-06-131-0/+7
|\ \ \
| * | | CUDA: When linking device code suppress CUDA 8.0+ deprecation warningsRobert Maynard2017-06-131-0/+7
| |/ / | | | | | | | | | | | | | | | The CUDA compiler automatic deprecation warnings are pure noise when doing device linking, and should be suppressed to reduce the amount of confusion from users.
* | | Merge branch 'improve-msvc-feature-checks' into release-3.9Brad King2017-06-081-1/+3
|\ \ \