Commit Graph

549 Commits

Author SHA1 Message Date
Bartosz Kosiorek 384ae5514e cmake: Teach -E copy[_if_different] to support multiple files (#15703)
If multiple input files are provided then the destination must be a
directory.  If only one input file is provided then destination may be
either a file or directory.
2015-12-04 10:26:34 -05:00
Brad King e069aa05c6 Merge topic 'regex-explorer'
fc656fa4 cmake-gui: Add regex explorer window
2015-12-04 09:54:23 -05:00
Gregor Jasny fc656fa4fe cmake-gui: Add regex explorer window 2015-12-03 21:45:54 +01:00
Brad King d60cef7736 Help: Add notes for topic 'FindBoost-imported-targets.rst' 2015-12-02 09:42:34 -05:00
Michael Scott aac633d5e5 Explicitly enable deprecated warnings by default.
Explicitly enable deprecated warnings by default, via the
cmake::GetSuppressDeprecatedWarnings method, which signals
suppression is turned off unless the CMake variables are set
as required.

Add tests and update the documentation for the new
functionality.
2015-12-01 10:22:51 -05:00
Michael Scott e8974b62d7 Modify dev warning options to affect deprecated warnings.
Change the '-Wdev' and '-Wno-dev' options to also enable and
suppress the deprecated warnings output, via the
'CMAKE_WARN_DEPRECATED' CMake variable, by default. This
action does not happen if the user specifies a deprecated
warning message option.

Add tests and update the documentation for the new
functionality.
2015-12-01 10:22:45 -05:00
Michael Scott da688bcb3b Add -W options to control deprecated warning messages.
Add 'deprecated' warning options type, to allow setting
CMAKE_WARN_DEPRECATED via the -W '-Wdeprecated' and
'-Wno-deprecated' options.

Add tests for new options and updated documentation.
2015-12-01 10:21:57 -05:00
Roger Leigh 5dcc833b28 FindXercesC: Add imported targets and unit test 2015-11-23 14:28:05 -05:00
Robert Dailey 2b958a2027 cmake-gui: Add option to specify generator toolset
The -T parameter to CMake may now be specified through cmake-gui via a
new text field in the first-time configure wizard (below the generator
chooser).

The generator factories specify whether or not they support toolsets.
This information is propagated to the Qt code and used to determine if
the selected generator should also display the optional Toolset widgets.
2015-11-17 10:03:10 -05:00
Brad King 166a61c729 Merge topic 'add-cray-linux-platform'
31d52139 Cray: Added documentation for cross compiling on a Cray
c54a621b Cray: New platform file for Cray Linux Environment and PrgEnv
2015-11-16 09:22:43 -05:00
Chuck Atkins 31d52139ca Cray: Added documentation for cross compiling on a Cray 2015-11-14 11:35:14 -05:00
Robert Maynard c4b9ee1878 CPack/DragNDrop: Update documentation to include new variables
Document the new behavior of `CPACK_DMG_BACKGROUND_IMAGE` and the
purpose of `CPACK_DMG_DS_STORE_SETUP_SCRIPT`.
2015-11-13 08:45:59 -05:00
Brad King 0ecb5e7f8b Merge topic 'cpack-dmg-multilanguage-sla'
f88533cc CPackDMG: Add support for multilingual SLAs
2015-11-09 10:06:38 -05:00
Brad King 9ad0ae1c01 Merge topic 'cpack-deb-new-component-vars'
04a2a923 Help: Add notes for topic 'cpack-deb-new-component-vars'
57672e72 CPackDeb: CPACK_DEBIAN_PACKAGE_NAME documentation improvement
a45a4b2d CPackDeb: set package control field per component
a60574f1 CPackDeb: set priority control field per component
24012e3c CPackDeb: additional CPACK_DEBIAN_PACKAGE_SECTION documentation
47182ab8 CPackDeb: set section control field per component
2015-11-09 10:06:35 -05:00
Brad King 20e445f441 Merge topic 'FindGTK2_GTK2_TARGETS'
5d79b956 FindGTK2: Use targets in GTK2_LIBRARIES if GTK2_USE_IMPORTED_TARGETS is ON
2015-11-09 10:06:30 -05:00
Domen Vrankar 04a2a92348 Help: Add notes for topic 'cpack-deb-new-component-vars' 2015-11-09 10:00:54 -05:00
Daniele E. Domenichelli 5d79b9563f FindGTK2: Use targets in GTK2_LIBRARIES if GTK2_USE_IMPORTED_TARGETS is ON
Also add GTK2_TARGETS variable containing all imported targets.

Previously, the GTK2_LIBRARIES variable was filled with the paths to the
libraries, and only the GTK2_XXX_LIBRARY variables contained the imported
targets.
2015-11-09 09:51:50 -05:00
Brad King 39e830a98e Merge topic 'cpack-deb-config-file-source-field'
e5b70ed0 CPackDEB: added config file optional Source field
f2d98e2d CPackDEB: minor documentation and debug logging fixes
2015-11-06 14:58:11 -05:00
Simon Levermann f88533cc06 CPackDMG: Add support for multilingual SLAs
Multiple languages for SLAs and the SLA UI can be added via the CPack
variables CPACK_DMG_SLA_DIR and CPACK_DMG_SLA_LANGUAGES.  For each
language defined in the languages variable, CPack will search for
<language>.menu.txt and <language>.license.txt in CPACK_DMG_SLA_DIR.
If the sla directory variable is not defined, the old behaviour using
CPACK_RESOURCE_FILE_LICENSE is retained.
2015-11-06 11:14:49 -05:00
Raffi Enficiaud e5b70ed013 CPackDEB: added config file optional Source field 2015-11-04 21:46:22 +01:00
Brad King 2098e8e8ff Help: Add notes for topic 'add-armcc-toolchain' 2015-11-04 10:04:34 -05:00
Brad King 196de9d14d Merge topic 'deprecate-CMakeForceCompiler'
ed77504d CMakeForceCompiler: Deprecate this module and its macros
2015-10-21 09:16:51 -04:00
Brad King 4565a2e1c2 Help: Add notes for topic 'FindFLEX-DEFINES_FILE' 2015-10-19 13:19:11 -04:00
Brad King ed77504d89 CMakeForceCompiler: Deprecate this module and its macros
This module was added by commit v2.6.0~1489 (...supporting embedded
compilers..., 2007-07-02) to avoid needing to build the compiler id
detection source on toolchains that need special flags or linker files
to produce executables.  Since then CMake has learned other ways to
identify such compilers (e.g. passing vendor-specific version flags and
checking for vendor-specific banners in the output).  Furthermore, CMake
now detects a lot more than just the compiler id during language
initialization in order to support things like <LANG>_STANDARD and
COMPILE_FEATURES.  Therefore CMakeForceCompiler is no longer a viable
approach because it skips such detection.

One remaining challenge to support toolchains that require special
linker files is to build the test for a working compiler, compiler ABI
detection binary, and other try_compile cases.  This will have to be
worked out as such cases are encountered.
2015-10-19 11:09:27 -04:00
Brad King 887b4c8801 Merge topic 'FindGTK2_sigc++_c++11'
3d9e3d7b FindGTK2: Enable c++11 for sigc++ 2.5.1 or later
2015-10-12 10:25:56 -04:00
Daniele E. Domenichelli 3d9e3d7b79 FindGTK2: Enable c++11 for sigc++ 2.5.1 or later
Starting with sigc++ 2.5.1, c++11 must be enabled in order to use
sigc++. The GTK2::sigc++ imported target will automatically enable the
required build flags in order to build with the version found on the
system.
2015-10-12 10:06:55 -04:00
Brad King c997595ea3 Merge topic 'cpack-nsis-bitmap'
3758af12 CPackNSIS: Add options to set the bitmap for NSIS installer left side
2015-10-08 10:31:48 -04:00
Colin Tracey 3758af12fa CPackNSIS: Add options to set the bitmap for NSIS installer left side
set MUI_WELCOMEFINISHPAGE_BITMAP
set MUI_UNWELCOMEFINISHPAGE_BITMAP
2015-10-06 09:08:37 -04:00
Thijs Wenker 821e17785e FindOpenSSL: Add support for static MSVC runtime
Add an OPENSSL_MSVC_STATIC_RT option to switch from the default search
for `/MD` libraries to look for `/MT` libraries instead.
2015-10-05 11:40:09 -04:00
Brad King 091fbd6964 Begin post-3.4 development 2015-10-05 10:16:03 -04:00
Brad King 850dcbf59a Help: Drop development topic notes to prepare release
Release versions do not have the development topic section of
the CMake Release Notes index page.
2015-10-05 10:09:35 -04:00
Brad King c922aa1892 Help: Consolidate 3.4 release notes
Move all development release notes into a new version-specific document:

 tail -q -n +3 Help/release/dev/* > Help/release/3.4.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.
2015-10-05 10:05:26 -04:00
Gilles Khouzam 3f077996f5 VS: Add support for selecting the Windows 10 SDK (#15670)
Teach the VS 2015 generator to produce a WindowsTargetPlatformVersion
value.  Use the CMAKE_SYSTEM_VERSION to specify the version and if not
set choose a default based on available SDKs.  Activate this behavior
when targeting Windows 10.

Co-Author: Brad King <brad.king@kitware.com>
2015-10-02 09:53:25 -04:00
Brad King 5c50b39686 Merge topic 'FindOpenSSL-imported-targets'
0429c384 Help: Add notes for topic 'FindOpenSSL-imported-targets'
2015-09-30 09:43:40 -04:00
Konstantin Podsvirov 0429c3843d Help: Add notes for topic 'FindOpenSSL-imported-targets' 2015-09-29 11:07:49 -04:00
Domen Vrankar 9298f56dce CPack: allow packaging of empty directories 2015-09-29 01:18:18 +02:00
Brad King cfcd5e8518 Merge topic 'genex-SHELL_PATH'
ca6ba3fe Genex: Add a SHELL_PATH expression
7de868c4 Tests: Simplify GeneratorExpression check implementation
2015-09-28 10:44:43 -04:00
Stefan Kislinskiy ca6ba3fee5 Genex: Add a SHELL_PATH expression
Some commands on Windows do not understand forward slash paths and
require backslashes.  In order to help projects generate shell
invocations of such commands, provide a generator expression to convert
paths to the shell-preferred path format for the current generator.
This will allow custom commands to generate paths the same way CMake
does for compiler command invocations.
2015-09-28 10:37:33 -04:00
Brad King 64b7baac4a Merge topic 'revert-cpack-package-empty-dirs'
4fa17553 Revert topic 'cpack-package-empty-dirs'
2015-09-26 10:40:40 -04:00
Brad King 414cc18a9a Merge topic 'revert-cmake-W-options'
2e606306 Merge branch 'improve-variable-help-formatting' into revert-cmake-W-options
81739e92 Revert topic 'cmake-W-options' (#15747)
2015-09-25 16:16:17 -04:00
Brad King 4fa1755315 Revert topic 'cpack-package-empty-dirs'
The changes in commit 47b060ae (CPackDeb: allow empty directories in
component packages, 2015-09-21), commit b58de9fe (CPack: allow packaging
of empty directories, 2015-09-21), and commit b761e90d (CPack: remove
accidental changes, 2015-09-22) regressed packaging of CMake itself.
Revert the changes until they can be revised and rebased on other
changes that make additional fixes.
2015-09-25 11:55:59 -04:00
Brad King 5a83303f50 Merge topic 'install-directory-dest-genex'
bd189cc2 install: Allow generator expressions in DIRECTORY DESTINATION
2015-09-25 10:12:40 -04:00
Brad King 910ea21004 Merge topic 'Threads-CXX'
fff9434d FindThreads: officially announce it works with only C++ enabled
66db914a FindThreads: fix printing a pointer value in test code
0b38424c FindThreads: make the call to try_run() work also if only C++ is enabled
9924a212 FindThreads: replace CheckIncludeFiles by CheckIncludeFile
a27bc0cc Check(Function|Library|Symbol)Exists: make it work if only C++ is enabled
7279f293 FindThreads: add simple testcase
2015-09-25 10:12:37 -04:00
Rolf Eike Beer fff9434d45 FindThreads: officially announce it works with only C++ enabled 2015-09-25 10:08:35 -04:00
Rolf Eike Beer a27bc0ccac Check(Function|Library|Symbol)Exists: make it work if only C++ is enabled 2015-09-25 10:07:54 -04:00
Robert Goulet bd189cc24e install: Allow generator expressions in DIRECTORY DESTINATION 2015-09-24 09:13:03 -04:00
Robert Goulet 17aa6fd362 install: Allow generator expressions in FILES DESTINATION 2015-09-23 14:37:17 -04:00
Brad King 2e6063068c Merge branch 'improve-variable-help-formatting' into revert-cmake-W-options
Resolve conflicts in

 Help/variable/CMAKE_ERROR_DEPRECATED.rst
 Help/variable/CMAKE_WARN_DEPRECATED.rst

by integrating changes from both sides.
2015-09-22 13:57:08 -04:00
Brad King 81739e9215 Revert topic 'cmake-W-options' (#15747)
The changes in commit c96fe0b4 (cmake: Add -W options to control
deprecation warnings and errors, 2015-07-28) fail to account for
-Wdev warnings produced by places in CMake other than message().
This causes a regression in which -Wno-dev fails to suppress such
warnings.  Revert the feature until it can be revised accordingly.
2015-09-22 13:53:09 -04:00
Brad King 442d17ef6c Merge topic 'cpack-package-empty-dirs'
b58de9fe CPack: allow packaging of empty directories
47b060ae CPackDeb: allow empty directories in component packages
2015-09-22 10:47:11 -04:00
Domen Vrankar b58de9fe2b CPack: allow packaging of empty directories 2015-09-22 02:08:26 +02:00
Chuck Atkins 9784af1b50 CMP0065: Restrict the use of CMAKE_SHARED_LIBRARY_LINK_<LANG>_FLAGS
This new policy restricts the addition of the shared library link flags
to executables only when the ENABLE_EXPORTS property is set to True.
2015-09-21 10:12:13 -04:00
Brad King cec45e27f6 Merge topic 'pkg-config-variable-function'
51b83f14 FindPkgConfig: add a command to query arbitrary variables
7f7f1eec FindPkgConfig: use execute_process to strip trailing whitespace
2015-09-21 09:39:36 -04:00
Ben Boeckel 51b83f1445 FindPkgConfig: add a command to query arbitrary variables 2015-09-21 09:39:26 -04:00
Brad King 1f4358134f Merge topic 'cpack-verbatim-variables'
bc2e54db Introduction of CPACK_VERBATIM_VARIABLES variable
2015-09-21 09:25:34 -04:00
Brad King 38830fc0ca Merge topic 'cpack-deb-checksum-on-symlinks'
da295f45 CPack/Deb: checksum on symlinks release notes
7c7874c8 CPackDeb: preventing md5sum on symlinks
2015-09-21 09:25:31 -04:00
Brad King 82a0c7be3f Merge topic 'ctest-custom-output-size'
fd47df45 CTest: Add options to limit output of passed and failed tests
6e3151f6 CTest: Document and test custom output size settings
2015-09-21 09:25:24 -04:00
Roman Donchenko bc2e54db55 Introduction of CPACK_VERBATIM_VARIABLES variable
If variable is set to TRUE, values of all variables prefixed with CPACK_
will be escaped so special characters such as dolar sign, quotes or
foreward slash will not be lost. By default variable is treated as set
to FALSE for back compatibility.

The cpack_encode_variables macro is changed into a function to remove
scope pollution. There should be no other effects.
2015-09-20 23:39:03 +02:00
Domen Vrankar da295f450d CPack/Deb: checksum on symlinks release notes 2015-09-18 22:31:24 +02:00
Roman Wüger fd47df4503 CTest: Add options to limit output of passed and failed tests
Add ctest command-line options:

  --test-output-size-passed <n>
  --test-output-size-failed <n>

to set the amount of test output to store in Test.xml as a command-line
dashboard client.
2015-09-18 11:32:06 -04:00
Brad King 309026147a Merge topic 'ms-manifest-files'
e134e53b Add support for *.manifest source files with MSVC tools
da00be63 MSVC: Rewrite manifest file handling with Makefile and Ninja
d488b5c9 Ninja: Always add OBJECT_DIR variable to link rules
6d620f5a VS: Add manifest tool settings to VS 8 and 9 project files
2015-09-18 09:56:39 -04:00
Brad King 0d5605120b Merge topic 'ExternalProject_stash_save_all'
7c5b6ed5 ExternalProject: Use "git stash save --all" only if supported (#15722)
b04c3815 ExternalProject: Use GIT_VERSION_STRING instead of custom method
2015-09-18 09:56:32 -04:00
Brad King eb154697c0 Merge topic 'cpack-deb-fakeroot-removal'
becb14c9 CPack/DEB: test preserve extra config file permissions
7044e8ee CPackDeb: use of libarchive and removal of fakeroot
415405a3 cmArchiveWrite: control user/group, permissions and recursive file adding
4f2ff601 Tests: Make RunCMake.CPack error messages more readable
81b748ae cmGeneratedFileStream: Fix spelling in comment
2015-09-17 15:34:02 -04:00
Raffi Enficiaud 7044e8ee4b CPackDeb: use of libarchive and removal of fakeroot 2015-09-17 15:30:39 -04:00
Brad King e134e53b47 Add support for *.manifest source files with MSVC tools
Classify .manifest sources separately, add dependencies on them, and
pass them to the MS manifest tool to merge with linker-generated
manifest files.

Inspired-by: Gilles Khouzam <gillesk@microsoft.com>
2015-09-17 10:21:32 -04:00
Daniele E. Domenichelli 7c5b6ed5c8 ExternalProject: Use "git stash save --all" only if supported (#15722)
The --all option for git-stash wasn't introduced until git version 1.7.6.
2015-09-17 12:05:07 +02:00
Andreas Bergmeier 2ec97b1302 FindProtobuf: Add protobuf_generate_python function 2015-09-15 08:27:55 -04:00
Paul Romano fd26a19afc FindHDF5: Add NAMES_PER_DIR and introduce HDF5_PREFER_PARALLEL
The calls to find_program now use NAMES_PER_DIR so that the first executable
(e.g. h5pcc) appearing on their PATH will get chosen. The HDF5_PREFER_PARALLEL
variable swaps the search order when it is set to true in the event that a
directory being search contains both h5cc and h5pcc.
2015-09-11 14:27:08 -04:00
Brad King 72797dec8f Merge topic 'cpack-cmake-special-characters-mangling'
2a7772ff CPack: don't mangle CMake-special characters when applying default settings
2015-09-10 11:29:58 -04:00
Brad King 3d7c366a3a Merge topic 'cpack-deb-component-dependencies'
4de7c812 CPack/Deb: enable per component setting of dependencies
2015-09-10 11:29:56 -04:00
Brad King bae6eee13a Merge topic 'FindwxWidgets-updates'
d8e233d8 Help: Add notes for topic 'FindwxWidgets-updates'
15aacb68 FindwxWidgets: Add wxWidgets webview component
8122fbd0 FindwxWidgets: Expect wxWidgets 3.1
6089fde5 FindwxWidgets: allow specifying required version
2015-09-10 11:29:54 -04:00
Domen Vrankar 4de7c8126b CPack/Deb: enable per component setting of dependencies 2015-09-09 23:57:58 +02:00
Roman Donchenko 2a7772ff4c CPack: don't mangle CMake-special characters when applying default settings
Mangling is prevented by using a function instead of a macro for setting
default value of some CPack variables. Function is meant for internal use
in CPack.cmake only.
Old macro is deprecated but kept for backwards compatibility - was
intended for internal use only as it can't be used for CPack after
CPack.cmake script is included.
Patch removes local workarounds that were required by old macro,
fixes default setting of variables that by default inherit value from
another variable that already went through old default setting macro
(e.g. value of CPACK_PACKAGE_INSTALL_REGISTRY_KEY caused error for
wrong escapes if CPACK_PACKAGE_INSTALL_DIRECTORY contained escaped
back slashes) and provides a test for correct escaping of characters.
2015-09-09 22:21:07 +02:00
Brad King d8e233d878 Help: Add notes for topic 'FindwxWidgets-updates' 2015-09-09 10:22:39 -04:00
Brad King 2fbc41f38a Record compile features for GNU C on Windows (#15727)
Drop the 'UNIX' condition on GNU C compiler features.
2015-09-09 09:32:46 -04:00
Brad King 4da3315db3 Merge topic 'find_program-NAMES_PER_DIR'
8ea7611b find_program: Optionally consider all names in each directory
fc1990c9 cmFindProgramCommand: Re-implement search using more flexible approach
fdbfc9f6 Tests: Add explicit testing for find_program
907a919b cmSystemTools: Drop unused StringEndsWith method
ed4de3c9 cmFindProgramCommand: Use Names member instead of passing it
bf32b95e cmFindLibraryCommand: Avoid repeating search for the same name
2015-09-08 10:24:36 -04:00
Brad King 20b7e79d21 Merge topic 'FindOpenSSL-static-libs'
369a8cde FindOpenSSL: Optionally search only for static libraries
2015-09-08 10:24:34 -04:00
Thijs Wenker 369a8cde37 FindOpenSSL: Optionally search only for static libraries
Add an OPENSSL_USE_STATIC_LIBS option to enable it.  Adjust
CMAKE_FIND_LIBRARY_SUFFIXES to only look for .a and .lib files.  Also
adjust the search paths on Windows for installer locations of static
libraries.
2015-09-02 13:47:57 -04:00
Michael Scott 11097f5231 FindZLIB: Find debug and release variants separately
Provide each variant in ZLIB_LIBRARIES and ZLIB::ZLIB imported location
properties when one is found, while maintaining support for manually
setting the library via ZLIB_LIBRARY.
2015-09-02 11:35:43 -04:00
Brad King 8ea7611bc3 find_program: Optionally consider all names in each directory
When more than one value is given to the NAMES option this command by
default will consider one name at a time and search every directory for
it.  Add a NAMES_PER_DIR option to tell this command to consider one
directory at a time and search for all names in it.
2015-09-02 10:17:22 -04:00
Brad King ef0bf87939 Merge topic 'java-updates'
4476feac UseJava: Add support for javah tool
2015-08-27 10:03:56 -04:00
Marc Chevrier 4476feac33 UseJava: Add support for javah tool
Add a `create_javah` API.
2015-08-21 09:30:08 -04:00
Brad King badde9c2a1 Merge topic 'modules-no-soname'
f799ffb5 Do not set SONAME for MODULE library targets (#15705)
899458ab Tests: Cover NO_SONAME property for SHARED libraries
2015-08-21 09:29:06 -04:00
Felix Geyer f799ffb5cb Do not set SONAME for MODULE library targets (#15705)
The SONAME field is only useful for shared libraries that application
link against.
2015-08-20 10:45:09 -04:00
James Johnston e89ea3d190 get_filename_component: Teach new BASE_DIR parameter.
In the get_filename_component command, add a new BASE_DIR parameter to
use with the ABSOLUTE and REALPATH options.  This will be used when
finding an absolute path from a relative path.
2015-08-17 23:55:38 -04:00
Brad King 9cba05c684 Merge topic 'FindXercesC-updates'
db292564 FindXercesC: Add support for 3D_1 variant of the library
021bf871 FindXercesC: Find debug and release libraries separately
2015-08-17 10:24:55 -04:00
Roger Leigh 021bf871a6 FindXercesC: Find debug and release libraries separately 2015-08-14 09:52:36 -04:00
Roger Leigh 724fa68270 FindTIFF: Find debug and release libraries separately 2015-08-14 09:49:46 -04:00
Brad King fb3035a92c Merge topic 'add-link-search-static-properties-defaults'
970a741f Help: Add notes for topic 'add-link-search-static-properties-defaults'
2015-08-13 10:43:14 -04:00
Brad King 970a741f7d Help: Add notes for topic 'add-link-search-static-properties-defaults' 2015-08-13 10:42:38 -04:00
Robert Goulet d25819bc26 Add generator expression support to OUTPUT_DIRECTORY target properties
If {ARCHIVE,LIBRARY,RUNTIME}_OUTPUT_DIRECTORY is set with a genex then
do not add the per-config subdirectory on multi-config generators.
This will allow projects to use $<CONFIG> to place the per-config
part of the directory path somewhere other than the end.
2015-08-12 13:43:00 -04:00
Marc Chevrier cc23f0e9d3 UseJava: Teach install_jar new DESTINATION and COMPONENT options 2015-08-04 11:19:44 -04:00
Marc Chevrier 3d287de4ea UseJava: Teach add_jar to support file syntax for sources 2015-08-04 11:19:43 -04:00
Marc Chevrier e72806fb30 FindJava: Add support for idlj and jarsigner tools 2015-08-04 11:19:40 -04:00
Brad King 7ac2b1256b Merge topic 'if-test'
14e49ed1 if: Add "TEST <test>" condition
623dcc85 ExternalProject: Avoid if() auto-dereference of a "TEST" variable
2015-08-03 09:25:10 -04:00
Matt McCormick 14e49ed156 if: Add "TEST <test>" condition
if(TEST TestNameThatExists) will return true if a test with the name
TestNameThatExists has been added with add_test.  The syntax is similar
to if(TARGET TargetName).  Since use of "TEST" as an argument to if()
could previously be interpreted as a non-keyword argument, add policy
CMP0064 to treat it as a keyword as NEW behavior.
2015-08-03 09:22:25 -04:00
Michael Scott c96fe0b40d cmake: Add -W options to control deprecation warnings and errors
Refactor the -Wdev and -Wno-dev to use a generic -W parser that follows
the GCC pattern.  Include support for setting CMAKE_ERROR_DEPRECATED and
CMAKE_WARN_DEPRECATED via the deprecated warning.  Add -Werror=dev and
-Wno-error=dev options so that dev warning options are in line with
deprecated warning options.  Use a new CMAKE_SUPPRESS_DEVELOPER_ERRORS
internal cache entry to store the above new dev options persistently.
Add tests for new options and updated cmake documentation and release
notes to list new options.
2015-07-29 09:20:10 -04:00
Brad King 280dde34dd Merge topic 'trace-expand'
594bafe5 cmake: add --trace-expand option
2015-07-27 09:31:22 -04:00
Ben Boeckel 594bafe527 cmake: add --trace-expand option
The --trace option is helpful, but sometimes, what you're looking for is
deep under many layers of function calls and figuring out what instance
of the function call you're looking at is tedious to determine (usually
involving patching and message()). Instead, add a --trace-expand option
to trace while expanding commands into what CMake actually sees.
2015-07-23 15:33:10 -04:00
Clifford Yapp 45c5f8cad2 Add SOURCE_DIR and BINARY_DIR target properties
This will allow project code to recover the directory information about
where a target was created.
2015-07-21 14:19:35 -04:00
Brad King dec8d1ccf8 Help: Add notes for topic 'doc-CMakeExpandImportedTargets-deprecated' 2015-07-21 09:23:42 -04:00
Brad King 77fa27a9f5 Merge topic 'makefile-target-messages'
f0cad193 Tests: Add test for TARGET_MESSAGES global property
1d398478 Makefile: Optionally disable target completion messages in build output
d560b46f CMakeGenericSystem: Recognize Watcom WMake generator as Makefile generator
2015-07-15 09:05:51 -04:00
Mikhail Filimonov 8c0afaf450 VS: Add more Nsight Tegra generator Android property settings
Extend the Nsight Tegra project generator to add bunch of properties
with the backing variables to fine-tune the generated projects.

Add target properties that map to all "Configuration" PropertyGroups for
each configuration:

* ANDROID_ARCH
* ANDROID_STL_TYPE

Add target properties that map to the AntBuild section of vcxproj files:

* ANDROID_ANT_ADDITIONAL_OPTIONS
* ANDROID_ASSETS_DIRECTORIES
* ANDROID_JAR_DEPENDENCIES
* ANDROID_JAR_DIRECTORIES
* ANDROID_JAVA_SOURCE_DIR
* ANDROID_NATIVE_LIB_DEPENDENCIES
* ANDROID_NATIVE_LIB_DIRECTORIES
* ANDROID_PROCESS_MAX
* ANDROID_PROGUARD
* ANDROID_PROGUARD_CONFIG_PATH
* ANDROID_SECURE_PROPS_PATH
* ANDROID_SKIP_ANT_STEP

Reviewed-by: Dmitry Polyanitsa <dpolyanitsa@nvidia.com>
2015-07-14 14:24:05 -04:00
Michael Ensslin 1d3984780d Makefile: Optionally disable target completion messages in build output
Add a TARGET_MESSAGES property to control whether Makefile targets print
the "Built target " completion messages.  Default to ON to preserve
existing behavior.
2015-07-14 13:57:58 -04:00
Brad King 1dd96df94d Merge topic 'OUTPUT_NAME-genex'
809159c9 Add generator expression support to OUTPUT_NAME target property
9a1ef0dc Help: Improve OUTPUT_NAME documentation formatting
2015-07-10 08:51:21 -04:00
Robert Goulet 809159c9b7 Add generator expression support to OUTPUT_NAME target property 2015-07-09 11:48:10 -04:00
Brad King 889b22e2ca Help: Add notes for topic 'FindIce-imported-targets' 2015-07-09 09:48:15 -04:00
Brad King c66d232c9c Merge topic 'string-append'
2b18cdca string: add APPEND subcommand
2015-07-08 09:21:52 -04:00
Brad King 8c1460653e Merge topic 'add-apple-swift-language'
bf112531 Add rudimentary support for the Apple Swift language with Xcode
2015-07-08 09:19:10 -04:00
Brad King ad91d0edd5 Merge topic 'auto_export_dll_symbols'
8f86407c Windows: Optionally generate DLL module definition files automatically
069aa93b bindexplib: Add support for "/bigobj" format objects
61bbbdcf bindexplib: Fix treatment of some symbols
de70c922 bindexplib: Teach DumpFile to return errors
8ea69dfe bindexplib: Build source as part of CMakeLib
2963cb2a bindexplib: Wrap long lines
4ff09893 bindexplib: Drop code that CMake does not need
7de8276c bindexplib: Add copyright/license notice block
65086ad7 bindexplib: Import original implementation from CERN
2015-07-08 09:19:07 -04:00
Daniel Pfeifer 2b18cdcaba string: add APPEND subcommand 2015-07-07 09:23:21 -04:00
Brad King bf11253163 Add rudimentary support for the Apple Swift language with Xcode
Allow the `Swift` language to be enabled with the Xcode generator for
Xcode >= 6.1.  Reject it on other generators and with older Xcode
versions.  Since Apple is the only vendor implementing the language
right now, the compiler id can be just `Apple`.
2015-07-06 16:15:49 -04:00
James Johnston e494763997 ExternalProject: Added new USES_TERMINAL options
Added new USES_TERMINAL option to the ExternalProject_Add_Step
function.  This option passes USES_TERMINAL to the underlying
add_custom_command call so that the Ninja console pool is used.
Also, corresponding new USES_TERMINAL_<step> options were added
to the ExternalProject_Add function.

Justification: if using Ninja with a CMake superbuild, it's often
desirable to limit the superbuild to ONE sub-Ninja process at a
time to avoid oversubscribing the CPU.  Using the console pool also
makes it easy to monitor the progress of the sub-Ninja process.

Independent USES_TERMINAL_<step> arguments are passed to
ExternalProject_Add instead of one USES_TERMINAL argument that
controls everything.  Users may wish to run some steps in parallel
but not others (e.g. parallelize configure but not build).
2015-07-06 14:51:40 -04:00
Bill Hoffman 8f86407cfd Windows: Optionally generate DLL module definition files automatically
Create target property WINDOWS_EXPORT_ALL_SYMBOLS to automatically
generate a module definition file from MS-compatible .obj files and give
it to the linker in order to export all symbols from the .dll part of a
SHARED library.
2015-07-06 11:11:02 -04:00
Betsy McPhail f62d301b92 ctest: Optionally avoid starting tests that may exceed a given CPU load
Add a TestLoad setting to CTest that can be set via a new --test-load
command-line option, CTEST_TEST_LOAD variable, or TEST_LOAD option to
the ctest_test command.  Teach cmCTestMultiProcessHandler to measure
the CPU load and avoid starting tests that may take more than the
spare load currently available.  The expression

 <current_load> + <test_processors> <= <max-load>

must be true to start a new test.

Co-Author: Zack Galbreath <zack.galbreath@kitware.com>
2015-06-30 10:21:37 -04:00
Brad King 41cd8547c4 Merge topic 'GNUInstallDirs-special-prefixes'
8bcec4d2 Help: Add notes for topic 'GNUInstallDirs-special-prefixes'
c8bd37ec GNUInstallDirs: Add special cases for certain prefixes
5f30f175 GNUInstallDirs: Add test cases
2015-06-19 08:51:45 -04:00
Brad King 54676a0e4c Help: Add notes for topic 'ConcurrentFortran-compiler-id' 2015-06-18 16:16:50 -04:00
Brad King 8bcec4d229 Help: Add notes for topic 'GNUInstallDirs-special-prefixes' 2015-06-18 08:59:34 -04:00
Brad King c1113705d7 Merge topic 'compiler-launcher'
698f7597 Add options to launch the compiler through tools like ccache or distcc
2015-06-15 09:45:28 -04:00
Bill Hoffman 698f75971b Add options to launch the compiler through tools like ccache or distcc
Create a <LANG>_COMPILER_LAUNCHER target property (initialized by a
CMAKE_<LANG>_COMPILER_LAUNCHER variable) to specify a compiler launcher
tool.  This will supersede the CMAKE_<LANG>_COMPILER_ARG1 approach to
using such tools.  The old approach set CMAKE_<LANG>_COMPILER to the
launcher tool while the new approach leaves this variable set to the
actual compiler.

Implement this property for Makefile and Ninja generators.  It cannot be
implemented for VS or Xcode generators as the IDE build tools offer no
such hooks.
2015-06-15 09:36:48 -04:00
Brad King 6863c0d52c Help: Add notes for topic 'FindBISON-DEFINES_FILE' 2015-06-11 11:32:09 -04:00
Brad King 092133b1ba Merge topic 'ExternalProject_init_selected_submodules'
77ee6db5 Help: Add notes for topic 'ExternalProject_init_selected_submodules'
124243c0 ExternalProject: Add unit tests for GIT_SUBMODULES argument
14e2c3ad ExternalProject: Initialize only selected git submodules (#15590)
2015-06-08 10:34:49 -04:00
Brad King 77ee6db505 Help: Add notes for topic 'ExternalProject_init_selected_submodules' 2015-06-08 10:27:06 -04:00
Stephen Kelly 1335992c8f Remove CMAKE_USE_RELATIVE_PATHS variable.
The test for this variable was removed in commit v2.8.8~330^2~7 (complex:
Remove ancient unused ComplexRelativePaths test, 2011-12-23).

Commit v3.1.0-rc1~425^2~2 (backtrace: Convert to local paths in
IssueMessage, 2014-03-12) appears to have accidentally made some backtraces
print relative paths with the variable because conversions which used to be
done at configure time, before the variable had an effect are now potentially
done at generate time.

The documentation of the variable says not to use it, and the docs are wrong in
that the variable actually applies in per-directory scope.

The read of the variable makes it harder to split conversion methods from
cmLocalGenerator where they don't belong.  Remove it now.
2015-06-03 11:43:31 -04:00
Brad King d3bb5da929 Begin post-3.3 development 2015-06-02 11:19:44 -04:00
Brad King 9805fd90af Help: Drop development topic notes to prepare release
Release versions do not have the development topic section of
the CMake Release Notes index page.
2015-06-02 11:12:33 -04:00
Brad King 8ce87ac6ef Help: Consolidate 3.3 release notes
Move all development release notes into a new version-specific document:

 tail -q -n +3 Help/release/dev/* > Help/release/3.3.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.
2015-06-02 09:10:30 -04:00
Brad King 12b9005d7c Merge topic 'extend-visibility-properties'
700f1c3b Honor visibility properties for all target types (#15556)
50de5dbb Help: Format visibility property and variable documentation
771f1b00 Tests: Rename Visibility{InlinesHidden =>}
ab55b3b5 Tests: Refactor RunCMake.VisibilityPreset test setup
2015-05-26 09:24:00 -04:00
Brad King 129bf45dee Merge topic 'ExternalData-no-symlinks'
0de47b05 ExternalData: Add option to disable use of symlinks
2015-05-26 09:23:57 -04:00
Brad King 700f1c3b2b Honor visibility properties for all target types (#15556)
The <LANG>_VISIBILITY_PRESET and VISIBILITY_INLINES_HIDDEN were first
merged in commit v2.8.12~322 (Merge topic 'VISIBILITY_PRESET-property',
2013-06-05) but worked only for shared libraries and executables with
exports.  Prior to commit v3.0.0-rc1~581^2 (GenerateExportHeader:
Deprecate add_compiler_export_flags function., 2013-09-02) the
add_compiler_export_flags function was used to add visibility flags to
all targets.

The visibility flags are useful for sources in all target types because
they may be later linked into shared libraries or executables with
exports.  Introduce policy CMP0063 to enable them for all target types
while preserving compatibility with existing projects that do not expect
this.
2015-05-26 09:03:16 -04:00
Brad King 0de47b05f7 ExternalData: Add option to disable use of symlinks
Add an ExternalData_NO_SYMLINKS to enable use of copies instead of
symlinks to populate the real data files behind a DATA{} reference.
This will be useful on UNIX-like systems when the underlying filesystem
does not actually support symbolic links.

Suggested-by: Matt McCormick <matt.mccormick@kitware.com>
2015-05-22 09:21:47 -04:00
Brad King deec97d8ec Revert "Qbs: Add new 'extra' generator for qbs project files"
This reverts commit f85db2f323.

Discussion by the QtCreator community at

  https://bugreports.qt.io/browse/QTCREATORBUG-13695

raises concerns about this particular approach to working with CMake
projects using QtCreator.  Also, the functionality and design of the QBS
extra generator was never discussed on the CMake mailing list or with
QtCreator developers.  There may be better ways to make the two tools
work together.

In order to avoid committing to long-term support of this generator
prior to such discussion taking place, revert it from CMake for now.
We may restore this or use an alternative design based on results of
such discussion.
2015-05-21 09:05:58 -04:00
Brad King 2c54622ff5 Merge topic 'cmake-gui-osx-install-command-line'
e462ef74 Help: Add notes for topic 'cmake-gui-osx-install-command-line'
8ea2db26 cmake-gui: Replace command-line install dialog with information box
438ce4a0 cmake-gui: Add --install option to add command-line tools on OS X
41477d5c cmake-gui: Drop undocumented and unused --mac-install option
2015-05-21 09:03:50 -04:00
Brad King e462ef74e5 Help: Add notes for topic 'cmake-gui-osx-install-command-line' 2015-05-21 08:59:32 -04:00
Brad King ada5ffce7b Add options to run include-what-you-use with the compiler
Create a <LANG>_INCLUDE_WHAT_YOU_USE target property (initialized by a
CMAKE_<LANG>_INCLUDE_WHAT_YOU_USE variable) to specify an IWYU command
line to be run along with the compiler.
2015-05-19 13:16:29 -04:00
Brad King 00ccfff2bc Merge topic 'cpack-ifw-updates'
342d15cb Update packaging of CMake for QtIFW 2.0
9a0ba4d2 CPackIFW: Add QtIFW 2.0 support
2015-05-18 09:56:17 -04:00
Konstantin Podsvirov 9a0ba4d24a CPackIFW: Add QtIFW 2.0 support
Add variables:

- CPACK_IFW_FRAMEWORK_VERSION
- CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS
- CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH
- CPACK_IFW_PACKAGE_CONTROL_SCRIPT
- CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE
- CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME
- CPACK_IFW_PACKAGE_START_MENU_DIRECTORY
- CPACK_IFW_VERBOSE
2015-05-15 11:02:49 -04:00
Stephen Kelly b85d3b66c6 install: Disallow installing export() result. 2015-05-14 21:38:29 +02:00
Brad King 53bb51fc31 Merge topic 'ctest-no-make-i'
226df303 CTest: Stop telling 'make' to ignore errors with -i
28e7a135 Help: Fix build_command alternative signature docs
231601b6 build_command: Choose configuration consistently across signatures
2015-05-12 09:12:56 -04:00
Brad King 70d48e1287 Merge topic 'cpack-deb-component-dependencies'
1237d5fa Help: Add notes for topic 'cpack-deb-component-dependencies'
e3f522f6 CPack/DEB per component dependencies
2015-05-12 09:12:54 -04:00
Brad King ffd5d09225 Merge topic 'find_package-no-cmake-gui-paths'
1506f9ca find_package: Drop search in recent cmake-gui locations
8d484463 FindFLTK: Drop search in recent cmake-gui locations
2015-05-12 09:12:50 -04:00
Brad King 226df303f9 CTest: Stop telling 'make' to ignore errors with -i
Add policy CMP0061 to maintain compatibility for existing projects.
2015-05-12 09:06:49 -04:00
Brad King 1237d5fa8c Help: Add notes for topic 'cpack-deb-component-dependencies' 2015-05-12 09:05:17 -04:00
Brad King 1506f9ca56 find_package: Drop search in recent cmake-gui locations
The find_package command, on Windows, has always searched build trees
recently visited by cmake-gui (or CMakeSetup at one time).  This was
done when the command was created with the intention of simplifying
workflows involving building multiple dependent projects.  However,
this behavior depends on recent developer interaction and therefore
can create different find results based on transient system states.
It can lead to surprising results and user confusion.

Since this behavior was first added CMake has gained many more search
options, better error messages when a package is not found, and a
package registry.  The latter in particular allows projects to make
their build trees available for dependent projects to find without
user intervention.  Therefore the originally intended workflow can
be achieved in other, more stable ways.

After the above evoluion of find_package we have now decided that
the magic search-where-cmake-gui-was behavior does more harm than
good.  Drop it.  We do not need a policy for this behavior change
because it only affects interactive use.
2015-05-08 11:27:02 -04:00
Brad King f65bb82f36 execute_process: Improve stdout/stderr merging
Use the KWSys Process "MergeOutput" option to give the child process
the same pipe (or file) for both stdout and stderr.  This allows
natural merging of stdout and stderr together instead of merging
on arbitrary buffered read boundaries as before.
2015-05-07 14:40:38 -04:00
Brad King 18527c4991 Merge topic 'vs-install-in-default-build'
a6e4e73d VS: Add option to put INSTALL target in .sln default build
562e69dd Tests: Enable devenv tests on VS >= 10
2015-05-07 14:25:37 -04:00
Raffi Enficiaud 4588a1697f CPack/DEB component dependency auto-discovery
Dependency auto-discovery can now be set per component
2015-05-07 14:21:57 -04:00
Robert Goulet a6e4e73da3 VS: Add option to put INSTALL target in .sln default build
Add a CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD variable to control
this behavior.
2015-05-06 10:31:39 -04:00
Nils Gladitz aed6239e40 if: Implement new IN_LIST operator 2015-04-30 10:21:19 -04:00
Nils Gladitz 32a2f41402 Revert "add_custom_command: Diagnose MAIN_DEPENDENCY limitation."
This reverts commit 242c3966 (add_custom_command: Diagnose
MAIN_DEPENDENCY limitation, 2015-03-09) and the follow up commit
b372a99a (UseSWIG: Do not use MAIN_DEPENDENCY on custom commands,
2015-03-26).

I misdiagnosed the underlying issue that prompted creation of policy CMP0057.
The actual issue surfaces when a single custom command's MAIN_DEPENDENCY
is listed in more than one target; this issue will have to be addressed
independently.
2015-04-30 10:20:20 -04:00