37846 Commits

Author SHA1 Message Date
Brad King
319622a49f CMake 3.10.0-rc3 v3.10.0-rc3 2017-10-19 10:20:40 -04:00
Brad King
9ffb35386f VS: Select and save a VS 2017 instance persistently
Visual Studio 2017 supports multiple instances installed on a single
machine.  We use the Visual Studio Installer tool to enumerate instances
and select one.  Once we select an instance for a given build tree, save
the result in `CMAKE_GENERATOR_INSTANCE` so we can re-configure the tree
with the same instance on future re-runs of CMake.

Fixes: #17268
2017-10-19 10:20:12 -04:00
Brad King
17edfa4198 cmVSSetupHelper: Add option to specify an instance 2017-10-19 10:20:12 -04:00
Brad King
a19b811363 CheckLanguage: Pass generator instance into check
Otherwise we do not check for support for the language with the same
generator instance as the caller.
2017-10-19 10:20:11 -04:00
Brad King
6b3cd64d42 ExternalProject: Propagate the generator instance
When the `CMAKE_GENERATOR` option is given to `ExternalProject_Add`,
look also for option `CMAKE_GENERATOR_INSTANCE` to pass on to cmake as a
cache definition.  When no `CMAKE_GENERATOR` option is given explicitly
then use the current project's `CMAKE_GENERATOR_INSTANCE` (since we
already use its CMAKE_GENERATOR).
2017-10-19 10:20:11 -04:00
Brad King
314613d1af Add infrastructure for generators to select a build tool instance
Add cache entry `CMAKE_GENERATOR_INSTANCE` to hold the instance location
persistently across re-runs of CMake in a given build tree.

For now we reject the option by default if explicitly set.  It will be
implemented on a per-generator basis.  Pass the setting into try_compile
project generation.  Add a RunCMake.GeneratorInstance test to cover
basic use cases for the option.  Verify that `CMAKE_GENERATOR_INSTANCE`
is empty by default, and that it is rejected when the generator does not
support a user setting.

Issue: #17268
2017-10-19 10:20:08 -04:00
Brad King
358ceee5d8 Merge topic 'curl_netrc_options'
d45aa38a Add dev notes for topic 'curl_netrc_options'
60c272b6 ExternalProject: Add support for NETRC and NETRC_FILE suboption
754e39dd Add testcases for file(DOWNLOAD|UPLOAD) netrc options
5d67e902 file(DOWNLOAD|UPLOAD): Add 'NETRC' and 'NETRC_FILE' suboption

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ruslan Baratov <ruslan_baratov@yahoo.com>
Merge-request: !1376
2017-10-19 09:27:43 -04:00
Brad King
d209275330 Merge topic 'ti-compiler-depfile-support'
ad9327d9 Compiler/TI: Add support for depfile generation for Ninja

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1389
2017-10-19 09:27:09 -04:00
Brad King
ec0dbd044a Merge topic 'ide-direct-CMakeLists.txt'
344d149a VS,Xcode: Add CMakeLists.txt sources without mutating targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1392
2017-10-19 09:26:33 -04:00
Kitware Robot
c412f40b5a CMake Nightly Date Stamp 2017-10-19 00:01:36 -04:00
Shane Parris
d45aa38a06 Add dev notes for topic 'curl_netrc_options' 2017-10-18 15:21:43 -04:00
Shane Parris
60c272b69a ExternalProject: Add support for NETRC and NETRC_FILE suboption 2017-10-18 15:21:43 -04:00
Shane Parris
754e39dd36 Add testcases for file(DOWNLOAD|UPLOAD) netrc options 2017-10-18 15:21:42 -04:00
Shane Parris
5d67e9025d file(DOWNLOAD|UPLOAD): Add 'NETRC' and 'NETRC_FILE' suboption 2017-10-18 15:21:42 -04:00
Brad King
344d149ae4 VS,Xcode: Add CMakeLists.txt sources without mutating targets
Rather than injecting `CMakeLists.txt` files into each target's
`SOURCES`, teach the generators to add them during generation using
dedicated code.  This avoids mutating the original targets, and avoids
polluting `$<TARGET_PROPERTY:foo,SOURCES>` with generator-specific
content.

This also avoids listing the `CMakeLists.txt` sources in the results of
`CMAKE_DEBUG_TARGET_PROPERTIES==SOURCES` so the `RunCMake.TargetSources`
test no longer needs a separate case for IDEs.
2017-10-18 14:24:07 -04:00
Nico Müller
ad9327d936 Compiler/TI: Add support for depfile generation for Ninja
TI C/C++ compiler are now able to generate dependency files during
compilation.

Fixes: #17360
2017-10-18 09:43:22 -04:00
Brad King
6dec363028 Merge branch 'release-3.10' 2017-10-18 09:38:59 -04:00
Brad King
b0b94cdec5 Merge topic 'cmake-open'
96d642c7 cmake-gui: Use cmake::Open to open generated project
5de37a4a cmake: Add --open option for IDE generators

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ruslan Baratov <ruslan_baratov@yahoo.com>
Merge-request: !1337
2017-10-18 09:37:59 -04:00
Brad King
0dba1db9d5 Merge topic 'module-fetchcontent'
1e56634f FetchContent: Add tests
60e74d2f FetchContent: New module for populating content at configure time

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1306
2017-10-18 09:37:26 -04:00
Brad King
0f23697eb0 Merge topic 'vs-cuda-machine'
fd90a14f VS: Set CUDA TargetMachinePlatform explicitly on x64

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1390
2017-10-18 09:36:06 -04:00
Brad King
1f436c5803 Merge topic 'findopenmp-lib-paths'
f4cc7109 FindOpenMP: Improve OMP libraries search

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1385
2017-10-18 09:35:29 -04:00
Kitware Robot
7a67f5c599 CMake Nightly Date Stamp 2017-10-18 00:01:05 -04:00
Brad King
069c1bd908 Merge branch 'vs-cuda-machine' into release-3.10
Merge-request: !1390
2017-10-17 10:47:14 -04:00
Brad King
fd90a14f1b VS: Set CUDA TargetMachinePlatform explicitly on x64
The `TargetMachinePlatform` setting tells CUDA what `--machine {32,64}`
flag to pass to nvcc.  While CUDA automatically chooses the proper
default for the target architecture, it does not reflect this in the
user-visible IDE settings.  Set it explicitly to fix the user-visible
setting.

Fixes: #17355
2017-10-17 10:41:41 -04:00
Brad King
5a25bda524 Merge branch 'findopenmp-lib-paths' into release-3.10
Merge-request: !1385
2017-10-17 09:59:48 -04:00
Christian Pfeiffer
f4cc71099a FindOpenMP: Improve OMP libraries search
This supports libraries given as full path and filters libraries given
in CMAKE_<LANG>_STANDARD_LIBRARIES.

Fixes: #17351
2017-10-17 09:53:57 -04:00
Brad King
6cdd03ee1e Merge branch 'release-3.10' 2017-10-17 08:37:31 -04:00
Brad King
d0fbf3d4cb Merge topic 'vs-2017-cl-check'
f566586e VS: Detect compiler component in VS 2017 instances more reliably
c6bb704e cmVSSetupHelper: Fix install location encoding conversion
4c3116d7 cmVSSetupHelper: Factor out install location string construction

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1388
2017-10-17 08:35:50 -04:00
Brad King
b361990007 Merge topic 'Linux-CUDA-OpenCL'
060fd233 FindOpenCL: Add support for CUDA OpenCL on Linux

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1387
2017-10-17 08:32:53 -04:00
Kitware Robot
01c836c951 CMake Nightly Date Stamp 2017-10-17 00:01:04 -04:00
Craig Scott
1e56634faa FetchContent: Add tests 2017-10-17 08:10:19 +11:00
Craig Scott
60e74d2f19 FetchContent: New module for populating content at configure time 2017-10-17 08:07:09 +11:00
Brad King
07068d67e9 Merge branch 'vs-2017-cl-check' into release-3.10
Merge-request: !1388
2017-10-16 13:40:13 -04:00
Brad King
f566586e1c VS: Detect compiler component in VS 2017 instances more reliably
The `Microsoft.VisualStudio.Component.VC.Tools.x86.x64` component is
not the only way a VS instance may provide the `cl` compiler tool.
For example, VS 2017 Express Edition does not install that component.
Instead search for the tools directly on disk within an instance.

Suggested-by: Rich Chiodo <rchiodo@microsoft.com>
Fixes: #17349
2017-10-16 11:57:15 -04:00
Brad King
c6bb704ea1 cmVSSetupHelper: Fix install location encoding conversion 2017-10-16 11:55:53 -04:00
Brad King
4c3116d754 cmVSSetupHelper: Factor out install location string construction
This also adds a missing conversion to unix slashes in one code path.
2017-10-16 11:55:53 -04:00
Brad King
60f982aab4 Merge topic 'imported-interface-no-system'
22beb07f Help: Clarify documentation of NO_SYSTEM_FROM_IMPORTED
2de0e0fd Do not initialize NO_SYSTEM_FROM_IMPORTED on INTERFACE libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1386
2017-10-16 09:51:46 -04:00
Brad King
800c0e8105 Merge topic 'UseJava-add_jar-split-build-and-output-dirs'
48dcb2f0 UseJava: add_jar OUTPUT_DIR option used only for jar generation.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1380
2017-10-16 09:48:53 -04:00
Brad King
9de7ae6e5e Merge topic 'cpack-wix-cygwin'
e1409101 cpack wix: support WiX generator on Cygwin
e258fe03 cpack wix: fix path error on cygwin

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1367
2017-10-16 09:48:02 -04:00
Brad King
42461a2a01 Merge topic 'cpack-dmg-errors'
1943dc6b cmCPackDragNDropGenerator: Improve error reporting

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1379
2017-10-16 09:47:34 -04:00
Brad King
9c3bdbd584 Merge topic 'update-kwsys'
df92617b Merge branch 'upstream-KWSys' into update-kwsys
e44b0cb2 KWSys 2017-10-12 (ef0ad34d)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1384
2017-10-16 09:46:23 -04:00
Kitware Robot
386f7c6e98 CMake Nightly Date Stamp 2017-10-16 00:01:05 -04:00
Takenori Yamamoto
060fd23313 FindOpenCL: Add support for CUDA OpenCL on Linux
When setting CUDA_PATH, the include directory ($CUDA_PATH/include) was found, but libOpenCL.so was not found. This patch resloved the issue.
2017-10-15 15:18:17 +09:00
Kitware Robot
7b26768dfa CMake Nightly Date Stamp 2017-10-15 00:01:03 -04:00
Kitware Robot
9628f0c001 CMake Nightly Date Stamp 2017-10-14 00:01:05 -04:00
Gregor Jasny
96d642c7b8 cmake-gui: Use cmake::Open to open generated project 2017-10-13 21:28:35 +02:00
Gregor Jasny
5de37a4a64 cmake: Add --open option for IDE generators 2017-10-13 21:28:34 +02:00
Brad King
f64c554cc9 Merge branch 'imported-interface-no-system' into release-3.10
Merge-request: !1386
2017-10-13 14:36:45 -04:00
Brad King
22beb07f98 Help: Clarify documentation of NO_SYSTEM_FROM_IMPORTED
This property is meant to be set on the consumers of imported targets,
not the imported targets themselves.

Fixes: #17348
2017-10-13 14:32:15 -04:00
Brad King
2de0e0fdfa Do not initialize NO_SYSTEM_FROM_IMPORTED on INTERFACE libraries
The change in commit v3.8.0-rc1~276^2 (Allow NO_SYSTEM_FROM_IMPORTED on
imported INTERFACE libraries, 2016-11-21) was incorrect.  The property
is not meant to be set on imported targets at all.  It is meant to be
set on their consumers that compile sources.  Since INTERFACE libraries
have no sources to compile, the property is not needed on them.

Revert most of that change.  Unfortunately we must still tolerate
project code setting NO_SYSTEM_FROM_IMPORTED on INTERFACE libraries
because they were allowed by CMake 3.8 and 3.9.

Issue: #17348
2017-10-13 14:32:14 -04:00