Commit Graph

1745 Commits

Author SHA1 Message Date
Brad King b3b238c3cc Merge topic 'bzip2-imported-targets'
79eba4b7 Help: Add notes for topic 'bzip2-imported-targets'
069cac58 Tests: Add FindBZip2 unit tests
e9ce0503 FindBZip2: Add imported target
2016-09-12 09:31:41 -04:00
Brad King f27f6f8f3f Merge topic 'wix-feature-patch'
c0bccc51 CPackWIX: Enabled patching of WIX <Feature> tags
2016-09-12 09:31:35 -04:00
Brad King 79eba4b7ab Help: Add notes for topic 'bzip2-imported-targets' 2016-09-09 11:42:35 -04:00
Michael Stürmer c0bccc51df CPackWIX: Enabled patching of WIX <Feature> tags 2016-09-09 13:03:57 +02:00
Bill Hoffman cb299acc27 cmake_parse_arguments: Add option to read arguments from ARGC/ARGV#
The `ARGC`/`ARGV#` variables in function scope hold the original
arguments with no ;-list flattening.  Add a way for functions to
cleanly parse arguments that may contain `;`.  This also avoids
extra copying of the arguments.

Co-Author: Brad King <brad.king@kitware.com>
2016-09-08 11:33:46 -04:00
Brad King 988b3806b6 Merge topic 'vs-15-generator'
bdc679a8 VS15: Add Visual Studio 15 generator
a8936656 VS: Update v140 flag tables from VS 15 MSBuild files
21346d3f Features: Record features for VS 15 Preview 4
2016-09-08 09:36:54 -04:00
Brad King bdc679a8ae VS15: Add Visual Studio 15 generator
Call the generator "Visual Studio 15" without any year because the
preview version of VS 15 does not provide a year in the product name.

Copy cmGlobalVisualStudio14Generator to cmGlobalVisualStudio15Generator
and update version numbers accordingly.  Add the VS15 enumeration value.
Note that we do not need to add a MSVC15 variable or v150 toolset
because Visual Studio 15 comes with an updated version of the v140
toolset and remains ABI-compatible.

Teach tests VSExternalInclude, RunCMake.GeneratorPlatform, and
RunCMake.GeneratorToolset to treat VS 15 as they do VS 10-14.

Closes: #16143
2016-09-07 15:49:08 -04:00
Brad King 7f7e5eafd8 Merge topic 'GNUInstallDirs-function'
17a24dc3 GNUInstallDirs: Add macro to expose internal logic publicly
2016-09-07 09:48:38 -04:00
Brad King 8665332513 Merge topic 'cpack-deb-package-description-fallback'
332b089a CPack/DEB: Make package description variable precedence match RPM
2016-09-07 09:48:35 -04:00
Roger Leigh 17a24dc3b9 GNUInstallDirs: Add macro to expose internal logic publicly 2016-09-07 09:40:41 -04:00
Domen Vrankar 332b089ad2 CPack/DEB: Make package description variable precedence match RPM
Make `CPACK_DEBIAN_PACKAGE_DESCRIPTION` fallback variable precedence
match CPackRPM behavior as much as possible.  This is technically a
breaking change, but the new behavior is more consistent with
expectation anyway.

Closes: #16272
2016-09-07 09:33:35 -04:00
Brad King a756c74da5 Help: Clarify meaning of MSVC<NN> variables
They correspond to toolsets, not VS IDE versions.
2016-09-06 10:22:38 -04:00
Domen Vrankar 4ffdd564eb CPack/DEB: Add option to select archive type
Add a `CPACK_DEBIAN_ARCHIVE_TYPE` option that can be used to select an
archive type that supports long file names.

Closes: #14332
2016-09-05 09:24:45 -04:00
Brad King 901a06021e Merge topic 'doc-XCODE-variable'
3e8615ef Document XCODE variable
2016-08-31 10:43:35 -04:00
Ruslan Baratov 3e8615ef9c Document XCODE variable 2016-08-31 14:17:51 +03:00
Brad King b82d027b45 Utilities/Release: Drop Linux 32-bit binary
The Linux distro we've been using for this is so old that it limits our
ability to import newer third-party software.  Until a new machine can
be configured to provide this binary we can simply drop it.  Users will
still be able to build from source or use a distro-provided version.
2016-08-30 09:48:39 -04:00
Brad King 918cb5b1f0 Merge topic 'ninja-add_custom_command-depfile'
048d1adb add_custom_command: Add DEPFILE option for Ninja
2016-08-30 09:29:40 -04:00
Kulla Christoph 048d1adb4e add_custom_command: Add DEPFILE option for Ninja
Provide a way for custom commands to inform the ninja build tool about
their implicit dependencies.  For now simply make use of the option an
error on other generators.

Closes: #15479
2016-08-30 09:05:18 -04:00
Domen Vrankar 426f97d353 CPack/RPM: Add test for debuginfo package generation 2016-08-26 09:40:37 -04:00
Brad King 96de37092a Merge topic 'android-platform-modules'
7b637ebd Android: Add `ANDROID` variable to indicate the target
c2f561e5 Android: Add test cases covering use of the NDK and standalone toolchains
6b84df8d Help: Document cross compiling for Android
d7d40830 Android: Select the STL type for NDK builds
b22294bc Android: Populate compiler flags for current ABI
b6a3102a Android: Add a CMAKE_BUILD_TYPE default
d1e3cec2 Android: Add Clang -target option for current ABI
504db72d Android: Add placeholders for compiler/abi-specific settings
fa632578 Android: Avoid interfering with common pre-existing toolchain files
6299693f Android: Search for NDK and standalone toolchain in more places
29b51379 Android: Detect and save a standalone toolchain without the NDK
7d9b49fb Android: Detect settings from the CMAKE_SYSROOT if it is set
4389664a Android: Detect and save a toolchain from the NDK
328191f6 Android: Set CMAKE_SYSROOT automatically
9e032304 Android: Detect and save the architecture, ABI, and processor
fde59c4d Android: Detect and save the API level
...
2016-08-24 09:45:50 -04:00
Brad King ccddb454b8 Merge topic 'extend-find-package-search-path'
828d6c13 find_package: Extend search path for combined Windows/UNIX convention
ff5c89de Help: Widen find_package search path table
2016-08-24 09:45:47 -04:00
Brad King 21a7809bfa Merge topic 'doc-get_cmake_property'
15cc50fb Help: Clarify get_cmake_property command documentation
2016-08-24 09:45:41 -04:00
Brad King a71ca1f0b3 Merge topic 'import-vim-syntax'
b4556b47 Help: Add release notes for 'vim-cmake-syntax' import
25c01cf0 Aux: Install vim-cmake-syntax files with CMake
e3ac68cf Merge branch 'upstream-vim-cmake-syntax' into import-vim-syntax
4a22c06e vim-cmake-syntax 2016-08-16 (e782679c)
f21a8235 Aux: Drop vim files prior to import of third-party version
0966f1c5 Add script to update vim-cmake-syntax from upstream
2016-08-24 09:45:29 -04:00
Silvio Traversaro 828d6c137d find_package: Extend search path for combined Windows/UNIX convention
Find packages that install their cmake package configuration files in
`lib/cmake/<name>` when they are installed in the default Windows
CMAKE_INSTALL_PREFIX, `C:/Program Files/<name>`.

Closes: #16212
2016-08-24 09:40:25 -04:00
Silvio Traversaro ff5c89de0c Help: Widen find_package search path table
Make room for additional longer entries.
2016-08-23 13:28:42 -04:00
Brad King 7b637ebdc9 Android: Add `ANDROID` variable to indicate the target
Allow projects to use `if(ANDROID)` to condition their Android-specific
code paths.
2016-08-23 13:10:51 -04:00
Brad King 6b84df8da9 Help: Document cross compiling for Android
CMake now supports cross compiling for Android using the NDK or a
standalone toolchain.  Document the associated variables and how how to
write toolchain files for Android.
2016-08-23 12:53:10 -04:00
Brad King 15cc50fbb5 Help: Clarify get_cmake_property command documentation
Closes: #13810, #16258
2016-08-23 11:14:09 -04:00
Brad King b4556b47a8 Help: Add release notes for 'vim-cmake-syntax' import 2016-08-17 09:24:29 -04:00
Tobias Hunger 49ad7f9af8 cmake: Add `cmake -E capabilities` mode
Add `cmake -E capabilities` to report on generators, cmake version and
possibly other static capabilities of cmake.

Closes: #15462
2016-08-16 13:45:05 -04:00
Brad King 33d4aff50d Merge topic 'autogen-same-name'
61a607e8 Help: Document AUTORCC behavior for same .qrc name case
e4f508e4 Tests/QtAutogen: Test same moc/qrc source names in different directories
4e9b97d7 QtAutogen: Allow multiple qrc files with the same name
41c9e14a QtAutogen: Allow multiple moc files with the same name
3c3b37b0 QtAutogen: Use std:: instead of ::std::
0a5dd3c7 cmFilePathUuid: Add class to generate deterministic unique file names
2016-08-15 08:59:46 -04:00
Sebastian Holtermann 61a607e8d4 Help: Document AUTORCC behavior for same .qrc name case 2016-08-15 08:57:17 -04:00
Brad King e01c576338 Merge topic 'ninja-directory-targets'
02789894 Ninja: Add `$subdir/{test,install,package}` targets
a88c99f1 Ninja: Simplify computation of GLOBAL_TARGET outputs
2016-08-10 11:15:55 -04:00
Brad King 4887640b7a Merge topic 'add-extra-boolean-comparisons'
02d177c9 Add additional <= and >= comparison operators
2016-08-10 11:15:47 -04:00
Brad King 0278989405 Ninja: Add `$subdir/{test,install,package}` targets
With the Makefile generator one can use `cd $subdir; make install` to build and
install targets associated with a given subdirectory.  This is not possible to
do with the Ninja generator since there is only one `build.ninja` file at the
top of the build tree.  However, we can approximate it by allowing one to run
`ninja $subdir/install` at the top of the tree to build the targets in the
corresponding subdirectory and install them.

This also makes sense for `test`, `package`, and other GLOBAL_TARGET targets.
It was already done for `all` by commit v3.6.0-rc1~240^2~2 (Ninja: Add
`$subdir/all` targets, 2016-03-11).
2016-08-09 15:15:24 -04:00
Chuck Atkins 02d177c9cc Add additional <= and >= comparison operators
This adds the LESS_EQUAL, GREATER_EQUAL, and associated STR and VERSION
equivalents to use the combined <= and >= functionality.
2016-08-09 09:30:34 -04:00
Michael Stürmer 17bbf6af1e CPackWIX: Implement new CPACK_WIX_SKIP_PROGRAM_FOLDER feature
The new variable allows setting of a custom absolute installation prefix
outside of the ProgramFiles folders.
2016-08-08 13:42:23 +02:00
Brad King 382c4fca6b Merge topic 'ccmake-vim-navigation'
e34e9c27 ccmake: Add VIM-like bindings for navigation
9a1b6c60 ccmake: Revise documentation for [d]
31b6cf41 ccmake: Fix typo in help (it's -> its)
2016-08-03 09:20:59 -04:00
Brad King 7b65e49529 Merge topic 'wix-root-description'
e29bfbf2 CPackWIX: Support custom title and description for the root feature
2016-08-03 09:20:38 -04:00
Paul Seyfert e34e9c2705 ccmake: Add VIM-like bindings for navigation
* scroll with j/k
* toggle bool with space, enter insert mode with i
* bindings not shown at the bottom of the screen, but given in help
2016-08-02 14:53:15 -04:00
Michael Stürmer e29bfbf272 CPackWIX: Support custom title and description for the root feature
These can now be specified through the WIX generator specific
CPack variables CPACK_WIX_ROOT_FEATURE_TITLE and
CPACK_WIX_ROOT_FEATURE_DESCRIPTION.
2016-08-02 14:05:08 +02:00
Brad King bdd9b1c73c Help: Fix CMAKE_INSTALL_PREFIX documented default on Windows
Fixes #16211.
2016-08-01 15:29:11 -04:00
Brad King 5ec03c93fc Merge topic 'wix-disabled-components'
ad453f05 CPackWIX: Support CPACK_COMPONENT_<compName>_DISABLED
6f108f84 CPackComponent: Document the *_HIDDEN and *_DISABLED variables
2016-08-01 14:59:53 -04:00
Brad King 2711c35a8d Merge topic 'app-framework-bundle-extension'
f951d0ad Add tests for BUNDLE_EXTENSION
c63380b1 Update documentation about bundle extensions
134d5c1f Honor BUNDLE_EXTENSION also for Frameworks (#14742)
2b909c08 Honor BUNDLE_EXTENSION also for App Bundles (#16148)
2016-08-01 14:59:44 -04:00
Brad King e09518ca50 Merge topic 'nsis-protect-uninst-exec'
11768733 NSIS: Quote uninstaller path when executing it in a shell
2016-07-22 09:17:19 -04:00
Michael Stürmer ad453f0502 CPackWIX: Support CPACK_COMPONENT_<compName>_DISABLED
Reviewed-by: Nils Gladitz <nilsgladitz@gmail.com>
2016-07-22 08:49:29 +02:00
Gregor Jasny c63380b195 Update documentation about bundle extensions 2016-07-21 23:16:50 -07:00
Justin Clift 11768733d3 NSIS: Quote uninstaller path when executing it in a shell
Protect our `$0` reference in the shell as `"$0"`.  Otherwise it works
with a space in the path only due to an insecure Windows feature.

Prior to this fix, any installer using the option added by commit
v2.8.9~234^2 (Added CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL,
2011-06-11) exposes a local privilege escalation vulnerability.

Reported-by: Amir Szekely <kichik@gmail.com>
Reported-by: Ug_0 Security
2016-07-21 10:05:46 -04:00
Brad King 33b562aa72 Help: Add notes for topic 'FindBISON-report-file' 2016-07-18 09:11:25 -04:00
Robert Dailey a6290cffae VS: Add support for NATVIS files
Add an explicit `<Natvis>` element in VS project files for `*.natvis`
files.  These enable custom debug visualizers for project-specific
types.

Fixes #16043.
2016-07-15 10:36:21 -04:00
Brad King c8e59d2dfa Merge topic 'toolchain-flag-init'
8a98cf64 Honor CMAKE_*_LINKER_FLAGS[_<CONFIG>]_INIT set in toolchain files
37d15c39 MSVC: Set all CMAKE_*_LINKER_FLAGS_INIT directly
55c884ed Embarcadero: Set all CMAKE_*_LINKER_FLAGS_INIT directly
aec3c79a Strip CMAKE_*_LINKER_FLAGS[_<CONFIG>] initializer whitespace
2016-07-15 09:04:30 -04:00
Brad King 8a98cf6432 Honor CMAKE_*_LINKER_FLAGS[_<CONFIG>]_INIT set in toolchain files
Document these variables.

Change our convention for setting these variables from:

    set(CMAKE_EXE_LINKER_FLAGS_INIT "...")

to

    string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ...")

so that any value previously set by a toolchain file will be used.
2016-07-14 15:47:32 -04:00
Sujin Philip 73e9f36ea6 FindOpenMP: Detect version (specification date) from compiler
Port changes from VTK commit fda6a31cb9 (Added Improved FindOpenMP
module, 2015-04-23).  Improve use of try_compile to avoid needing
to pass OpenMP flags as libraries.
2016-07-13 11:49:01 -04:00
Brad King 291e41855c Merge topic 'findicu'
e3bff7b3 Help: Add notes for topic 'findicu'
4a63be15 FindICU: New module
2016-07-13 09:26:55 -04:00
Brad King 40f24f0ec2 Merge topic 'windows-export-all-from-exe'
9da725cb Windows: Honor WINDOWS_EXPORT_ALL_SYMBOLS for executables with exports
2005b960 Makefile: Factor out WINDOWS_EXPORT_ALL_SYMBOLS helper
2016-07-13 09:26:33 -04:00
Brad King e3bff7b3af Help: Add notes for topic 'findicu' 2016-07-13 09:15:16 -04:00
Roger Leigh 4a63be15dd FindICU: New module 2016-07-13 09:15:16 -04:00
Yury Zhuravlev 9da725cb00 Windows: Honor WINDOWS_EXPORT_ALL_SYMBOLS for executables with exports
For executables with ENABLE_EXPORTS set, export all symbols when
instructed to do so by WINDOWS_EXPORT_ALL_SYMBOLS.
2016-07-11 09:41:04 -04:00
Felix Geyer 566086187f Fix typos. 2016-07-10 11:05:56 +02:00
Brad King 0ca8f3e699 Merge topic 'toolchain-flag-init'
a66004be Honor CMAKE_<LANG>_FLAGS[_<CONFIG>]_INIT set in toolchain files
cdde77e5 OpenWatcom: Partially modernize platform information modules
f9dbe22c Intel: Do not use GNU-like flags on Windows
5a3ed0d7 Intel: Do not use MSVC-like flags for Fortran
2016-07-07 09:02:23 -04:00
Brad King a66004bee0 Honor CMAKE_<LANG>_FLAGS[_<CONFIG>]_INIT set in toolchain files
Document these variables.

Change our convention for setting these variables from:

    set(CMAKE_C_FLAGS_INIT "...")

to

    string(APPEND CMAKE_C_FLAGS_INIT " ...")

so that any value previously set by a toolchain file will be used.

Automate the conversion with:

    sed -i 's/set *(\(CMAKE_\(C\|CXX\|Fortran\|RC\|ASM\|${[^}]\+}\)_FLAGS\(_[^_]\+\)\?_INIT \+"\)/string(APPEND \1 /' \
      Modules/Compiler/*.cmake Modules/Platform/*.cmake

and follow up with some manual fixes (e.g. to cases that already
meant to append).  Also revert the automated changes to contexts
that are not protected from running multiple times.
2016-07-06 10:13:31 -04:00
Brad King 50adbfcacb Merge topic 'reorganize-cmCTest'
61fcd08a Help: Fix documentation of ctest --build-and-test
7c67d401 Help: Consistently use quotes and fix punctuation in ctest(1) manual
0076fb10 cmCTest: Update doxygen to be consistent
30c5f94c cmCTest: Rename "ProcessTests()" to "ProcessSteps()" and improve doxygen
7c87ab75 cmCTest: Facilitate code reading adding consistent comments in Run()
6d8b9aa6 cmCTest: Improve readability adding "HandleTest(Action|Model)Argument()"
280d0a69 cmCTest: Improve readability adding "RunCMakeAndTest()" and "ExecuteTests()"
898cb987 cmCTest: Fix typo
2016-07-06 09:35:38 -04:00
Jean-Christophe Fillion-Robin 61fcd08a49 Help: Fix documentation of ctest --build-and-test
Since commit v3.0.0-rc1~260^2~14 (ctest: Make the --build-makeprogram
optional for --build-and-test, 2013-11-14), binary dictionary is also
required to run CTest given the option `--build-nocmake`.
2016-07-05 11:19:01 -04:00
Jean-Christophe Fillion-Robin 7c67d4011e Help: Consistently use quotes and fix punctuation in ctest(1) manual 2016-07-05 11:19:01 -04:00
Brad King cff9c11de7 Merge topic 'doc-updates'
c05d240e Help: Document CMAKE_TRY_COMPILE_PLATFORM_VARIABLES example
dab3ccf2 InstallRequiredSystemLibraries: Document UCRT option use case
2016-07-01 09:12:36 -04:00
Brad King b1883bc8b7 Merge topic 'try_compile-config-flags'
d582c23a try_compile: Add policy CMP0066 to honor CMAKE_<LANG>_FLAGS_<CONFIG>
2016-06-30 09:47:41 -04:00
Brad King c05d240ef7 Help: Document CMAKE_TRY_COMPILE_PLATFORM_VARIABLES example
Suggested-by: Hendrik Sattler <post@hendrik-sattler.de>
2016-06-30 09:03:41 -04:00
Brad King b5ec5b0901 Avoid using KWSys auto_ptr by adopting it ourselves
Replace use of cmsys::auto_ptr with a CM_AUTO_PTR macro that maps to
our own implementation adopted from the KWSys auto_ptr implementation.
Later we may be able to map CM_AUTO_PTR to std::auto_ptr on compilers
that do not warn about it.

Automate the client site conversions:

    git grep -l auto_ptr -- Source/ | grep -v Source/kwsys/ | xargs sed -i \
      's|cmsys::auto_ptr|CM_AUTO_PTR|;s|cmsys/auto_ptr.hxx|cm_auto_ptr.hxx|'
2016-06-29 09:47:58 -04:00
Brad King d582c23a47 try_compile: Add policy CMP0066 to honor CMAKE_<LANG>_FLAGS_<CONFIG>
In the `try_compile` source file signature we propagate the caller's
value of `CMAKE_<LANG>_FLAGS` into the test project.  Extend this to
propagate `CMAKE_<LANG>_FLAGS_<CONFIG>` too instead of always using the
default value in the test project.  This will be useful, for example, to
allow the MSVC runtime library to be changed (e.g. `-MDd` => `-MTd`).
However, some projects may currently depend on this not being done,
so we need to activate the behavior using a policy.

This change was originally made by commit v3.6.0-rc1~160^2 (try_compile:
Honor CMAKE_<LANG>_FLAGS_<CONFIG> changes, 2016-04-11) but without the
policy and so had to be reverted during the 3.6 release candidate cycle.

Fixes #16174.
2016-06-29 09:11:02 -04:00
Brad King cb93dc048f Merge topic 'GenerateExportHeader-custom-content'
843402b0 GenerateExportHeader: Add option to specify custom content
2016-06-29 09:07:33 -04:00
Brad King db4ba61f39 Merge topic 'revert-try_compile-config-flags'
943fe6e3 Revert "try_compile: Honor CMAKE_<LANG>_FLAGS_<CONFIG> changes"
2016-06-29 09:07:28 -04:00
Brad King e34c5543fa Merge branch 'revert-try_compile-config-flags' into release 2016-06-28 15:09:44 -04:00
Brad King 943fe6e3b4 Revert "try_compile: Honor CMAKE_<LANG>_FLAGS_<CONFIG> changes"
Revert commit v3.6.0-rc1~160^2 (try_compile: Honor
CMAKE_<LANG>_FLAGS_<CONFIG> changes, 2016-04-11).  The behavior it
introduced can break projects that depend on the lack of such behavior.
We will have to introduce a policy or other mechanism to enable the
behavior in a compatible way.  Simply revert it for now.

See issue #16174.
2016-06-28 15:03:45 -04:00
Brad King 843402b04a GenerateExportHeader: Add option to specify custom content 2016-06-28 09:43:52 -04:00
Brad King 4bbfea1751 Merge topic 'doc-cross-reference-lang-standard-and-extensions'
c6a077d6 Help: Cross reference CXX_STANDARD and CXX_EXTENSIONS (#16162)
2016-06-28 09:16:38 -04:00
Brad King eb6f81705a Merge branch 'doc-cross-reference-lang-standard-and-extensions' into release 2016-06-28 09:15:25 -04:00
Gregor Jasny c6a077d698 Help: Cross reference CXX_STANDARD and CXX_EXTENSIONS (#16162) 2016-06-28 09:14:00 -04:00
Brad King 9e073b8842 Merge topic 'doc-osx-versions'
00caa1dd Help: Describe VERSION and SOVERSION meanings for Mach-O binaries
2016-06-27 10:40:28 -04:00
Bartosz Kosiorek 00caa1dde8 Help: Describe VERSION and SOVERSION meanings for Mach-O binaries 2016-06-23 13:44:26 -04:00
Brad King c2c2a2f4c7 Merge topic 'vs-tool-override'
ed05f11d VS: Add a VS_TOOL_OVERRIDE source file property
2016-06-23 08:59:29 -04:00
Brad King 015876fa81 Merge topic 'vs-sdk-refs'
35a6cac2 VS: Add VS_SDK_REFERENCES target property to reference external SDKs
2016-06-23 08:59:26 -04:00
Brad King 110270fbb6 Merge topic 'doc-VS_STARTUP_PROJECT-clarify'
d3e538ea Help: Clarify VS_STARTUP_PROJECT documentation
2016-06-22 08:53:00 -04:00
Gilles Khouzam 35a6cac2d3 VS: Add VS_SDK_REFERENCES target property to reference external SDKs
Allow one to specify external SDK references such as
`Microsoft.AdMediatorWindows81, Version=1.0`.
2016-06-22 08:34:12 -04:00
Brad King 736ffc627c Merge topic 'aix-clang'
5cc34162 AIX: Add support for Clang compiler
2016-06-21 13:57:02 -04:00
Brad King d3e538eabb Help: Clarify VS_STARTUP_PROJECT documentation
Explain in what directory the property should be set to affect the
corresponding ``.sln`` file.

Suggested-by: Stephen Kelly <steveire@gmail.com>
2016-06-21 09:33:35 -04:00
Gilles Khouzam ed05f11dd2 VS: Add a VS_TOOL_OVERRIDE source file property
This property allow to specify a specific Visual Studio tool for a
source file overriding the default tool behavior.  For example, a
`.resw` file being processed as a `PriResource` file.  This has the
advantage of being able to teach CMake to process new file types without
code modifications.
2016-06-20 10:46:14 -04:00
Wu Zhao 5cc34162ad AIX: Add support for Clang compiler
The platform information module for GNU on AIX can be reused for Clang
on AIX because clang accepts almost all of the same options.
2016-06-20 09:59:31 -04:00
Alex Turbov e63151ff54 cmake: Add an option to control what files needs to be traced
Even in relatively small projects using `--trace` (and `--trace-expand`)
may produce a lot of output.  When developing a custom module usually
one is interested in output of only a few particular modules.

Add a `--trace-source=<file>` option to enable tracing only a subset of
source files.  The final output would be only from requested modules,
ignoring anything else not matched to given filename(s).
2016-06-17 11:46:23 -04:00
Brad King 9e47255604 Merge topic 'xcode-mig-support'
8be00e44 Help: Add release note about XCODE_FILE_ATTRIBUTES source file property
27eb657d Xcode: Add support for mig files
811f6c82 Xcode: Add XCODE_FILE_ATTRIBUTES source file property
ef494edf Xcode: Don't emit empty settings blocks.
82ebbf68 Xcode: Add function to conditionally add Xcode Attributes
025edea0 Xcode: Add const qualifiers
2016-06-17 11:06:47 -04:00
Brad King e4cb7d7609 Merge topic 'link_what_you_use'
a0902efa Help: Add notes for topic 'link_what_you_use'
96242f80 Add options to run `ldd -u -r` as a "link-what-you-use" tool
2016-06-17 11:06:44 -04:00
Brad King a0902efaa7 Help: Add notes for topic 'link_what_you_use' 2016-06-17 11:01:22 -04:00
Bill Hoffman 96242f8022 Add options to run `ldd -u -r` as a "link-what-you-use" tool
Create a LINK_WHAT_YOU_USE target property and corresponding
CMAKE_LINK_WHAT_YOU_USE variable to enable this behavior.
Extend link commands by running `ldd -u -r` to detect shared
libraries that are linked but not needed.
2016-06-17 10:56:40 -04:00
Brad King 8be00e443f Help: Add release note about XCODE_FILE_ATTRIBUTES source file property 2016-06-17 10:53:59 -04:00
James Touton 811f6c8252 Xcode: Add XCODE_FILE_ATTRIBUTES source file property
This adds values to the ATTRIBUTES list in PBXBuildFile settings.
2016-06-17 10:49:06 -04:00
Brad King 1bafa0b3f5 Merge topic 'parent-scope-docs'
42fe7d21 Help: clarify PARENT_SCOPE behavior
2016-06-13 15:19:45 -04:00
Ben Boeckel 42fe7d2150 Help: clarify PARENT_SCOPE behavior
Fixes #15093.
2016-06-13 09:55:17 -04:00
Daniel Scharrer 896ad251de Teach find_library and find_package to search lib32 paths (#11260)
Add a ``FIND_LIBRARY_USE_LIB32_PATHS`` global property analogous to the
``FIND_LIBRARY_USE_LIB64_PATHS`` property.  This helps find commands on
multilib systems that use ``lib32`` directories and either do not have
``lib`` symlinks or point ``lib`` to ``lib64``.
2016-06-10 11:09:16 -04:00
Brad King 5aa89a1ae0 Merge topic 'java-export-targets'
0bd91ad4 UseJava: Fix race condition creating java class list
89df91b9 Help: Add notes for topic 'java-export-targets'
95d84369 Tests: Add test for exported JARs
5341c0d8 UseJava: Add infrastructure to export targets
d91ec044 Tests/Java: Clean up style of Java test code
2016-06-09 09:18:17 -04:00
Brad King fb8b8dd106 Merge topic 'add-FindVulkan'
adf4df28 Add FindVulkan.cmake.
2016-06-08 12:56:07 -04:00
Brad King 5804068c22 Merge topic 'doc-ctest_update'
1b18180e Help: Document CTest Git fetch-and-reset behavior
558e4d1e Help: Document ctest_update branch following behavior
2016-06-08 12:56:05 -04:00
Matthäus G. Chajdas adf4df28ca Add FindVulkan.cmake.
This adds FindVulkan with corresponding tests.
2016-06-08 12:44:03 -04:00
Brad King b55039ce5b Merge branch 'doc-ctest_update' into release 2016-06-08 10:03:41 -04:00
Brad King 1b18180ed4 Help: Document CTest Git fetch-and-reset behavior 2016-06-08 09:58:43 -04:00
Brad King 558e4d1ed6 Help: Document ctest_update branch following behavior 2016-06-08 09:53:13 -04:00
Brad King 89df91b938 Help: Add notes for topic 'java-export-targets' 2016-06-07 08:50:36 -04:00
Brad King d546456765 Merge topic 'productbuild'
63e5eb5f Help: Add notes for 'productbuild' topic
2e3c67d1 productbuild: Add new productbuild cpack generator.
50a3d340 PackageMaker: factor out common code for creating pkg files.
2016-06-06 11:19:20 -04:00
Brad King 63e5eb5fd3 Help: Add notes for 'productbuild' topic 2016-06-06 09:25:39 -04:00
Clinton Stimpson 2e3c67d1b6 productbuild: Add new productbuild cpack generator.
This cpack generator basically replaces the obsolete PackageMaker generator.
2016-06-03 14:41:57 -06:00
Matthäus G. Chajdas b66d4739b5 FindOpenCL: Add an imported target 2016-06-02 08:46:43 -04:00
Brad King d6754d37d5 Begin post-3.6 development 2016-06-01 10:59:26 -04:00
Brad King 4c2993df63 Help: Drop development topic notes to prepare release
Release versions do not have the development topic section of
the CMake Release Notes index page.
2016-06-01 10:55:45 -04:00
Brad King 98eafa9b5f Help: Organize and revise 3.6 release notes
Add section headers similar to the 3.5 release notes and move each
individual bullet into an appropriate section.  Revise a few bullets.
2016-06-01 10:30:34 -04:00
Brad King c5df7483f5 Help: Consolidate 3.6 release notes
Move all development release notes into a new version-specific document:

 tail -q -n +3 Help/release/dev/* > Help/release/3.6.rst
 git rm -- Help/release/dev/*

except the sample topic:

 git checkout HEAD -- Help/release/dev/0-sample-topic.rst

Reference the new document from the release notes index document.
Add a title and intro sentence to the new document by hand.
2016-06-01 09:12:10 -04:00
Brad King 36d9a01a31 Merge topic 'try_compile-custom-variables'
d256ba07 try_compile: Optionally forward custom platform variables to test project
fb4791b3 cmCoreTryCompile: Refactor forwarding of variables to test project
2016-05-26 09:52:12 -04:00
Brad King 579185be7a Merge topic 'cpack-dmg-no-app-link'
3acc29fc CPack/DragNDrop: Optionally disable `/Applications` symlink
2016-05-26 09:52:07 -04:00
Harry Mallon 3acc29fca9 CPack/DragNDrop: Optionally disable `/Applications` symlink 2016-05-25 09:51:04 -04:00
James Sharpe 81e73b7240 FindCUDA: Add support for finding the cublas_device library 2016-05-25 09:42:25 -04:00
Brad King d256ba078a try_compile: Optionally forward custom platform variables to test project
Add a `CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable to specify a list
of custom variables to be forwarded to a `try_compile` test project.
This will be useful for platform information modules or toolchain files
to forward some platform-specific set of variables from the host project
(perhaps set in its cache) to the test project so that it can build the
same way.
2016-05-25 09:36:19 -04:00
Brad King 916d52533e Merge topic 'standard-include-directories'
c1340827 Add a variable to specify language-wide system include directories
44199097 cmMakefile: Optimize AddSystemIncludeDirectories for empty set
a896043b GHS: Compute include directories consistently with other generators
2016-05-25 09:34:24 -04:00
Brad King 8cd007fee6 Merge topic 'doc-standard-libs'
7807b3a9 Help: Document CMAKE_<LANG>_STANDARD_LIBRARIES variable
2016-05-25 09:34:21 -04:00
Brad King c13408279f Add a variable to specify language-wide system include directories
Create a `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` variable to specify
system include directories for for `<LANG>` compiler command lines.
This plays a role for include directories as the existing
`CMAKE_<LANG>_STANDARD_LIBRARIES` variable does for link libraries.
2016-05-25 09:30:31 -04:00
Brad King a98a699987 Merge topic 'cpack-deb-different-package-names'
adbd3985 CPack/Deb possibility to change package name
2016-05-24 13:54:03 -04:00
Brad King 7807b3a9db Help: Document CMAKE_<LANG>_STANDARD_LIBRARIES variable
Also drop documentation of non-existent CMAKE_STANDARD_LIBRARIES
variable.
2016-05-24 11:40:25 -04:00
Domen Vrankar 4f3b97063f CPack/Deb prevent accidental component dependencies
Prevent accidental inter component dependency setting
since this is a breaking feature in situations where
another CPack module is already using the feature.
It should be enabled if desired since it can cause
issues when upgrading only one of the components
for e.g. configuration instead of all the components
at once.
2016-05-23 20:21:32 +02:00
Domen Vrankar adbd3985f8 CPack/Deb possibility to change package name
This patch preserves backward compatibility of
deb package names with previous CMake versions
but similarly to CPack/RPM allows to change
package name format and supports DEB-DEFAULT
setting that produces proper Debian package names.
2016-05-23 19:55:46 +02:00
Brad King e0da6c3b56 Merge topic 'ninja-output-path-prefix'
eb076692 Tests: Select RunCMake.Ninja test cases based on ninja version
8a862a4d Ninja: Support embedding of CMake as subninja project
038e7716 Ninja: Pass all build paths through a central method
7c26a6a2 Ninja: Fix path to soname-d target file
ac3cdd9a Ninja: Convert object file names to ninja paths earlier
d4381cb1 Ninja: Convert link library file names like all other output paths
0397c92a Ninja: Pre-compute "CMakeCache.txt" build target name
3b3ecdfa Ninja: Pre-compute "all" build target name
5ca72750 Ninja: Simplify generation of custom target logical path
2016-05-19 10:41:27 -04:00
Konstantin Podsvirov 41199f8c1e CPackIFW: Add support for Promoting Updates
Add support for this feature added by QtIFW 2.0.3:

  http://doc.qt.io/qtinstallerframework/ifw-updates.html

Add a `cpack_ifw_update_repository` command as porcelain.
2016-05-18 09:49:14 -04:00
Reiner Herrmann edcccde7d6 file: Sort GLOB results to make it deterministic (#14491)
Even though the `file(GLOB)` documentation specifically warns against
using it to collect a list of source files, projects often do it anyway.
Since it uses `readdir()`, the list of files will be unsorted.
This list is often passed directly to add_executable / add_library.
Linking binaries with an unsorted list will make it unreproducible,
which means that the produced binary will differ depending on the
unpredictable `readdir()` order.

To solve those reproducibility issues in a lot of programs (which don't
explicitly `list(SORT)` the list manually), sort the resulting list of
the `file(GLOB)` command.

A more detailed rationale about reproducible builds is available
[here](https://reproducible-builds.org/).
2016-05-17 10:12:11 -04:00
Nicolas Despres 8a862a4d4b Ninja: Support embedding of CMake as subninja project
Add a `CMAKE_NINJA_OUTPUT_PATH_PREFIX` variable.  When it is set, CMake
generates a `build.ninja` file suitable for embedding into another ninja
project potentially generated by an alien generator.
2016-05-17 09:34:12 -04:00
Brad King 856804f9a9 Merge topic 'findpkgconfig-target'
df97b979 FindPkgConfig: optionally create imported target for the found libraries
2016-05-16 10:11:38 -04:00
Brad King d3db070e9e Merge topic 'cpack-rpm-adding-dist-to-release-tag'
f5089cfc CPack/RPM adding dist to release tag test
f7003a60 CPack/RPM release dist tag support
2016-05-16 10:11:35 -04:00
Brad King bc7598fde0 Merge topic 'cpack-rpm-different-package-names'
44ee2d71 CPack/RPM different package names
2016-05-16 10:11:32 -04:00
Brad King 2b25174da6 Merge topic 'cpack-deb-improvements'
4461e8bb CPack/Deb cpack-deb-improvements release notes
7e940bf7 CPack/Deb test changes due to breaking changes
3b648894 CPack/Deb package release number in file name
316dd613 CPack/Deb proper package file naming
271e03f0 CPack/Deb per-component package architecture
23baaf8d CPack/Deb inter package dependencies
3a55a0e7 CPack/Deb proper component packages file naming
c7f388e7 CPack/Deb generation of postinst and postrm ldconfig files
2d589653 CPack/Deb generation of DEBIAN/shlibs control file
2016-05-16 10:11:30 -04:00
Domen Vrankar 44ee2d717a CPack/RPM different package names
Packagers may now set their own rpm package
file names or request that rpmbuild tool
chooses one for them. It also supports handing
of situations where one spec file may produce
multiple rpm packages.
2016-05-15 03:01:34 +02:00
Domen Vrankar f5089cfccd CPack/RPM adding dist to release tag test
Tests and release notes
2016-05-14 20:21:32 +02:00
Rolf Eike Beer df97b9793f FindPkgConfig: optionally create imported target for the found libraries 2016-05-14 09:31:41 +02:00
Domen Vrankar 4461e8bb55 CPack/Deb cpack-deb-improvements release notes 2016-05-13 10:46:05 -04:00
Brad King 6b0b066074 InstallRequiredSystemLibraries: Optionally install Windows UCRT (#16073) 2016-05-12 11:10:23 -04:00
Brad King 541d20dd9f Merge topic 'find-command-prefix-from-PATH-windows-only'
b30b32a4 Drop find_(library|file|path) prefixes from PATH on non-Windows
2016-05-10 14:40:52 -04:00
Brad King 3e503fe1ac Help: Document `cmake --build` as a separate command mode (#16093)
The `--build` mode was confusingly documented among other options,
falsely implying that it can be used anywhere on the command line.
Move the documentation to a dedicated section and clarify its usage
as s separate command line mode.
2016-05-10 09:45:45 -04:00
Brad King d4faed2f7f Help: Document `cmake --find-package` as a separate command mode 2016-05-10 09:37:55 -04:00
Brad King b30b32a493 Drop find_(library|file|path) prefixes from PATH on non-Windows
Since commit v3.3.0-rc1~430^2 (Teach find_(library|file|path) to get
prefixes from PATH, 2015-02-18) we search in <prefix>/include and
<prefix>/lib directories for prefixes with bin directories in the PATH
environment variable.  The motivation was to support MSYS, MinGW and
similar Windows platforms in their default environments automatically.
At the time this behavior was thought to be worthwhile in general.

Suggested-by: Chuck Atkins <chuck.atkins@kitware.com>
2016-05-09 12:58:08 -04:00
Jean-Christophe Fillion-Robin 8c2cedc624 CustomCommandGenerator: Add support for CROSSCOMPILING_EMULATOR
Teach the `add_custom_command` and `add_custom_target' commands to
substitute argv0 with the crosscompiling emulator if it is a target with
the `CROSSCOMPILING_EMULATOR` property set.
2016-05-09 08:56:27 -04:00
Brad King 96c8a4769f Merge topic 'doc-cmake-E-updates'
960afaad Help: Improve 'cmake -E md5sum' documentation
25ee2c86 Help: Add missing space in cmake(1) manual
2016-05-03 10:17:04 -04:00
Brad King e053510efa Merge topic 'ExternalProject-git-recursive-init'
79410eeb ExternalProject: Initialize Git submodules recursively and on update (#16083)
2016-05-03 10:17:02 -04:00
Ilya Kulakov 79410eeb1f ExternalProject: Initialize Git submodules recursively and on update (#16083) 2016-05-03 10:04:37 -04:00
Brad King 5f948d2aa4 Help: Add policy summaries to cmake-policies(7)
In Sphinx output formats that print the toctree the policy numbers in
links from the cmake-policies(7) manual are not descriptive.  Convert
the toctree entries to cross-reference syntax and add the summary of
each policy.  For now simply duplicate the policy summary line.  We
already maintain copies in `cmPolicies.h` and `Help/policy/*.rst` docs.
2016-05-02 15:16:07 -04:00
Brad King b74d73e507 Help: Organize cmake-policies(7) manual by version of introduction 2016-05-02 15:16:07 -04:00
Brad King 845cb217a7 CMP0059: Fix typo in policy description 2016-05-02 15:16:07 -04:00
Bartosz Kosiorek 960afaad7f Help: Improve 'cmake -E md5sum' documentation 2016-05-02 10:02:12 -04:00