14733 Commits

Author SHA1 Message Date
Brad King
7fa77b3fb3 Merge topic 'revert-CMAKE_SYSROOT'
0416c94 Revert "Use --sysroot when cross compiling."
2013-07-15 09:33:56 -04:00
Brad King
0e294b6fa7 Merge topic 'update-kwsys'
635e19d Merge branch 'upstream-kwsys' into update-kwsys
0a44fa4 KWSys 2013-07-10 (beef6819)
2013-07-15 09:33:53 -04:00
Brad King
fa6106ec56 Merge topic 'target-policies'
484bb88 Genex: Make CMP0021 and CMP0022 usable with TARGET_POLICY
2013-07-15 09:33:47 -04:00
Brad King
b6e0972262 Merge topic 'INTERFACE_LINK_LIBRARIES-prop'
3e30d9e TLL: Don't populate old link interface if CMP0022 is NEW.
574fec9 Export: Generate INTERFACE_LINK_LIBRARIES property on targets.
d0a76ea Introduce the INTERFACE_LINK_LIBRARIES property.
ddde61c Introduce the LINK_ONLY generator expression.
5aa9731 GenexEval: Add abstracted access to link interface for a target.
2013-07-15 09:33:42 -04:00
Brad King
f6024ef420 Merge topic 'try_compile-COPY_FILE_ERROR'
c28715b try_compile: Add COPY_FILE_ERROR option to capture failure
2013-07-15 09:33:32 -04:00
Brad King
c0fe24e539 Merge topic 'cmake-error-advice'
18e1bfb cmake: On configure error suggest looking at CMake*.log files
2013-07-15 09:31:18 -04:00
Brad King
656abc28ad Merge topic 'vs-flag-MAP-with-value'
f2caf79 VS: Fix /MAP:mapfile flag mapping (#14282)
2013-07-15 09:31:14 -04:00
Brad King
37ba3d4a6a Merge topic 'doc-include-clarify'
e934b1f include: Clarify variable access scope for included file
2013-07-15 09:31:10 -04:00
Brad King
88f4ec0dd5 Merge topic 'try_compile-escape-flags'
290857b try_compile: Escape CMAKE_<lang>_FLAGS in test projects (#14268)
2013-07-15 09:31:01 -04:00
Brad King
cbdea2cca9 Merge topic 'doc-project-top-level'
4a71168 project: Document top-level CMakeLists.txt requirement
2013-07-15 09:30:50 -04:00
Brad King
aa0b9fa311 Merge topic 'IMPORTED-build-dependencies'
4f7ceb5 Test non-IMPORTED libraries in the INTERFACE of IMPORTED libraries.
3405351 Add entire link interface transitive closure as target depends.
2013-07-15 09:30:34 -04:00
Brad King
c28715b16c try_compile: Add COPY_FILE_ERROR option to capture failure
When the COPY_FILE operation fails optionally capture the error message
with a COPY_FILE_ERROR option instead of reporting the error
immediately.  This gives callers a chance to do something else or report
the error.

Teach the RunCMake.try_compile test to cover bad argument combinations
involving COPY_FILE_ERROR.  Teach the TryCompile test to cover the case
of a COPY_FILE error message captured by COPY_FILE_ERROR.
2013-07-15 09:16:36 -04:00
Brad King
290857bb03 try_compile: Escape CMAKE_<lang>_FLAGS in test projects (#14268)
If CMAKE_<lang>_FLAGS contains quotes or other CMake language characters
they must be escaped when written into the generated CMakeLists.txt file
so that the test project parses them properly.

Teach the TryCompile test to cover this case by adding a flag with
quotes into CMAKE_C_FLAGS during a C language try_compile.
2013-07-15 09:14:56 -04:00
Kitware Robot
b5dd80105f CMake Nightly Date Stamp 2013-07-15 00:01:04 -04:00
Kitware Robot
de2a02b191 CMake Nightly Date Stamp 2013-07-14 00:01:04 -04:00
Kitware Robot
89f59694d2 CMake Nightly Date Stamp 2013-07-13 00:01:07 -04:00
Stephen Kelly
d7dd01083a Add target property debugging for COMPILE_DEFINITIONS
Use constructs similar to those for COMPILE_OPTIONS. This is a little
different because there is a command to remove_definitions(), so
we can't populate the equivalent target property until generate-time
in cmGlobalGenerator.
2013-07-12 16:57:36 +02:00
Stephen Kelly
0416c94f64 Revert "Use --sysroot when cross compiling."
This reverts commit de4da665d3205afa239749c41513a315c3831f51.

This feature is not yet ready for release. It needs to be
merged with the CMAKE_OSX_SYSROOT feature.
2013-07-12 15:44:38 +02:00
Kitware Robot
b9412889e9 CMake Nightly Date Stamp 2013-07-12 00:01:05 -04:00
Brad King
635e19d607 Merge branch 'upstream-kwsys' into update-kwsys 2013-07-11 09:04:05 -04:00
Stephen Kelly
484bb888a0 Genex: Make CMP0021 and CMP0022 usable with TARGET_POLICY
Use preprocessor loops and add a unit test for the appropriate
policies. All policies whose value is recorded at target creation
time should be part of this list.
2013-07-11 11:56:14 +02:00
Stephen Kelly
c64326bc0b Document some variables for deprecation control. 2013-07-11 10:25:30 +02:00
Stephen Kelly
184121538c Refactor cmTarget::GetCompileDefinitions to use an out-vector, not a string.
Refactor to create AddCompileDefinitions.
2013-07-11 08:23:56 +02:00
Kitware Robot
4dc515f8e1 CMake Nightly Date Stamp 2013-07-11 00:01:04 -04:00
Stephen Kelly
afc9243c32 Add an overload of cmIDEOptions::AddDefines taking a vector of strings. 2013-07-10 15:53:53 +02:00
Stephen Kelly
d95651e15a Overload cmLocalGenerator::AppendDefines to add a list. 2013-07-10 12:59:20 +02:00
Kitware Robot
a18e9586db CMake Nightly Date Stamp 2013-07-10 00:01:06 -04:00
Brad King
18e1bfbb3c cmake: On configure error suggest looking at CMake*.log files
When CMake reports failure to configure a project, especially when the
toolchain does not initialize properly, the true reason may be clear
from reading the CMakeFiles/CMake(Output|Error).log files.  Advise users
to look at these files if they exist when configuration fails.

Add RunCMake.Configure test to check that the log files are mentioned
when configuration fails.
2013-07-09 15:00:39 -04:00
Brad King
f2caf795fe VS: Fix /MAP:mapfile flag mapping (#14282)
We have two mappings for the "/MAP" flag.  The first does not care
whether there is a value and activates the GenerateMapFile boolean
setting.  The second takes a value and puts it in the MapFileName
setting.  The latter must treat the ":" as part of the flag.

This is similar to commit 8ae66bf4 (Fix optionally-valued booleans in VS
10 flag table, 2009-10-23).
2013-07-09 10:13:43 -04:00
Brad King
e934b1f503 include: Clarify variable access scope for included file
The wording "Commands in the file are processed immediately as if they
were written in place of the include command" sounds as if some kind of
macro replacement is performed.  This is not accurate.  Update the
wording to describe behavior of the included code in terms of the
variable access scope.
2013-07-09 08:31:23 -04:00
Kitware Robot
d2fb62e916 CMake Nightly Date Stamp 2013-07-09 00:01:04 -04:00
Stephen Kelly
3e30d9ed67 TLL: Don't populate old link interface if CMP0022 is NEW.
Always populate the INTERFACE_LINK_LIBRARIES for interface
entries. Don't populate the old interface properties
matching (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?
if CMP0022 is NEW.

Because the INTERFACE_LINK_LIBRARIES property is now populated by
the target_link_libraries when operating on a static library,
make an equivalent change which populates the property with
the same value when the old link_libraries() command is used. This
silences the policy warning in that case.
2013-07-08 22:39:58 +02:00
Stephen Kelly
574fec97fd Export: Generate INTERFACE_LINK_LIBRARIES property on targets.
This property is generated only for targets which have recorded
policy CMP0022 as NEW, and a compatibility mode is added to
additionally export the old interfaces in that case too.

If the old interfaces are not exported, the generated export files
require CMake 2.8.12. Because the unit tests use a version which
is not yet called 2.8.12, temporarily require a lower version.
2013-07-08 22:39:57 +02:00
Stephen Kelly
d0a76ea07c Introduce the INTERFACE_LINK_LIBRARIES property.
This property replaces the properties which
match (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?, and is enabled
for IMPORTED targets, and for non-IMPORTED targets only with a policy.

For static libraries, the INTERFACE_LINK_LIBRARIES property is
also used as the source of transitive usage requirements content.
Static libraries still require users to link to all entries in
their LINK_LIBRARIES, but usage requirements such as INCLUDE_DIRECTORIES
COMPILE_DEFINITIONS and COMPILE_OPTIONS can be restricted to only
certain interface libraries.

Because the INTERFACE_LINK_LIBRARIES property is populated unconditionally,
we need to compare the evaluated result of it with the link implementation
to determine whether to issue the policy warning for static libraries. For
shared libraries, the policy warning is issued if the contents of
the INTERFACE_LINK_LIBRARIES property differs from the contents of the
relevant config-specific old LINK_INTERFACE_LIBRARIES property.
2013-07-08 22:39:09 +02:00
Brad King
4a71168735 project: Document top-level CMakeLists.txt requirement
CMake requires the top-level CMakeLists.txt to contain a direct call to
the project() command and will insert one if there is not.  Document
this requirement since some authors have tried to use include() to load
a file calling the project command.
2013-07-08 08:22:30 -04:00
Kitware Robot
448a677148 CMake Nightly Date Stamp 2013-07-08 00:01:05 -04:00
Stephen Kelly
ddde61c0b2 Introduce the LINK_ONLY generator expression.
This is an internal expression for use by target_link_libraries
for static libraries.
2013-07-08 00:00:18 +02:00
Stephen Kelly
5aa9731c9f GenexEval: Add abstracted access to link interface for a target.
This can be extended with special handling for static libraries
so that we can process the link dependencies separately from the
usage dependencies.
2013-07-08 00:00:17 +02:00
Kitware Robot
14eb4a1dc7 CMake Nightly Date Stamp 2013-07-07 00:01:03 -04:00
Kitware Robot
dd24c60fe7 CMake Nightly Date Stamp 2013-07-06 00:01:03 -04:00
Kitware Robot
bdc66ea7c5 CMake Nightly Date Stamp 2013-07-05 00:01:04 -04:00
Kitware Robot
1101350f76 CMake Nightly Date Stamp 2013-07-04 00:01:05 -04:00
Kitware Robot
287bbab7d4 CMake Nightly Date Stamp 2013-07-03 00:01:05 -04:00
Stephen Kelly
340535156d Add entire link interface transitive closure as target depends.
This was missing from commit 30962029 (Make targets depend on the
link interface of their dependees., 2012-12-26), which caused
only immeditate entries of the link interface to become target
depends.
2013-07-02 17:01:37 +02:00
Stephen Kelly
1925cffa08 Add a SYSTEM parameter to target_include_directories (#14180)
This is similar to the include_directories(SYSTEM) signature
in that it allows telling the compiler to ignore warnings from
such headers.
2013-07-02 16:40:03 +02:00
Stephen Kelly
286f227709 Extend the cmTargetPropCommandBase interface property handling.
This can be used to handle INTERFACE SYSTEM include directories
in particular.
2013-07-02 16:40:02 +02:00
Stephen Kelly
83498d4135 Store system include directories in the cmTarget.
Entries from the cmMakefile are processed and maintained similarly
to other include directories. The include_directories(SYSTEM)
signature affects all following targets, and all prior targets
in the same makefile.
2013-07-02 16:40:02 +02:00
Stephen Kelly
f1fcbe3fde Add Target API to determine if an include is a system include.
The implementation can be modified later so that system includes
can be determined on a per-target basis.
2013-07-02 16:40:02 +02:00
Stephen Kelly
2679a34a94 Remove unused variable. 2013-07-02 16:40:02 +02:00
Brad King
0e9ff1cb3b Merge topic 'update-kwsys'
c314da0 Merge branch 'upstream-kwsys' into update-kwsys
2e3c935 KWSys 2013-07-01 (f6c4c247)
2013-07-02 09:05:14 -04:00