Commit Graph

35153 Commits

Author SHA1 Message Date
Brad King
22908e4be8 Merge topic 'xcode-test-schema-generation'
3fd9f4ab Xcode: Add test for schema generation
cf13e495 Xcode: Control schema generation via variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !577
2017-03-13 08:58:50 -04:00
Brad King
b46fa35824 Merge topic 'cuda-vs'
65481a60 CUDA: Work around VS limitation in CudaOnly.WithDefs test
8cae24a1 VS: Add more CUDA flag table entries
6ca4f222 VS: Add support for the CUDA_SEPARABLE_COMPILATION property
94255511 VS: Select CUDA code generation architectures
253594d0 VS: Select the CUDA runtime library
4def02a3 VS: Place CUDA host compiler options in proper project file fields
29f07b08 VS: Do not pass CUDA compile options to C compiler
b966f489 VS: Do not use absolute paths to CUDA sources
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !566
2017-03-13 08:57:57 -04:00
Brad King
abfc55a362 Merge topic 'refactor-module-def'
f36eaf6a Refactor WINDOWS_EXPORT_ALL_SYMBOLS implementation
25d261ef Refactor module definition file selection
1e0a9ac4 Refactor module definition source enumeration

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !570
2017-03-13 08:57:20 -04:00
Brad King
abbc0b839f Merge topic 'update-kwsys'
83be64d9 Merge branch 'upstream-KWSys' into update-kwsys
8ba8b553 KWSys 2017-03-07 (5da8cfe0)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !576
2017-03-13 08:42:04 -04:00
Brad King
ff5188481a Merge topic 'FindGit-avoid-vs-2017-git'
c4d481e5 FindGit: Avoid finding VS 2017 non-general Git installation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !575
2017-03-13 08:41:24 -04:00
Kitware Robot
ac59ec7dc1 CMake Nightly Date Stamp 2017-03-13 00:01:02 -04:00
Gregor Jasny
3fd9f4ab05 Xcode: Add test for schema generation
Closes: #15441
2017-03-12 21:27:53 +01:00
Gregor Jasny
cf13e49544 Xcode: Control schema generation via variable
Issue: #15441
2017-03-12 21:24:46 +01:00
Kitware Robot
ce0704e419 CMake Nightly Date Stamp 2017-03-12 00:01:03 -05:00
Kitware Robot
6a4e189b68 CMake Nightly Date Stamp 2017-03-11 00:01:04 -05:00
Brad King
83be64d99c Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2017-03-07 (5da8cfe0)
2017-03-10 16:24:53 -05:00
KWSys Upstream
8ba8b5537c KWSys 2017-03-07 (5da8cfe0)
Code extracted from:

    https://gitlab.kitware.com/utils/kwsys.git

at commit 5da8cfe0544f95697808b0b46ed3183621902f0b (master).

Upstream Shortlog
-----------------

Ben Boeckel (1):
      c5529406 SystemTools: use std::string::empty

Robert Maynard (1):
      27e64d34 SystemInformation: Teach Is64Bits to check host architecture at runtime
2017-03-10 16:24:52 -05:00
Brad King
c4d481e5b8 FindGit: Avoid finding VS 2017 non-general Git installation
At a VS 2017 command prompt the `PATH` contains a directory that happens
to have a `Git/cmd/git.exe` inside it.  However, this executable is not
meant for general use.  Revise our use of `Git/` path suffixes to be
more specific to its original purpose of searching in the typical
`c:/Program Files*/Git/` installation directories.  Avoid using the
suffixes on `PATH` entries.

Fixes: #16706
2017-03-10 16:09:31 -05:00
Brad King
0b2438118a Merge topic 'GNU-FindBinUtils-no-policy'
8fc934de GNU-FindBinUtils: Avoid setting policy CMP0054

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !572
2017-03-10 11:00:49 -05:00
Brad King
8fc934de0e GNU-FindBinUtils: Avoid setting policy CMP0054
The `cmake_policy(SET)` call triggers `CMP0011` warnings when this
module is used in a project that does not set `CMP0011` to NEW.  We
could avoid these with a `cmake_policy` PUSH/POP pair, but it is simpler
to adjust our code to not trigger `CMP0054` in the first place.
2017-03-10 10:46:11 -05:00
Brad King
65481a60a0 CUDA: Work around VS limitation in CudaOnly.WithDefs test
CUDA 8.0 MSBuild rules do not pass `-x cu` to nvcc and so cannot support
a custom file extension.  Fix our test for this to use a `.cu` extension
instead.
2017-03-10 10:19:58 -05:00
Brad King
8cae24a1d0 VS: Add more CUDA flag table entries 2017-03-10 10:19:57 -05:00
Brad King
6ca4f22292 VS: Add support for the CUDA_SEPARABLE_COMPILATION property 2017-03-10 10:19:57 -05:00
Brad King
94255511a6 VS: Select CUDA code generation architectures
Parse the `-gencode=`, `-arch`, and `-code` flags and generate a
`CodeGeneration` field in the project file.
2017-03-10 10:19:57 -05:00
Brad King
253594d0ae VS: Select the CUDA runtime library
Parse the `-cudart=` option and add a corresponding `CudaRuntime`
field to the generated project file.  Also add a matching `.lib`
to the list of libraries linked.
2017-03-10 10:19:57 -05:00
Brad King
4def02a385 VS: Place CUDA host compiler options in proper project file fields
The CUDA Toolkit's VS integration provides abstractions for host
compiler options for `nvcc` to pass through `-Xcompiler` to the host
MSVC.  Populate our secondary flag table and use it to remove flags from
the `AdditionalCompilerOptions` in favor of their abstractions.

Unfortunately a bug in the CUDA 8.0 VS integration prevents us from
passing anything in `AdditionalCompilerOptions` reliably.  After taking
out the flags that have dedicated abstractions, drop the rest.
2017-03-10 10:19:56 -05:00
Brad King
29f07b0867 VS: Do not pass CUDA compile options to C compiler 2017-03-10 10:19:56 -05:00
Brad King
b966f489c1 VS: Do not use absolute paths to CUDA sources
The CUDA Toolkit's VS integration does not properly compute the
intermediate files directory location when the path to the source
file is absolute.
2017-03-10 10:19:56 -05:00
Brad King
b64b4629ea VS: Add basic infrastructure for CUDA generation
Generate the `CudaCompile` elements in `.vcxproj` files.
2017-03-10 10:19:56 -05:00
Brad King
041ebda25b VS: Add placeholder CUDA flag tables
The CUDA Toolkit's VS integration defines abstractions for both options
to `nvcc` and options to pass through `-Xcompiler` to the host MSVC.
We need a separate flag table to parse each set of flags into the
corresponding abstractions.  Add empty placeholders for these tables.
2017-03-10 10:19:55 -05:00
Brad King
13433b1357 VS: Record in global generator whether CUDA is enabled 2017-03-10 10:19:55 -05:00
Brad King
82521e359f VS: Add support for determining CUDA compiler id
Teach `CMakeDetermineCompilerId` how to generate a vcxproj file using
the `CMAKE_VS_PLATFORM_TOOLSET_CUDA`.
2017-03-10 10:19:55 -05:00
Brad King
80e982d7ad VS: Add method to take a value out of the option parser flag map
Remove a flag from the map and return its value.
2017-03-10 10:19:55 -05:00
Brad King
f7bb40c92d VS: Add method to re-parse specific option parser fields
This will allow a client to parse flags, replace the flag tables, and
then re-parse a field in which flags for a secondary tool were
collected.
2017-03-10 10:19:54 -05:00
Brad King
a05fc93ee6 VS: Add method to clear flag tables of option parser 2017-03-10 10:19:54 -05:00
Brad King
895b890466 VS: Add more placeholders to compiler id detection project file template 2017-03-10 10:19:54 -05:00
Brad King
a650dbb280 VS: Refactor compiler id detection project file template
Make the `ClCompile` element name and `PostBuildEvent/Command` value
configurable.  Move the current content into default values for the
corresponding variables.
2017-03-10 10:19:54 -05:00
Brad King
62b308515a VS: Select highest available CUDA toolset by default
If `CMAKE_GENERATOR_TOOLSET` does not have a `cuda=...` field then
find available CUDA toolsets and choose the highest version.
2017-03-10 10:19:53 -05:00
Brad King
5164e9a651 VS: Provide an option to specify CUDA toolset version
The NVIDIA CUDA Toolkit provides MSBuild toolset files for integration
with Visual Studio.  Multiple versions may be installed so we need a way
to tell our VS generators which CUDA toolset to use.  Extend the
`CMAKE_GENERATOR_TOOLSET` specification to provide a `cuda=...` field
specifying the version number.
2017-03-10 10:19:53 -05:00
Brad King
83bf980c96 VS: Find the MSBuild value for VCTargetsPath
Run MSBuild on a simple `.vcxproj` file to extract the location of the
toolset definitions.  This will later be useful for looking at available
BuildCustomizations.
2017-03-10 10:19:52 -05:00
Brad King
29ec8d65f2 Merge topic 'pr.gcc_ar'
b9d36826 Add 'CMAKE_GCC_AR' and 'CMAKE_GCC_RANLIB' variables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !550
2017-03-10 08:40:58 -05:00
Brad King
6b586e2c13 Merge topic 'test-CPackComponents-fix-NSIS-root'
ae0f7dfa Tests: Fix CPackComponents NSIS install root

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !569
2017-03-10 08:40:38 -05:00
Kitware Robot
7bd58bd67d CMake Nightly Date Stamp 2017-03-10 00:01:04 -05:00
Brad King
f36eaf6a6e Refactor WINDOWS_EXPORT_ALL_SYMBOLS implementation
Use `cmGeneratorTarget::ModuleDefinitionInfo` to combine the
implementation of `WINDOWS_EXPORT_ALL_SYMBOLS` with that of using a
`.def` file as a source.  Only one of these could be used within a
single target before anyway.
2017-03-09 16:25:15 -05:00
Brad King
25d261efa7 Refactor module definition file selection
Create a `ModuleDefinitionInfo` structure for each configuration of a
target to hold corresponding information about the selected module
definition file (`.def` source).
2017-03-09 16:25:14 -05:00
Brad King
1e0a9ac45d Refactor module definition source enumeration
Add a `cmGeneratorTarget::GetModuleDefinitionSources` method.
2017-03-09 16:24:27 -05:00
Brad King
21499ee0a3 Merge topic 'x32-abi'
d9bdcf34 Tests: Add x32 tests to test suite
5b6d354f Help: Add notes for topic 'x32-abi'
bed9c73d Modules: Add x32-abi support to hard-coded paths
462cf254 Add support for x32-abi

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !532
2017-03-09 11:15:15 -05:00
Brad King
c4f9d10426 Merge topic 'master'
d9bdcf34 Tests: Add x32 tests to test suite
5b6d354f Help: Add notes for topic 'x32-abi'
bed9c73d Modules: Add x32-abi support to hard-coded paths
462cf254 Add support for x32-abi

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !532
2017-03-09 11:08:11 -05:00
Brad King
31f3531856 Merge topic 'doc-vs15-MSVC_VERSION'
66542b66 Help: Update MSVC_VERSION for Visual Studio 2017

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !567
2017-03-09 10:51:40 -05:00
Brad King
c0e46d42a3 Merge topic 'CheckLanguage-platform-toolset'
7e8b08ec Tests: Pass generator platform and toolset into check for Fortran
0f5e76df CheckLanguage: Pass generator platform and toolset into check

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !565
2017-03-09 10:50:52 -05:00
Brad King
ae0f7dfa95 Tests: Fix CPackComponents NSIS install root
Without `CPACK_VERBATIM_VARIABLES` a path with backslashes does not make
it through `CPackConfig.cmake` properly.  Just use forward slashes which
NSIS seems to understand anyway.
2017-03-09 10:20:35 -05:00
Kitware Robot
dcbe8ad42b CMake Nightly Date Stamp 2017-03-09 00:01:03 -05:00
Ruslan Baratov
b9d36826c5 Add 'CMAKE_GCC_AR' and 'CMAKE_GCC_RANLIB' variables 2017-03-09 04:28:01 +08:00
Wojciech Mamrak
66542b6636 Help: Update MSVC_VERSION for Visual Studio 2017
The value we documented was left from a preview that still used `v140`
tools.  Update it to match the `v141` tools distributed with the final
release.
2017-03-08 14:30:38 -05:00
Steven Newbury
d9bdcf34ef Tests: Add x32 tests to test suite 2017-03-08 17:23:30 +00:00