Commit Graph

469 Commits

Author SHA1 Message Date
James Johnston 3bb707f0a1 Help: Improve formatting of variable documentation
Improve formatting, primarily by:

* Adding links to relevant commands, properties, generators, and so on.
* Converting code, symbols, paths, and so on to fixed-width fonts.
* Hard wrapping lines to 80 characters or less.
2015-08-21 09:32:08 -04:00
Chuck Atkins 675ef165f2 Allow LINK_SEARCH_{START,END}_STATIC props to have default values.
Use the CMAKE_LINK_SEARCH_START_STATIC and CMAKE_LINK_SEARCH_END_STATIC
variables to initialize the LINK_SEARCH_START_STATIC and
LINK_SEARCH_END_STATIC target properties respectively.
2015-08-13 10:34:44 -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 a5412fbab4 Merge topic 'ctest-change-id'
601ff0ec CTest: Optionally add a ChangeId attribute on XML Site tags
2015-07-17 10:36:17 -04:00
Zack Galbreath 601ff0ec55 CTest: Optionally add a ChangeId attribute on XML Site tags
Add variable CTEST_CHANGE_ID to configure the setting.  This allows
CTest clients to give CDash information about what change is being
tested so that CDash can take actions to report the results (e.g. to a
pull request page).
2015-07-17 10:26:28 -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
Brad King 5bd01a4b69 Merge topic 'vs-nsight-tegra-attributes'
8c0afaf4 VS: Add more Nsight Tegra generator Android property settings
2015-07-15 09:05:49 -04:00
Brad King eb8eaaecbe Help: Document Apple Framework creation with an example (#15651) 2015-07-14 14:57:02 -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 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
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 8848298831 Merge topic 'doc-cmake-buildsystem-typo'
17c51521 Help: Fix a typo in cmake-buildsystem(7) manual
2015-06-22 13:00:25 -04:00
Erik Sjölund 17c5152170 Help: Fix a typo in cmake-buildsystem(7) manual
Add the property name INTERFACE_INCLUDE_DIRECTORIES that was missing
from a set_property command.
2015-06-22 09:02:55 -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 ab660b8d22 Merge topic 'doc-policy-OLD-deprecated'
482a3bf3 Help: Document explicitly that policy OLD behavior is deprecated
2015-06-09 10:29:38 -04:00
Brad King 482a3bf3f0 Help: Document explicitly that policy OLD behavior is deprecated
The most likely documentation page a project author will read in
response to a policy warning is the page for the policy itself.
Add to every policy documentation page a note explicitly stating
that the OLD behavior is deprecated.  Also mention this in the
cmake_policy() command documentation that explains how to set a
policy to OLD.

Suggested-by: Fraser Hutchison <fraser.hutchison@gmail.com>
2015-06-09 09:29:41 -04:00
Brad King 3e49888ff0 Merge topic 'doc-find-command-cleanup'
3de3544f Help: Improve documentation formatting of find_* commands
8c64c478 Help: Document CMAKE_FIND_APPBUNDLE and CMAKE_FIND_FRAMEWORK
25b4483e Help: Document CMAKE_SYSTEM_APPBUNDLE_PATH variable
e2f34986 Help: Document CMAKE_SYSTEM_FRAMEWORK_PATH variable
2015-06-09 09:18:50 -04:00
Brad King 8c64c4783d Help: Document CMAKE_FIND_APPBUNDLE and CMAKE_FIND_FRAMEWORK
Add dedicated documents for these and link to them instead of
duplicating their documentation in every find command.
2015-06-08 15:45:59 -04:00
Brad King 25b4483ef8 Help: Document CMAKE_SYSTEM_APPBUNDLE_PATH variable 2015-06-08 15:21:47 -04:00
Brad King e2f349864d Help: Document CMAKE_SYSTEM_FRAMEWORK_PATH variable 2015-06-08 15:15:47 -04:00
Brad King 972853b15b Help: Drop incorrect advice from cmake-developer.7 manual
Drop the comment on the purpose of PATH_SUFFIXES in our Find Module
example.  It was incorrect.
2015-06-08 14:50:03 -04:00
Erik Sjölund a9b1838f97 Help: Fix typo in cmake-compile-features(7) manual (#15594)
target_link_libraries() is being used in the example code but
target_include_directories() was probably meant to be used. The sentence
that starts with "Consuming code then" indicates that the example is
about using the appropriate include directory.
2015-05-29 11:23:37 -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 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 f3e4e3ecde Merge topic 'doc-cache-option-space'
b0ea3673 Help: Spell '-D' option consistently across documentation (#15575)
2015-05-21 09:03:48 -04:00
Brad King a23fdec8d2 Merge topic 'doc-cmake-buildsystem-typo'
7412d100 Help: Fix typo in cmake-buildsystem(7) manual
2015-05-21 09:03:43 -04:00
Brad King b0ea367308 Help: Spell '-D' option consistently across documentation (#15575)
Always show the option with its argument separate in summary text.
State in the main documentation that the option and its argument can be
given together too.
2015-05-20 08:30:36 -04:00
Brad King 7412d100a2 Help: Fix typo in cmake-buildsystem(7) manual 2015-05-19 13:24:11 -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
Stephen Kelly b85d3b66c6 install: Disallow installing export() result. 2015-05-14 21:38:29 +02: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 f8716c8b44 Help: Update cmake-generators(7) organization for GHS 2015-05-07 15:52:29 -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
Brad King d401aa21c9 Help: Revise buildsystem artifact file type documentation (#15539)
Add sections to the cmake-buildsystem(7) manual and cross-reference
them with relevant variables and target properties.  This avoids
duplicating the information and allows it to be more detailed.
2015-04-29 11:17:59 -04:00
Brad King 7244e8452f ctest: Consolidate documentation of CTEST_USE_LAUNCHERS (#15533)
The documentation of this variable in the CTest module is outdated
and has been superseded by the ctest(1) manual.  In particular, the
latter mentions that it works with the Ninja generator as well as
makefile generators.  Remove the documentation from the CTest module
and replace it with a link to the main variable documentation (which
already references the ctest(1) manual).
2015-04-28 13:32:23 -04:00
Brad King a61e09948f Help: Fix formatting of env var refs in ctest.1 manual 2015-04-22 08:30:51 -04:00
Brad King 5e0e65c189 Merge topic 'add-GreenHills-MULTI-generator'
66b641f4 Help: Add notes for topic 'add-GreenHills-MULTI-generator'
48004d9d Add a 'Green Hills MULTI' generator on Windows
051d8be1 cmLocalGenerator: Constify some cmTarget and cmGeneratorTarget arguments
2015-04-20 14:02:52 -04:00
Geoff Viola 48004d9dbe Add a 'Green Hills MULTI' generator on Windows
Green Hills MULTI is an IDE for embedded real-time systems.  The IDE's
product page can be found here:

 http://www.ghs.com/products/MULTI_IDE.html

It supports cross compiling on ARM, Intel x86, and other architectures
with various operating systems.  The IDE exists on Linux and Windows
host systems, but CMake will currently only generate the project files
on Windows host systems.
2015-04-20 13:55:40 -04:00
Brad King fef1f26749 Help: Fix {GIT,P4}UpdateCustom documentation (#15512)
The GITUpdateCustom and P4UpdateCustom options take only one command
line with all arguments as a ;-list, not a ;-list of multiple command
lines.  Fix the incorrect documentation originally added by commit
v3.1.0-rc1~463^2 (Help: Document ctest dashboard client usage,
2014-05-30).
2015-04-13 13:00:58 -04:00
Nils Gladitz d2cc580704 cmake: Teach "-E tar" command a "--format=" option
Allows specifying a libarchive defined archive format currently restricted to
7zip, gnutar, pax, paxr and zip.

The default is "paxr" (pax restricted).
2015-04-10 08:32:31 -04:00
Brad King 1a1bdbfd87 Merge topic 'link-implicit-libs-full-path'
882f48e5 Link libraries by full path even in implicit directories
318cd370 Help: Add link target for Find Modules section of cmake-developer.7
1535dcd8 Tests: Teach RunCMake to optionally merge command output to stdout
2015-04-09 11:32:31 -04:00
Brad King 882f48e5ba Link libraries by full path even in implicit directories
When CMP0003 was first introduced we wanted to link all libraries by
full path.  However, some projects had problems on platforms where
find_library would find /usr/lib/libfoo.so when the project really
wanted to link to /usr/lib/<arch>/libfoo.so and had been working by
accident because pre-CMP0003 behavior used -lfoo to link.

We first tried to address that in commit v2.6.0~440 (Teach find_library
to avoid returning library paths in system directories, 2008-01-23) by
returning just "foo" for libraries in implicit link directories.  This
caused problems for projects expecting find_library to always return a
full path.  We ended up using the solution in commit v2.6.0~366 (...
switch library paths found in implicit link directories to use -l,
2008-01-31).  However, the special case for libraries in implicit link
directories has also proven problematic and confusing.

Introduce policy CMP0060 to switch to linking all libraries by full path
even if they are in implicit link directories.  Explain in the policy
documentation the factors that led to the original approach and now to
this approach.
2015-04-09 11:29:18 -04:00