Commit Graph

22576 Commits

Author SHA1 Message Date
Stephen Kelly abb13ea565 Order cmGeneratorTargetsType elements deterministically.
Define a custom ordering functor to deterministically and strictly
order the cmTarget* key. Otherwise the order would be dependent on
runtime pointer values, which breaks assumptions of some generators.

The functor orders first by target name, and then by directory. Multiple
global targets may have the same name, such as edit_cache, but their
directory differentiates them.
2013-11-22 15:06:25 +01:00
Brad King 7246e635fe Merge topic 'FixIssue14029'
9619719 FindSDL: Add additional search paths on MSVC (#14029)
2013-11-22 08:41:43 -05:00
Brad King 1744ad9257 Merge topic 'add-cmHasLiteralPrefix'
4fe963f Use new cmHasLiteralPrefix function
7d4b2b2 cmStandardIncludes: Add new cmHasLiteralPrefix function.
2013-11-22 08:41:30 -05:00
Brad King d121a8cb66 Merge topic 'cmake-credits'
8ad8a9b cmake-gui: Reference LGPLv2.1 when redistributing Qt
2013-11-22 08:41:16 -05:00
Brad King a6080587aa Merge topic 'use-generator-target'
aa29e64 Add a null check to the generator target accessor.
2013-11-22 08:41:03 -05:00
Brad King 3013a11826 Merge topic 'cross-compiling-toolchain-variables'
7521da2 Introduce CMAKE_STAGING_PREFIX variable.
2013-11-22 08:40:50 -05:00
Brad King ed0b342603 Merge topic 'qt-dialog-reconfigure'
b566987 cmake-gui: Configure again if a variable is changed before Generate is pushed.
2013-11-22 08:40:29 -05:00
Kitware Robot 851e77a4fc CMake Nightly Date Stamp 2013-11-22 00:01:12 -05:00
Benjamin Eikel 9619719882 FindSDL: Add additional search paths on MSVC (#14029)
Add an architecture-specific library directory path suffix for each
component.  Use different search path for SDL_sound.  Project files in
VisualC directory suggest that a win32lib will hold the libraries.

Reported-by: Paul Hampson <Paul.Hampson@Pobox.com>
2013-11-21 15:30:36 -05:00
Brad King f20cd4b5d1 Merge topic 'genex-docs'
8e729df Help: Reformat cmake-generator-expressions.7 manual
2013-11-21 15:21:53 -05:00
Stephen Kelly 8e729df0fc Help: Reformat cmake-generator-expressions.7 manual
Use definition lists instead of a preformatted block to enumerate
the genex documentation.

Consistently capitalize the description.

Use ``...`` to format genex parameters in the description.

Turn references to commands into links.

Add high level documentation about the motivation for generator
expressions.

Regroup expressions into subsections for different genex types. Add
a high-level description and example of the expressions in each
section.

Explode the documentation for filesystem artifacts, instead of only
referring to the variations.
2013-11-21 15:20:46 -05:00
Stephen Kelly 4fe963f656 Use new cmHasLiteralPrefix function 2013-11-21 20:53:15 +01:00
Stephen Kelly 7d4b2b2ef3 cmStandardIncludes: Add new cmHasLiteralPrefix function.
This allows avoiding error-prone hard-coding of literal
string lengths.

Borland is not able to process the template version of this
method. Make it use the macro version instead. This means
that Borland will also use the macro versions of cmArray*.
2013-11-21 20:53:15 +01:00
Brad King 8ad8a9b1a6 cmake-gui: Reference LGPLv2.1 when redistributing Qt
Download http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt and place
it as Licenses/LGPLv2.1.txt in our source tree.  When building cmake-gui,
use option CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL to enable notification
in the "About" dialog of how the distribution of Qt is licensed.
Install the license file as ${CMAKE_ROOT}/Licenses/LGPLv2.1.txt so that
the dialog can display a path to it.
2013-11-21 11:04:24 -05:00
Brad King d46dfd32c6 Merge topic 'missing-target-error'
a02f3d2 Add policy CMP0040 to disallow custom commands on missing targets
2013-11-21 09:39:39 -05:00
Brad King 392932fb30 Merge topic 'cmake-credits'
6fc4ab9 Credit Kitware and csimsoft for their maintenance roles
2013-11-21 09:39:21 -05:00
Brad King 91330e9505 Merge topic 'FindwxWidgets-3.0.0'
2cd5597 FindwxWidgets: Add support for wxWidgets 3.0.0 (#14587)
2013-11-21 09:39:07 -05:00
Brad King 26bed2ac57 Merge topic 'find_backtrace'
c6f339c Add FindBacktrace.cmake module.
2013-11-21 09:38:56 -05:00
Nils Gladitz a02f3d2de0 Add policy CMP0040 to disallow custom commands on missing targets 2013-11-21 09:24:08 -05:00
Stephen Kelly aa29e64d77 Add a null check to the generator target accessor. 2013-11-21 13:21:43 +01:00
Stephen Kelly 7521da2852 Introduce CMAKE_STAGING_PREFIX variable.
This variable can be useful in cross-compiling contexts where the
sysroot is read-only or where the sysroot should otherwise remain
pristine.

If the new CMAKE_STAGING_PREFIX variable is set, it is used instead
of CMAKE_INSTALL_PREFIX when generating the installation rules in
cmake_install.cmake.

This way, the CMAKE_INSTALL_PREFIX variable
always refers to the installation prefix on the target device, regardless
of whether host==target.

If any -rpath paths passed to the linker contain the CMAKE_STAGING_PREFIX,
the matching path fragments are replaced with the CMAKE_INSTALL_PREFIX.
Matching paths in the -rpath-link are not transformed.

The cross-prefix usr-move workaround is assumed not to require extension
regarding CMAKE_STAGING_PREFIX. The staging area is a single prefix, so
there is no scope for cross-prefix symlinks. The CMAKE_INSTALL_PREFIX
is still used to determine the workaround path, and that variable
remains the relevant one even if CMAKE_STAGING_PREFIX is used. If the
generated export files are deployed to the target, the workaround
will still be in place, and still be employed if required.
2013-11-21 11:48:03 +01:00
Kitware Robot 75bfe4cbd0 CMake Nightly Date Stamp 2013-11-21 00:01:08 -05:00
Clinton Stimpson b566987374 cmake-gui: Configure again if a variable is changed before Generate is pushed. 2013-11-20 21:24:54 -07:00
Arnaud Desmier 2cd559789b FindwxWidgets: Add support for wxWidgets 3.0.0 (#14587)
Add the "wxWidgets-3.0.0" path suffix and the "30" library names.
While at it, add the "wxWidgets-2.9.5" suffix too.
2013-11-20 10:51:55 -05:00
Brad King a61025135b Merge topic 'constify'
15eeace cmTarget: Trivially make more API const.
be9dfb6 cmTarget: Make GetExportMacro const.
0794c13 cmTarget: Make NameResolvesToFramework const.
1c27521 cmGlobalGenerator: Make NameResolvesToFramework const.
37554ac cmMakefile: Make FindTarget const.
8841d73 cmMakefile: Make IsAlias const.
36e31cd cmTarget: Make GetInterfaceLinkLibraries const.
04d398d cmTarget: Make GetTargetSourceFileFlags const.
50d1520 cmTarget: Make custom command accessors API const.
0f87643 cmGeneratorTarget: Make GetIncludeDirectories const.
2013-11-20 09:08:47 -05:00
Brad King 6703508a31 Merge topic 'add-missing-parent-group'
2751b93 CPackComponent: handle the documented PARENT_GROUP parameter
2013-11-20 09:08:38 -05:00
Brad King 7df3a10a5e Merge topic 'dev/better-eclipse-language-support'
a990722 eclipse: Support custom natures via a global property
51726cc eclipse: Add natures for Eclipse based on enabled languages
4a352d4 Notify extra generators about languages
2013-11-20 09:08:34 -05:00
Brad King 483b7e7093 Merge topic 'remove-LOCATION-property-use'
a247911 Tests: Don't read the LOCATION property from build targets.
cffcdd8 KDevelop: Use GetLocation(0) instead of LOCATION property.
2013-11-20 09:08:25 -05:00
Brad King b20f4d4dee Merge topic 'fix-help-format-warning-exit'
e7434d4 cmDocumentation: Fix exit after help output format warnings
2013-11-20 09:08:10 -05:00
Brad King a20fd85519 Merge topic 'vs9-map-Fd'
bf1db49 VS: Map /Fd to ProgramDataBaseFileName for VS 7,8,9 (#14577)
2013-11-20 09:07:52 -05:00
Brad King 5f4e31ce3b Merge topic 'FindLATEX-ps2pdf'
0767474 FindLATEX: Find ps2pdf with MikTeX.
2013-11-20 09:07:31 -05:00
Kitware Robot b7cecfcb21 CMake Nightly Date Stamp 2013-11-20 00:01:09 -05:00
Brad King 6fc4ab9b28 Credit Kitware and csimsoft for their maintenance roles
Add maintenance credit to command-line "--version" output and the
cmake-gui "About" dialog.
2013-11-19 18:12:58 -05:00
Nils Gladitz 2751b934a3 CPackComponent: handle the documented PARENT_GROUP parameter 2013-11-19 21:22:44 +01:00
Stephen Kelly 15eeacefc5 cmTarget: Trivially make more API const. 2013-11-19 20:40:32 +01:00
Stephen Kelly be9dfb6b2e cmTarget: Make GetExportMacro const.
The std::string member is only used for memory management.
2013-11-19 20:40:32 +01:00
Stephen Kelly 0794c1360d cmTarget: Make NameResolvesToFramework const. 2013-11-19 20:40:32 +01:00
Stephen Kelly 1c2752169c cmGlobalGenerator: Make NameResolvesToFramework const. 2013-11-19 20:40:32 +01:00
Stephen Kelly 37554acf43 cmMakefile: Make FindTarget const. 2013-11-19 20:40:32 +01:00
Stephen Kelly 8841d738cc cmMakefile: Make IsAlias const. 2013-11-19 20:40:32 +01:00
Stephen Kelly 36e31cd127 cmTarget: Make GetInterfaceLinkLibraries const. 2013-11-19 20:40:31 +01:00
Stephen Kelly 04d398d356 cmTarget: Make GetTargetSourceFileFlags const. 2013-11-19 20:40:31 +01:00
Stephen Kelly 50d152035d cmTarget: Make custom command accessors API const.
Add specific mutators instead of providing non-const refs.
2013-11-19 20:40:31 +01:00
Brad King e776a2dae4 Merge topic 'macro-args-docs'
f0db2e3 Help: Document macro argument caveats in more detail
2013-11-19 12:44:48 -05:00
Brad King 46ec48c93d Merge topic 'cross-compiling-toolchain-variables'
7cd65c9 Add CMAKE_SYSROOT variable to set --sysroot when cross compiling.
5096967 Allow toolchain files to specify an external toolchain.
76552d5 Add compiler target compile options.
f41ecd1 CMakeDetermineCompilerId: Look for internal file only on host
2013-11-19 12:41:57 -05:00
Stephen Kelly 7cd65c97fa Add CMAKE_SYSROOT variable to set --sysroot when cross compiling.
As CMAKE_ROOT_FIND_PATH can be a list, a new CMAKE_SYSROOT is
introduced, which is never a list.

The contents of this variable is passed to supporting compilers
as --sysroot. It is also accounted for when processing implicit
link directories reported by the compiler, and when generating
RPATH information.
2013-11-19 12:39:39 -05:00
Stephen Kelly 5096967ecd Allow toolchain files to specify an external toolchain.
Clang can compile code, but uses the gcc tools for other tasks such
as linking. The -gcc-toolchain option can be used for that, but
generalize so that other compilers can be treated the same.

If such a location is specified, use it as a hint for finding
the binutils executables.
2013-11-19 12:39:34 -05:00
Stephen Kelly 76552d595d Add compiler target compile options.
For clang, this allows passing -target <triple> to the compiler, and
for qcc, -V<arch> using toolchain files containing something like

 set(triple arm-linux-gnueabihf)
 set(CMAKE_C_COMPILER "/usr/bin/clang")
 set(CMAKE_C_COMPILER_TARGET ${triple})
 set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
 set(CMAKE_CXX_COMPILER_TARGET ${triple})

or

 set(arch gcc_ntoarmv7le)
 set(CMAKE_C_COMPILER /opt/qnx650/host/linux/x86/usr/bin/qcc)
 set(CMAKE_C_COMPILER_TARGET ${arch})
 set(CMAKE_CXX_COMPILER /opt/qnx650/host/linux/x86/usr/bin/QCC)
 set(CMAKE_CXX_COMPILER_TARGET ${arch})

Both clang and qcc are inherently cross compiler( driver)s.

When cross-compiling with clang, use the CMAKE_${lang}_COMPILER_TARGET
as the _CMAKE_TOOLCHAIN_PREFIX to find the appropriate binutils.

When cross-compiling with QNX qcc, use the CMAKE_${lang}_COMPILER_TARGET
to set the appropriate _CMAKE_TOOLCHAIN_PREFIX.
2013-11-19 12:38:53 -05:00
Stephen Kelly f41ecd1db4 CMakeDetermineCompilerId: Look for internal file only on host
The find_file this module uses to locate the compiler id source file
must always look on the host and never in CMAKE_FIND_ROOT_PATH, even
when a toolchain file has

 set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

Add NO_CMAKE_FIND_ROOT_PATH to the find_file call to avoid rerooting.
2013-11-19 12:36:27 -05:00
Stephen Kelly a247911a88 Tests: Don't read the LOCATION property from build targets. 2013-11-19 18:07:27 +01:00