Commit Graph

695 Commits

Author SHA1 Message Date
Brad King f3e8a89a9b Merge topic 'install_name_policy'
1ba91291 Add policy CMP0068 separate install_name and RPATH settings on macOS
f7b9bf41 Apple: Add BUILD_WITH_INSTALL_NAME_DIR target property
4bff2d14 Apple: Refactor support for using INSTALL_NAME_DIR.
624fb9d7 Help: Format BUILD_WITH_INSTALL_RPATH documentation
2017-02-17 08:46:14 -05:00
Clinton Stimpson 1ba91291e3 Add policy CMP0068 separate install_name and RPATH settings on macOS
BUILD_WITH_INSTALL_RPATH, SKIP_BUILD_RPATH, CMAKE_SKIP_RPATH and
CMAKE_SKIP_INSTALL_RPATH no longer any effect on the install name
of a target on macOS.

Fixes: #16589
2017-02-14 14:28:07 -07:00
Clinton Stimpson f7b9bf41c5 Apple: Add BUILD_WITH_INSTALL_NAME_DIR target property
This new property controls whether to apply INSTALL_NAME_DIR to the
build tree.  It also overrides BUILD_WITH_INSTALL_RPATH.
2017-02-14 14:28:07 -07:00
Brad King dc58d9f06d Merge topic 'command-cleanup'
e0f39312 cmCommands: add commands directly to cmState
72dcbbe5 split Default commands into Scripting and Project
7fb14775 cmDisallowedCommand: extract policy checking from cmCommand
615e2a17 cmCommand: Don't prefix error message with command name
45b49099 cmCommand: make noncopyable
5396bc92 cmCommand: remove member Helper
2017-02-14 08:30:33 -05:00
Brad King b7d8d80a62 Merge topic 'cmake_provide_include_dir_for_toolkit'
44f3acb2 CUDA: Detect the toolkit include directories
2017-02-14 08:30:30 -05:00
Daniel Pfeifer 72dcbbe5c0 split Default commands into Scripting and Project 2017-02-13 22:32:55 +01:00
Robert Maynard 44f3acb202 CUDA: Detect the toolkit include directories
The `nvcc -v` output provides what include directories need to be added
to use the CUDA toolkit from other languages ( C/C++ ).
2017-02-10 16:08:06 -05:00
Brad King 0a30938848 Merge topic 'ExtractGTestMacro'
9837ed96 GoogleTest: Add module to contain gtest_add_tests independently
2017-02-10 13:36:14 -05:00
Brad King 30abf145fd Help: Fix cmake code block warnings produced by Sphinx 1.4
Some of our "cmake" code blocks do not use fully valid CMake syntax
because they have placeholders for human reference.  Sphinx has
never been able to properly lex and highlight these, but now warns.
Fix each block's syntax or change to a non-cmake block as appropriate.
2017-02-10 10:43:30 -05:00
Bradley Lowekamp 9837ed9699 GoogleTest: Add module to contain gtest_add_tests independently
Extract the `gtest_add_tests` macro from `FindGTest` into a separate
module. GTest or GoogleTest can be used by a project in a several
different ways, including installed libraries in the system, from an
ExternalProject, or adding the GTest source directory as a sub directory
of the project. As not all of these uses are supported by the FindGTest
module the useful `gtest_add_tests` macro is separated to easily enable
reuse.

Issue: #14151
2017-02-07 11:24:18 -05:00
Rolf Eike Beer 94a8ee6fd0 GNU C: record that C99 is available since at least 3.4 2017-02-02 18:28:56 +01:00
Brad King be3727bf92 Help: Fix language standard link text in cmake-compile-features(7)
Include each language name in the text of the link to its standards
property.
2017-02-02 08:43:58 -05:00
Brad King d88ab13750 Merge topic 'doc-cmake-packages-typo'
f3619bbc Help: Fix typo in <pkg>_NOT_FOUND_MESSAGE example in cmake-packages(7)
2017-02-01 09:16:20 -05:00
Brad King 9f3e812fac Help: Extend documented purpose of cmake-developer(7) manual
Issue: #16616
2017-02-01 09:09:51 -05:00
Brad King f3619bbcd6 Help: Fix typo in <pkg>_NOT_FOUND_MESSAGE example in cmake-packages(7)
Fixes: #16616
2017-02-01 08:40:59 -05:00
Brad King 325c615308 Merge topic 'genex-if'
895f7f16 Genex: Add `IF` generator expression
2017-01-27 09:04:58 -05:00
Colby Pike 895f7f16a7 Genex: Add IF generator expression
This allows a single condition to be used to choose between two
alternatives.  Without this the condition must be duplicated with
one surrounded by `NOT`.

Closes: #15585
2017-01-26 11:18:50 -05:00
Brad King 4f37987e3f Merge topic 'lang_lint'
0618ddf6 Add properties to run the cpplint style checker with the compiler
2017-01-25 08:41:18 -05:00
Brad King 6122fc54a9 Merge topic '16253-xcode-effective-platform-name'
10c9c73d Xcode: Control emission of EFFECTIVE_PLATFORM_NAME
2017-01-24 14:45:24 -05:00
Brad King f6e4602fe7 Merge topic 'csproj-improvements'
4bfb1249 VS: removed usage of relative paths for C# targets in in-source builds
90cb4083 VS: improve handling of source files with special extensions in .csproj
2017-01-24 14:45:15 -05:00
Jamie Snape 0618ddf6b1 Add properties to run the cpplint style checker with the compiler
Create a `<LANG>_CPPLINT` target property (initialized by a
`CMAKE_<LANG>_CPPLINT` variable) to specify a `cpplint` style checker
command line to be run along with the compiler.
2017-01-23 14:47:13 -05:00
Gregor Jasny 10c9c73d58 Xcode: Control emission of EFFECTIVE_PLATFORM_NAME
When building with multiple SDKs within one project Xcode requires
the usage of ${EFFECTIVE_PLATFORM_NAME} to put temporary and build
outout into separate directories. For example an iOS device and
simulator build use two different SDKs (iphoneos and iphonesimulator).

In the past cmake tries to detect embedded toolchains that could
possibly use simulators and emitted EFFECTIVE_PLATFORM_NAME (EPN)
at the proper locations. In #16253 Mark noticed that if he
uses macosx and iphoneos in combination the necessary EPN is not
emitted. This is because CMake by default assumes macosx SDK which
does not trigger EPN emission.

The fist naive approach - enabling EPN unconditionally revealed that
then the EPN leaks into generator expressions like $<TARGET_FILE:xxx>
which might be a regression and thus is unacceptable.

The next approach was to add an CMake property to enable EPN emission
unconditionally. This solved the reported problem.

But the EPN leakage also happened for the embedded toolchains already
without anyone noticing. So the control property was turned into a
tri-state one:

 * No definition: EPN is activated for embedded toolchains like before
 * ON: EPN is always emitted
 * OFF: EPN is never emitted

That approach gives the user the chance to disable EPN for embedded
toolchains and restores generator expression functionality for those.

Closes: #16253
2017-01-20 13:51:48 -05:00
Michael Stürmer 90cb408323 VS: improve handling of source files with special extensions in .csproj
Mainly <Link> and <DependentUpon> tags are added to connect generated
and manually edited files. Special file extensions that are take care
of are:

 - .Designer.cs
 - .xaml.cs
 - .settings
 - .resx
 - .xaml
2017-01-18 15:51:22 +01:00
Gregor Jasny d9f836e956 Add a getter for manually added target dependencies
Closes: #16165
2017-01-16 22:38:24 +01:00
Michael Stürmer 6fda6005b3 VS: renamed target property VS_USER_PROPS_CXX to VS_USER_PROPS 2017-01-13 09:27:21 +01:00
Brad King 592c8cfd93 Merge topic 'add-cpack-ifw-configure-file'
6310f7c3 Add cpack_ifw_configure_file command
2017-01-12 10:20:33 -05:00
Sebastian Holtermann 6eabac26f5 AUTOGEN: Documentation update: cmake-qt, AUTOMOC, AUTOUIC, AUTORCC 2017-01-11 09:25:48 -05:00
Konstantin Podsvirov 6310f7c3a0 Add cpack_ifw_configure_file command 2017-01-11 13:56:45 +03:00
Sebastian Holtermann cbc07d331d AUTOGEN: Documentation for SKIP_AUTOX source file properties 2017-01-10 12:49:17 +01:00
Michael Stürmer 55da7e501e VS: add support for .NET references with hint paths 2016-12-13 13:51:50 -05:00
Brad King 7b47ce5a3a Merge topic 'document_cuda_standard_property'
45054119 Help: Document CUDA_STANDARD and related properties
2016-12-12 14:21:30 -05:00
Brad King 55ff3c78b3 Merge topic 'xcode-message-extension'
9ac0c393 Help: Add notes for topic 'xcode-message-extension'
0ae46321 Xcode: Add target property to override explicitFileType
7ecac703 Xcode: Add target property to override productType
2016-12-12 14:21:23 -05:00
Robert Maynard 4505411982 Help: Document CUDA_STANDARD and related properties 2016-12-09 14:13:06 -05:00
Brad King a0d64ecf8b Merge topic 'try_compile-lang-std'
f72ba42b try_compile: Add policy CMP0067 to honor language standards
45aa03b9 try_compile: Add options to specify language standards
3bb2051e try_compile: Stop processing when test build system fails to generate
2016-12-07 09:22:22 -05:00
Sebastian Holtermann e1f571a983 QtAutogen: CMake-Qt documentation update 2016-12-07 08:24:07 -05:00
Brad King f72ba42b7c try_compile: Add policy CMP0067 to honor language standards
Projects use `try_compile` to check if they will be able to compile some
particular source code.  When a language standard variable like
`CMAKE_CXX_STANDARD` is set, then the project intends to compile source
code using a compiler mode for that standard.  Therefore it makes sense
for `try_compile` to use that standard in the test project too.

Unfortunately this was not done when support for the
`CMAKE_CXX_STANDARD` variable was first implemented.  Add a policy to
introduce the improved behavior in a compatible way.

Closes: #16456
2016-12-06 08:58:42 -05:00
Gregor Jasny 0ae4632119 Xcode: Add target property to override explicitFileType 2016-12-04 00:13:51 +01:00
Gregor Jasny 7ecac703ce Xcode: Add target property to override productType 2016-12-04 00:13:08 +01:00
Michael Stürmer 163e801809 VS: Add target property VS_DEBUGGER_WORKING_DIRECTORY 2016-11-30 11:45:11 -05:00
Brad King 29b37dd975 Merge topic 'msbuild-customization'
e3909918 VS: Add option to customize vcxproj user props file
2016-11-30 08:37:37 -05:00
Brad King 4288708cba Merge topic 'vs15-rename-generator-for-master'
31e013ae Merge branch 'vs15-rename-generator' into vs15-rename-generator-for-master
d639620e VS: Rename VS 15 generator to 'Visual Studio 15 2017'
2016-11-30 08:37:11 -05:00
Brad King 31e013ae60 Merge branch 'vs15-rename-generator' into vs15-rename-generator-for-master 2016-11-29 10:51:35 -05:00
Roman Wüger d639620e14 VS: Rename VS 15 generator to 'Visual Studio 15 2017'
The final name of this VS version was announced:

 https://blogs.msdn.microsoft.com/visualstudio/2016/11/16/visual-studio-2017-rc/

Add the year to the generator name accordingly.  For convenience, map
the name without the year to the name with the year.
2016-11-29 10:46:36 -05:00
Michael Stürmer e390991846 VS: Add option to customize vcxproj user props file
Add a `VS_USER_PROPS_CXX` target property to set the user props file of
the generated `.vcxproj` file to be something other than the default
`$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props`.
2016-11-29 09:31:30 -05:00
Brad King 839cd16396 Merge topic 'vs-default-build-package'
9e3164df VS: Add option to place `PACKAGE` target in solution default build
2016-11-29 08:59:11 -05:00
Brad King 4838ca14df Merge topic 'initial_cuda_language_support'
4cc601f2 Help: Add release note for CUDA support
7b9131da CUDA: Add tests to verify CUDA compiler works properly.
9cf5b98d CUDA: Prefer environment variables CUDACXX and CUDAHOSTCXX.
a5e806b3 CUDA: Add support for CMAKE_CUDA_COMPILE_OPTIONS_VISIBILITY
d038559e CUDA: Add separable compilation support to the makefile generator.
43ce4414 CUDA: Add separable compilation support to the ninja generator.
4b316097 CUDA: Add support for the CUDA_SEPARABLE_COMPILATION target property
ae05fcc6 CUDA: Add LinkLineComputer that computes cuda dlink lines.
115269a8 CUDA: Refactor cmLinkLineComputer to allow for better derived children.
5dec4031 CUDA: Refactor CMakeCUDAInformation to prepare for separable compilation.
5b20d0ab CUDA: C++ compile features now enable cuda c++11 support.
489c52ce CUDA: Use the host compiler for linking CUDA executables and shared libs.
bbaf2434 CUDA: add support for specifying an explicit host compiler.
a92f8d96 CUDA: Enable header dependency scanning.
ec6ce623 CUDA: State that cuda has preprocessor output and can generate assembly.
4f5155f6 CUDA: We now properly perform CUDA compiler identification.
...
2016-11-29 08:59:03 -05:00
Michael Stürmer 9e3164dfa2 VS: Add option to place PACKAGE target in solution default build
Add a `CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD` variable to control
this behavior.
2016-11-29 08:46:27 -05:00
Brad King 2420ce88f1 Merge topic 'imported-interface-no-system'
46005251 Allow NO_SYSTEM_FROM_IMPORTED on imported INTERFACE libraries
2016-11-22 08:41:03 -05:00
Brad King de758cfaa1 Merge topic 'doc-CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT'
df9fea7f Help: Document CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT variable
2016-11-22 08:40:59 -05:00
Brad King df9fea7f49 Help: Document CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT variable
This variable documentation was simply missing.

Suggested-by: Craig Scott <craig.scott@crascit.com>
2016-11-21 11:52:00 -05:00