Commit Graph

21510 Commits

Author SHA1 Message Date
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
Daniele E. Domenichelli 07b44e7a1f SelectLibraryConfigurations: Do not cache the _LIBRARY variable
SelectLibraryConfigurations module currently cache and mark as advanced
the variable ${basename}_LIBRARY.
${basename}_LIBRARY_RELEASE and ${basename}_LIBRARY_DEBUG are usually
cached, because they often come from find_library().
${basename}_LIBRARY on the other hand is always of type
"optimized;${${basename}_LIBRARY_RELEASE};debug;${${basename}_LIBRARY_DEBUG}"
or just "${basename}_LIBRARY_RELEASE" or "${basename}_LIBRARY_DEBUG" if
only one version of the library is not found, if both have the same
value, or if configuration types are not supported.

Caching and marking as advanced just ${basename}_LIBRARY_RELEASE and
${basename}_LIBRARY_DEBUG is enough, just by modifying these two
variables, the user has enough control on finding the library, and
having 3 variables is redundant and confusing.
2013-07-10 15:06:01 +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 93c1165705 ExternalProject: Document multiple COMMAND lines
We support multiple commands per external project step by using
the COMMAND keyword.  Document this behavior and show an example.
While at it, document that shell operators and current working
directory behavior is not defined.
2013-07-08 11:55:33 -04: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
Eric NOULARD 976e51d3a9 CPackRPM make the changelog line conform to expected format 2013-07-08 10:32:53 +02: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
Eric NOULARD 1703e069a9 CPackRPM protect '@' character in filename processed in the spec file. 2013-07-05 18:52:36 +02: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
Brad King 99a814e5b9 Merge branch 'release' 2013-07-03 15:35:34 -04:00
Kitware Robot 287bbab7d4 CMake Nightly Date Stamp 2013-07-03 00:01:05 -04:00
Stephen Kelly 4f7ceb56d1 Test non-IMPORTED libraries in the INTERFACE of IMPORTED libraries.
If a non-IMPORTED library is added to the INTERFACE_LINK_LIBRARIES
of a IMPORTED target, the non-IMPORTED target needs to become a
target dependency and link dependency of the consuming target.

This is already the case since commit 30962029 (Make targets depend
on the link interface of their dependees, 2012-12-26), and fixed in
the parent commit, so test that it works.
2013-07-02 17:03:53 +02: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 3173c93756 Merge topic 'Fortran-explicit-types'
7b5bc2c Fortran: Use explicit type in Fortran 90 check
2013-07-02 09:05:28 -04: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
Brad King 8b23045490 Merge topic 'FindGTK2vd2'
60e4555 FindGTK2: Add GTK2_DEFINITIONS variable
2013-07-02 09:05:05 -04:00
Brad King 31d55ee8ac Merge topic 'FindGTK2vs11'
eb16301 FindGTK2: Do not fail on MSVC11 if vc100 libraries are available
2013-07-02 09:04:12 -04:00
Brad King 357db89d27 Merge topic 'make-depends-collapse-paths'
551d334 cmDependsC: Collapse relative include paths
2013-07-02 09:03:52 -04:00
Brad King 000793aae7 Merge topic 'SelectLibraryConfigurations-cached-library'
c4bcc56 SelectLibraryConfigurations: Fix for cached <base>_LIBRARY
2013-07-02 08:39:36 -04:00
Brad King 3bff90f866 CMake 2.8.11.2 2013-07-02 08:39:24 -04:00
Brad King b6f01d4560 Merge topic 'vs-generator-brief-doc-update'
52f1464 VS: Clarify Visual Studio product year for each version
2013-07-02 08:38:57 -04:00
Brad King acff729701 Merge branch 'vs-generator-brief-doc-update' into release 2013-07-02 08:36:12 -04:00
Brad King c9697fa611 Merge branch 'vs12-generator' into release 2013-07-02 08:35:49 -04:00
Brad King 8857afa05e Merge branch 'curl-bug-1192' into release 2013-07-02 08:35:43 -04:00
Brad King 04897c02cc Merge branch 'sha2-alignment' into release 2013-07-02 08:35:39 -04:00
Brad King d9ece45a36 Merge branch 'FixAsmSupport' into release 2013-07-02 08:35:33 -04:00
Brad King 5bcca28096 Merge branch 'SelectLibraryConfigurations-cached-library' into release 2013-07-02 08:35:28 -04:00
Robert Maynard 52f146414f VS: Clarify Visual Studio product year for each version
Add to the brief documentation of the Visual Studio 10, 11, and 12
generators the corresponding VS product year.  Clarify that VS11 is for
Visual Studio 2012, and VS12 is for Visual Studio 2013.
2013-07-02 08:24:38 -04:00
Bjoern Thiel c4bcc56156 SelectLibraryConfigurations: Fix for cached <base>_LIBRARY
The line

  set( ${basename}_LIBRARY )

removes the normal variable, but if the corresponding cached variable is
present then line

  list( APPEND ${basename}_LIBRARY optimized "${_libname}" )

uses that and fails.  Replace the original line with

  set( ${basename}_LIBRARY "" )

to set the normal variable to empty instead of unsetting it.
2013-07-02 08:21:16 -04:00