Commit Graph

14368 Commits

Author SHA1 Message Date
Kitware Robot 5dd8c01429 CMake Nightly Date Stamp 2013-05-15 00:01:03 -04:00
Kitware Robot 26ad32031c CMake Nightly Date Stamp 2013-05-14 00:01:03 -04:00
Brad King 42bb42d197 VS: Always initialize CMAKE_CONFIGURATION_TYPES in IDE generators
Initialize the CMAKE_CONFIGURATION_TYPES cache entry early during
EnableLanguage like the Xcode generator does.  Avoid depending on
the MSVC compiler information module to do it.  Otherwise code like

  project(MyProj NONE)

sets CMAKE_CONFIGURATION_TYPES late (in GenerateConfigurations), and
to only "Debug" and "Release" instead of the standard set of 4.

Reported-by: Paul Smith <paul@mad-scientist.net>
2013-05-13 11:07:46 -04:00
Kitware Robot a3f106dedf CMake Nightly Date Stamp 2013-05-13 00:01:02 -04:00
Kitware Robot 90dad912f8 CMake Nightly Date Stamp 2013-05-12 00:01:03 -04:00
Rolf Eike Beer 12cf7bc507 CTest: break after first regex match on output
PASS_REGULAR_EXPRESSION and FAIL_REGULAR_EXPRESSION both take a list of expressions.
Stop searching if the first of those has matched the output as the result will not
change anymore.
2013-05-11 12:15:38 +02:00
Rolf Eike Beer 74228e8486 Doc: fix example for FAIL_REGULAR_EXPRESSION
The example used PASS_REGULAR_EXPRESSION instead of FAIL...
2013-05-11 12:02:05 +02:00
Kitware Robot 1c575ab72f CMake Nightly Date Stamp 2013-05-11 00:01:06 -04:00
Rolf Eike Beer e319e32b8c CTest: make sure never to report negative test times (#14132)
Because of clock scew between processors or just because of someone changing
the system time the end timestamp may be before the start time. Reporting a
negative time doesn't any sense, just report zero there as it already happens
for really fast tests.
2013-05-10 20:50:22 +02:00
Kitware Robot a3e7c94fd7 CMake Nightly Date Stamp 2013-05-10 00:01:03 -04:00
Rolf Eike Beer 61ddb9319b CTest: fix comment documenting cmBoundsCheckerParser class
This was obviously copied from Source/cmGlobalXCodeGenerator.cxx during
implementation but the comment was forgotten.
2013-05-09 19:25:50 +02:00
Rolf Eike Beer 3b5b758915 CTest: drop suppression for gcc 2.9.6 errors from default Valgrind flags
The --workaround-gcc296-bugs has been part of the default Valgrind flags since
Valgrind support was added in commit 5b232ded15
(ENH: Add initial memory check support which works for Valgrind, 2003-12-15).
The Valgrind manpage says that this option should be avoided if not really
needed as it may cause real errors to get ignored. If someone uses a compiler
that really needs the flag this flag should be set by the user explicitely.
Most users will never set any flags and probably never notice that they use a
flag they shouldn't.
2013-05-09 19:24:53 +02:00
Rolf Eike Beer f4994223bb CTest: remove unreachable code and CTestTestMemcheckUnknown test
The memory checker command can't be quoted at this point, because previously it
has been tested that the given file exists, which will fail if the name is
quoted. The CTestTestMemcheckUnknown test aimed to test this case, has always
failed to do so and serves no useful purpose therefore.
2013-05-09 19:22:29 +02:00
Rolf Eike Beer dde6306a48 CTest: use an output file for Valgrind (#14110)
This makes sure Valgrind output will not screw up tests that match on the
output.
2013-05-09 19:22:01 +02:00
Kitware Robot cf4869ba08 CMake Nightly Date Stamp 2013-05-09 00:01:03 -04:00
Kitware Robot 619fa2cce8 CMake Nightly Date Stamp 2013-05-08 00:01:03 -04:00
Robert Maynard 6162e0ff2d CMake 2.8.11-rc4 2013-05-07 11:56:31 -04:00
Robert Maynard b882ef7565 Merge branch 'release' 2013-05-07 11:33:14 -04:00
Andreas Mohr 7cc2805cd6 Docs: Clarify wording "flag used" => "flag (to|will) be used"
The phrase "flag used" is somewhat imprecise, so extend it to stress
intentions.

Also correct:

- "Flag" => "Flags"
- "[CMAKE_BUILD_TYPE]" => "<CONFIG>"
2013-05-07 08:42:21 -04:00
Andreas Mohr 2378a698a9 Docs: Clarify that CMAKE_*_(PREFIX|SUFFIX) affect filenames
Add "filename" to the descriptions.
2013-05-07 08:42:21 -04:00
Andreas Mohr 56ca34dbbd Docs: Update description of CMAKE_(BUILD_TYPE|CONFIGURATION_TYPES)
Bring woefully outdated descriptions somewhat up to speed.
2013-05-07 08:42:20 -04:00
Andreas Mohr 2bab472ecb VS10: add detailed comment about MIDL processing 2013-05-07 08:42:20 -04:00
Andreas Mohr e619111d91 Explain distribution of Win9x binary on all Windows versions. 2013-05-07 08:42:20 -04:00
Andreas Mohr f57800d6f5 Fix spelling and typos (product names)
API, Borland, MinGW, UNIX, Mac OS X.
2013-05-07 08:42:20 -04:00
Andreas Mohr bf019d765d Fix spelling and typos (non-binary) 2013-05-07 08:39:19 -04:00
Andreas Mohr ddac8d3d2d Fix spelling and typos (affecting binary data / module messages) 2013-05-07 08:39:19 -04:00
Andreas Mohr 86832cecd5 Fix spelling and typos (affecting users) 2013-05-07 08:39:19 -04:00
Brad King b7593bf3f5 Merge branch 'upstream-kwsys' into update-kwsys 2013-05-07 08:38:10 -04:00
Kitware Robot ff298fff79 CMake Nightly Date Stamp 2013-05-07 00:01:03 -04:00
Brad King 6c6bfe1509 Merge topic 'doc-tll-usage-requirements'
2618e02 target_link_libraries: Update usage requirements documentation
2013-05-06 10:09:44 -04:00
Brad King 0483bf8062 Merge topic 'fix-per-config-tll-include-dirs'
dea1df4 Memoize usage requirement include directories in a config-specific map
26dba6a Fix include dir propagation from conditionally linked targets
b8259c3 Centralize maintenance of usage requirement include directories
2013-05-06 10:09:28 -04:00
Stephen Kelly dea1df4e5e Memoize usage requirement include directories in a config-specific map
Commit 42ebb188 (Memoize includes and defines from interface libraries.,
2013-02-22) introduced caching of the includes.  Fix the memoization to
be configuration-specific so that we do not accumulate entries across
multiple evaluations in a multi-config generator.
2013-05-06 09:59:28 -04:00
Stephen Kelly 26dba6a162 Fix include dir propagation from conditionally linked targets
Generator expressions, including configuration-specific expressions may
be used as link libraries of targets.  The old-style keywords of
target_link_libraries are handled in terms of new generator expressions.
However, the generator expressions expect target names to be valid
against a regular expression, whereas target_link_libraries does not
require validation.  In generator expression constructed without any
action from the user we need to ensure that only valid expressions are
generated.  Ensure that strings which are not valid target names are not
used in generator expressions which validate the argument.

Code like

 target_link_libraries(B debug A)

generates usage requirement references such as "$<$<CONFIG:DEBUG>:A>".
When cmTarget::GetIncludeDirectories uses such references it generates
expressions like:

 $<TARGET_PROPERTY:$<$<CONFIG:DEBUG>:A>,INTERFACE_INCLUDE_DIRECTORIES>

When the conditions are false such references evaluate as an empty
string and the expression fails with an error such as:

 $<TARGET_PROPERTY:tgt,prop> expression requires a non-empty target name.

Fix this by teaching cmTarget::GetIncludeDirectories to wrap the above
expression inside a conditional:

 $<$<BOOL:$<$<CONFIG:DEBUG>:A>>:...>

so that $<TARGET_PROPERTY:...> will not be evaluated with an empty
target.
2013-05-06 09:55:45 -04:00
Stephen Kelly b8259c3d69 Centralize maintenance of usage requirement include directories
Maintain a target's internal list of usage requirement include
directories whenever the LINK_LIBRARIES property is set by either
target_link_libraries or set_property.
2013-05-06 09:54:11 -04:00
Kitware Robot b85f691d78 CMake Nightly Date Stamp 2013-05-06 00:01:03 -04:00
Kitware Robot 4cb77c4a0e CMake Nightly Date Stamp 2013-05-05 00:01:02 -04:00
Kitware Robot 21bdeadf00 CMake Nightly Date Stamp 2013-05-04 00:01:02 -04:00
Kitware Robot 41839d6fb6 CMake Nightly Date Stamp 2013-05-03 00:01:03 -04:00
Kitware Robot d94eae4356 CMake Nightly Date Stamp 2013-05-02 00:01:02 -04:00
Jack O'Connor b9c1f3b78a Eclipse: Add a missing space in the documentation 2013-05-01 14:29:01 -04:00
Kitware Robot e9e088a4df CMake Nightly Date Stamp 2013-05-01 00:01:08 -04:00
Brad King 2618e0257e target_link_libraries: Update usage requirements documentation
Re-word the documentation to make clear that CMake integrates usage
requirements during generation and not synchronously during
configuration or execution of target_link_libraries.
2013-04-30 09:15:03 -04:00
Kitware Robot 2ba65cc9d9 CMake Nightly Date Stamp 2013-04-30 00:01:05 -04:00
Kitware Robot c80594ba12 CMake Nightly Date Stamp 2013-04-29 00:01:13 -04:00
Victor Zverovich c46b46b628 Use GmakeErrorParser instead of deprecated MakeErrorParser (fixes bug 0013699) 2013-04-28 15:50:31 +02:00
Kitware Robot 77df4ef5ac CMake Nightly Date Stamp 2013-04-28 00:01:03 -04:00
Kitware Robot 82f5936a8b CMake Nightly Date Stamp 2013-04-27 00:01:11 -04:00
Brad King 0c04428d04 Merge branch 'upstream-kwsys' into update-kwsys 2013-04-26 16:08:35 -04:00
Kitware Robot c8b34729d9 CMake Nightly Date Stamp 2013-04-26 00:01:09 -04:00
Kitware Robot 78185f598c CMake Nightly Date Stamp 2013-04-25 00:01:03 -04:00
Alex Neundorf f92d7e7f95 cmake-gui: use shortcut F only for "Find in Output"
Before it was used also for "Find Next" and "Find Previous"

Alex
2013-04-24 15:32:43 -04:00
Marc Bartholomaeus 6e57724fc3 cmake-gui: Add function for going to next error message in Output window
Using new shortcuts: F8 (Visual Studio) and Ctrl-. (Eclipse)

Signed-off-by: Alex Neundorf <neundorf@kde.org>
2013-04-24 15:32:42 -04:00
Marc Bartholomaeus 7be2d8acc6 cmake-gui: Change shortcut of the search field from Ctrl-F to Alt-E
Ctrl-F is now used by "Find in Output".

Signed-off-by: Alex Neundorf <neundorf@kde.org>
2013-04-24 15:32:42 -04:00
Marc Bartholomaeus 4ce65e82f5 cmake-gui: Add search functions to the context menu of the Output widget
Signed-off-by: Alex Neundorf <neundorf@kde.org>
2013-04-24 15:32:42 -04:00
Marc Bartholomaeus df3663bfab cmake-gui: Add search functions for Output window (#9733)
Signed-off-by: Alex Neundorf <neundorf@kde.org>
2013-04-24 15:32:34 -04:00
Kitware Robot 90bd164193 CMake Nightly Date Stamp 2013-04-24 00:01:07 -04:00
Kitware Robot 2baf851c34 CMake Nightly Date Stamp 2013-04-23 00:01:07 -04:00
Kitware Robot e55b8ce4a4 CMake Nightly Date Stamp 2013-04-22 00:01:04 -04:00
Kitware Robot d37fe5bc5b CMake Nightly Date Stamp 2013-04-21 00:01:05 -04:00
Kitware Robot 50e96802d2 CMake Nightly Date Stamp 2013-04-20 00:01:03 -04:00
Kitware Robot e6c3595fde CMake Nightly Date Stamp 2013-04-19 00:01:10 -04:00
Ian Monroe e7c58f6c35 Ninja: use cd /D to set directory on Windows
Add_custom_command was unable to handle build and source directories
existing on different drives.
2013-04-18 14:16:46 -04:00
Robert Maynard 573f39cb2a CMake 2.8.11-rc3 2013-04-18 11:55:10 -04:00
Robert Maynard dfca68ce89 Merge branch 'release' 2013-04-18 11:53:22 -04:00
Kitware Robot 6a3ee5dd4e CMake Nightly Date Stamp 2013-04-18 00:01:08 -04:00
Brad King 52b758b5c2 Merge topic 'doc-get_filename_component'
df71f96 get_filename_component: Document path components more clearly (#14091)
2013-04-17 11:36:30 -04:00
Brad King 8a2763b3ac Merge topic 'missing-fclose-in-trycompile'
ce441fa try_compile: add missing fclose() to recently added error case
2013-04-17 11:35:26 -04:00
Brad King 5b5a365aa6 Merge topic 'fix-clear-INCLUDE_DIRECTORIES-prop'
5a5e0fa Fix clearing of the INCLUDE_DIRECTORIES DIRECTORY property.
2013-04-17 11:35:14 -04:00
Kitware Robot f2958ff984 CMake Nightly Date Stamp 2013-04-17 00:01:08 -04:00
Brad King 5683146185 Xcode: Use explicitFileType to mark source types (#14093)
Replace use of lastKnownFileType with explicitFileType to insist
that Xcode treat the file as we ask.
2013-04-16 15:44:48 -04:00
Brad King 7d1590e6f9 get_filename_component: Add DIRECTORY option (#14091)
The name "PATH" is not precise so add equivalent option "DIRECTORY".
Document the latter as preferred and the former as a legacy alias.
2013-04-16 09:37:37 -04:00
Brad King df71f968cd get_filename_component: Document path components more clearly (#14091)
Organize component names in a table to explain each in more detail.
Clearly state that PATH is the directory name.
2013-04-16 09:02:40 -04:00
Rolf Eike Beer ce441fac07 try_compile: add missing fclose() to recently added error case
In commit 236133e7 (Handle targets in the LINK_LIBRARIES of try_compile,
2013-02-09) an error return case was added without closing the file in
progress.  Add the missing fclose() call.

Spotted by sevenhill.
2013-04-16 08:38:33 -04:00
Kitware Robot 201db269b8 CMake Nightly Date Stamp 2013-04-16 00:01:10 -04:00
Kitware Robot 51e4424df6 CMake Nightly Date Stamp 2013-04-15 00:01:14 -04:00
Kitware Robot ee62ac4f1a CMake Nightly Date Stamp 2013-04-14 00:01:03 -04:00
Kitware Robot edd90f9911 CMake Nightly Date Stamp 2013-04-13 00:01:16 -04:00
Petr Kmoch ac9a5f4d94 ctest_build: Pass projectDir to GenerateBuildCommand
This allows the ctest_build command's TARGET option to name a target
in a subdirectory and still build properly with msbuild.
Add test case covering use of ctest_build() with such a TARGET.
2013-04-12 11:35:36 -04:00
Brad King a6c0299c40 CTest: Simplify ctest_* command source/build dir lookup
In cmCTestHandlerCommand::InitialPass call InitializeHandler after setting
the CTest "SourceDirectory" and "BuildDirectory" configuration values
instead of before.  This makes the values available to InitializeHandler
methods in subclasses, so also drop the duplicate configuration of those
values from cmCTestConfigureCommand::InitializeHandler.
2013-04-12 11:35:36 -04:00
Petr Kmoch 3cd4000601 VS: Use .sln parser to build targets in subdirs with msbuild (#13623)
Use cmVisualStudioSlnParser in GenerateBuildCommand() to provide correct
command line for MSBuild even when target project is stored in a
subdirectory.
2013-04-12 11:35:36 -04:00
Petr Kmoch df035e4825 VS: Create parser for Visual Studio .sln files
Create class cmVisualStudioSlnParser as a generic parser for Visual
Studio .sln files. Implement minimum functionality but keep class
extensible.  Add tests for the class.
2013-04-12 11:35:35 -04:00
Petr Kmoch de8be9ef7d Add projectDir parameter to GenerateBuildCommand
Extend the cmGlobalGenerator::GenerateBuildCommand virtual method
signature with a "projectDir" parameter specifying the top of the
project build tree for which the build command will be generated.
Populate it from call sites in cmGlobalGenerator::Build where a
fully-generated build tree should be available.
2013-04-12 11:35:35 -04:00
Kitware Robot 1513dd399c CMake Nightly Date Stamp 2013-04-12 00:01:08 -04:00
Brad King 4e4688e469 VS 10: Escape ; as %3B in preprocessor definitions (#14073)
Use the suggestion from http://support.microsoft.com/kb/2262855 to escape
semicolons in preprocessor definitions for VS >= 10.  Update the
COMPILE_DEFINITIONS documentation disclaimer list of known limitations
accordingly.  Update our "Preprocess" test to cover the case.

Suggested-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
2013-04-11 11:41:15 -04:00
Brad King 87c0d16ab7 Ninja: Fix OBJECT_DIR placeholder path conversion
Transform the path using ConvertToNinjaPath just as we do for all other
paths.  This fixes the OutOfSource test for objects in the ../OutOfBinary
directory by computing the proper full path for the /Fd option.
2013-04-11 10:23:33 -04:00
Kitware Robot 6bfa3d8668 CMake Nightly Date Stamp 2013-04-11 00:01:08 -04:00
Stephen Kelly 5a5e0fa9d3 Fix clearing of the INCLUDE_DIRECTORIES DIRECTORY property.
This was broken by commit 18a3195a (Keep track of INCLUDE_DIRECTORIES
as a vector of structs., 2012-11-19).
2013-04-10 18:12:56 +02:00
Kitware Robot c6253fba41 CMake Nightly Date Stamp 2013-04-10 00:01:09 -04:00
Kitware Robot a5b39fd3c6 CMake Nightly Date Stamp 2013-04-09 00:01:09 -04:00
Kitware Robot a96452ec06 CMake Nightly Date Stamp 2013-04-08 00:01:05 -04:00
Kitware Robot 4336fadff0 CMake Nightly Date Stamp 2013-04-07 00:01:04 -04:00
Kitware Robot 88073c8e08 CMake Nightly Date Stamp 2013-04-06 00:01:09 -04:00
Robert Maynard 83e0fd0d1c CMake 2.8.11-rc2 2013-04-05 15:29:39 -04:00
Robert Maynard dfe8e4b9f0 Merge branch 'release' 2013-04-05 14:00:35 -04:00
Brad King 42ba1b08f3 VS: Separate compiler and linker PDB files (#11899, #14062)
The MS tools create two types of PDB files as explained here:

 http://msdn.microsoft.com/en-us/library/yd4f8bd1%28v=vs.71%29.aspx
 http://msdn.microsoft.com/en-us/library/yd4f8bd1%28v=vs.80%29.aspx
 http://msdn.microsoft.com/en-us/library/yd4f8bd1%28v=vs.90%29.aspx
 http://msdn.microsoft.com/en-us/library/yd4f8bd1%28v=vs.100%29.aspx

One is created by the compiler (/Fd) and the other by the linker (/pdb).
The two options should not specify the same file.  Split them up.

In the VS IDE generators, simply drop ProgramDataBaseFileName to
take the VS default "/Fd$(IntDir)vc$(PlatformToolsetVersion).pdb".

In the Makefile generators, set "/Fd" on the compile line to be
the directory containing object files (with a trailing slash the
compiler will add the "vc$(PlatformToolsetVersion).pdb" filename
automatically).  Drop the /Fd option from the exe link command
line and add "/pdb" instead (already done for dll linking).
Update these rules for both MSVC and Intel tools.

Drop support for PDB_OUTPUT_DIRECTORY and PDB_NAME in STATIC
libraries because the generated .pdb files are only from /Fd
and not real linker-generated .pdb files.  Update documentation to
clarify that the PDB_* properties are only for linker .pdb files.

This regresses the PDBDirectoryAndName test for STATIC libraries.
Since it is not clear at this time what should be done for STATIC
library .pdb files, comment out the relevant portion of the test
and leave a TODO comment.
2013-04-05 11:25:09 -04:00
Kitware Robot 2d88085204 CMake Nightly Date Stamp 2013-04-05 00:01:10 -04:00
Brad King 9cccd2c29c Merge topic 'usr-move-relocatable'
6c613b4 Handle usr-move without forcing absolute paths (#14041)
2013-04-04 14:20:21 -04:00
Kitware Robot af79291fb4 CMake Nightly Date Stamp 2013-04-04 00:01:08 -04:00
Brad King 6c613b433c Handle usr-move without forcing absolute paths (#14041)
In commit 0c727b90 (install(EXPORT): Force absolute paths for usr-move,
2013-03-08) and commit d4774140 (configure_package_config_file: force
absolute paths for usr-move, 2013-01-24) we supported Linux
distributions implementing the "/usr move" by assuming that installation
to (/usr)?/lib(64)? represents a non-relocatable system package.

When cross-compiling one may prepare a package for installation into a
system location on a target machine but install the package files on the
*host* machine inside another path for use with CMAKE_FIND_ROOT_PATH.
In this case the package development files must still be relocatable.

Handle "/usr move" with a new approach that works with relocatable
files.  Teach configure_package_config_file and install(EXPORT) to
generate special logic in a package configuration file or targets file
for installation under (/usr)?/lib(64)?.  Teach the file to recognize
when it is loaded through a symlink that refers to the same realpath as
its original install destination.  In such a case, use the original
install prefix.  Otherwise, compute the prefix relative to the current
file location to make it relocatable.
2013-04-03 11:19:47 -04:00
Kitware Robot 99f7cc127a CMake Nightly Date Stamp 2013-04-03 00:01:08 -04:00
Brad King 972ae90fc6 Merge topic 'automoc-vs11-workaround'
20c99b1 automoc: Use a pre-build event in VS >= 7
2013-04-02 14:07:02 -04:00
Brad King ec0b84576b Merge topic 'clarify-add_dependencies-error'
de13d68 add_dependencies: Distinguish target v. file dependencies in error (#14050)
2013-04-02 14:06:55 -04:00
Kitware Robot 3423915720 CMake Nightly Date Stamp 2013-04-02 00:01:09 -04:00
Kitware Robot 8869c0febd CMake Nightly Date Stamp 2013-04-01 00:01:04 -04:00
Kitware Robot 8fe0f2be83 CMake Nightly Date Stamp 2013-03-31 00:01:08 -04:00
Kitware Robot f1502d2f88 CMake Nightly Date Stamp 2013-03-30 00:01:15 -04:00
Brad King 20c99b1dbc automoc: Use a pre-build event in VS >= 7
In VS IDE generators add a pre-build event to perform automoc instead of
using a separate custom target.  This reduces the number of targets in the
.sln that need to be loaded by the IDE.

This also works around a VS 11 bug as discussed in issue 13900.

Suggested-by: Hauke Heibel <hauke.heibel@gmail.com>
2013-03-29 15:58:21 -04:00
Brad King de13d68d11 add_dependencies: Distinguish target v. file dependencies in error (#14050)
When called with a non-existent LHS target name the user may be trying
to add file-level dependencies.  Clarify the error message to explain
the difference between target-level and file-level dependencies.  Point
the reader at the commands and options needed for the latter.
2013-03-29 15:00:33 -04:00
Kitware Robot 969a7fde7a CMake Nightly Date Stamp 2013-03-29 00:01:08 -04:00
Brad King 1f16bd24ee Merge topic 'SystemTools-TrimWhitespace-all'
674f918 cmSystemTools: Generalize TrimWhitespace to all whitespace
2013-03-28 10:43:22 -04:00
Brad King 2afcbe3090 Merge topic 'error-on-exported-missing-include-dir'
634bb33 Error if linked target has relative paths in INTERFACE_INCLUDE_DIRECTORIES
2013-03-28 10:42:42 -04:00
Kitware Robot 6a03ea4725 CMake Nightly Date Stamp 2013-03-28 00:01:11 -04:00
Petr Kmoch 674f918a1a cmSystemTools: Generalize TrimWhitespace to all whitespace
Modify cmSystemTools::TrimWhitespace() to remove all leading and
trailing whitespace, not just spaces.
2013-03-27 08:46:55 -04:00
Kitware Robot eb462356cf CMake Nightly Date Stamp 2013-03-27 00:01:09 -04:00
Stephen Kelly 634bb33f3a Error if linked target has relative paths in INTERFACE_INCLUDE_DIRECTORIES
We can do this check only if the TargetName is non-empty, which means
that we're evaluating INTERFACE_INCLUDE_DIRECTORIES from a linked
dependency which was set using target_link_libraries.

It is possible to have relative paths in INCLUDE_DIRECTORIES already
in CMake 2.8.10.2, so that part will require a policy to fix.
2013-03-26 19:56:10 +01:00
Brad King b9e4a5abb4 Merge topic 'error-on-exported-missing-include-dir'
28051f1 Report an error on IMPORTED targets with a faulty INTERFACE
af81a3c install(EXPORT): Ensure clean INTERFACE_INCLUDE_DIRECTORIES
2013-03-26 14:36:45 -04:00
Brad King c20f4dd620 Merge topic 'vs-sln-header'
c677838 VS: Fix VS 10/11 .sln headers (#14038)
2013-03-26 14:36:32 -04:00
Brad King a3872ba5f9 Merge topic 'fix-new-target-commands-docs'
2e80f9f Fix new target commands documentation.
2013-03-26 14:36:26 -04:00
Brad King 0261bdfc1d Merge topic 'fix-COMPILE_DEFINITIONS-config'
1703b00 Test evaluation of per-config COMPILE_DEFINITIONS (#14037)
a6286e9 Fix the evaluation of per-config COMPILE_DEFINITIONS (#14037)
2013-03-26 14:36:07 -04:00
Stephen Kelly 28051f1150 Report an error on IMPORTED targets with a faulty INTERFACE
It is considered an error if the INTERFACE_INCLUDE_DIRECTORIES contains
a directory which does not exist, which indicates a programmer error
by the upstream, or a packaging error.

One of the RunCMake.CompatibleInterface tests also needs to be updated
due to this change. Non-existant includes were used in the test, but
are not needed.
2013-03-26 10:45:28 -04:00
Stephen Kelly af81a3c31b install(EXPORT): Ensure clean INTERFACE_INCLUDE_DIRECTORIES
Check that source and binary directories are not part of the
INTERFACE_INCLUDE_DIRECTORIES for installed IMPORTED targets.

This is limited to directories which do not contain generator
expressions to evaluate. Such paths can only be checked at time
of use of the imported target, which will be done in a follow up
patch.
2013-03-26 10:45:07 -04:00
Kitware Robot 2fcb06039d CMake Nightly Date Stamp 2013-03-26 00:01:08 -04:00
Brad King c677838c1a VS: Fix VS 10/11 .sln headers (#14038)
The VS version we generate in the .sln header is used by VS when opening
the file through Windows Explorer and possibly elsewhere.  Fix our
generators to use version strings known to VS to avoid a drop-down box.

For VS 10, since commit 4f96af44 (Fix VS 10 .sln files for Windows
Explorer, 2009-10-22) we use "Visual Studio 2010" instead of just
"Visual Studio 10".  This is correct except that for the Express edition
we need "Visual C++ Express 2010".

For VS 11, since commit f0d66ab4 (VS11: Fix comment generated at the top
of *.sln files, 2011-10-20) we use "Visual Studio 11" in the .sln header
but the preferred value is "Visual Studio 2012" (just as the first
commit mentioned above fixed for VS 10).  Also for the Express edition
we need "Visual Studio Express 2012 for Windows Desktop".
2013-03-25 14:25:14 -04:00
Stephen Kelly 2e80f9f21f Fix new target commands documentation.
The target_include_directories and target_compile_defintions commands
accepted targets as arguments until commit f6b16d4b (Don't allow
targets args in the new target commands., 2013-01-29). This followed
from discussion on the mailing list (target_include_directories() accepts
only absolute paths ?, 2013-01-28):

 http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/5925/focus=5948

 http://public.kitware.com/pipermail/cmake-developers/2013-January/006301.html

It was also decided to allow relative paths in target_include_directories().
2013-03-25 19:23:01 +01:00
Stephen Kelly a6286e92c9 Fix the evaluation of per-config COMPILE_DEFINITIONS (#14037)
The API for retrieving per-config COMPILE_DEFINITIONS has long
existed because of the COMPILE_DEFINITIONS_<CONFIG> style
properties. Ensure that the provided configuration being generated
is also used to evaluate the generator expressions
in cmTarget::GetCompileDefinitions.

Both the generic COMPILE_DEFINITIONS and the config-specific
variant need to be evaluated with the requested configuration. This
has the side-effect that the COMPILE_DEFINITIONS does not need to
be additionally evaluated with no configuration, so the callers can
be cleaned up a bit too.
2013-03-25 10:49:22 -04:00
Brad King ddbe2e1d7d Merge topic 'compile-object-TARGET-placeholder'
0b7ad3f Replace <TARGET> in CMAKE_<LANG>_COMPILE_OBJECT rule variables
2013-03-25 10:08:10 -04:00
Brad King 365ada46ce Merge topic 'rename-include-current-dir-in-interface-var'
fc43477 Rename variable for including current directory in interfaces
2013-03-25 10:08:05 -04:00
Brad King 33c2254aef Merge topic 'update-kwsys'
3ed2d03 Merge branch 'upstream-kwsys' into update-kwsys
83a9f09 KWSys 2013-03-21 (2d263bc3)
2013-03-25 10:08:00 -04:00
Brad King 40e677e785 Merge topic 'cpack-printf-format-warnings'
0fca154 CPack: Avoid "format expects 'unsigned int'" warnings
2013-03-25 10:07:57 -04:00
Brad King 1cc637da20 Merge topic 'doc-string-regex'
763a6dc string: Fix regex documentation of '^' and '$' (#14028)
2013-03-25 10:07:52 -04:00
Kitware Robot 1a60115bf5 CMake Nightly Date Stamp 2013-03-25 00:01:04 -04:00
Kitware Robot 19700735d5 CMake Nightly Date Stamp 2013-03-24 00:01:03 -04:00
Kitware Robot d4a94b8be4 CMake Nightly Date Stamp 2013-03-23 00:01:08 -04:00
Paul Kunysch 0fca154344 CPack: Avoid "format expects 'unsigned int'" warnings
Cast sprintf uid and gid arguments to match the type expected by their
"%-6u" format strings.
2013-03-22 08:53:58 -04:00
Brad King 3ed2d03ee9 Merge branch 'upstream-kwsys' into update-kwsys 2013-03-22 08:08:03 -04:00
Brad King 0b7ad3f091 Replace <TARGET> in CMAKE_<LANG>_COMPILE_OBJECT rule variables
In some languages the compiler may need to know the path of the final
target file for which an object is being compiled.  Honor the <TARGET>
placeholder for compilation rules to support such cases.

Note that this cannot work with OBJECT library targets because the final
target path is not known during compilation (there can even be more than
one final target).

Suggested-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2013-03-22 07:52:54 -04:00
Kitware Robot 8bffce955d CMake Nightly Date Stamp 2013-03-22 00:01:08 -04:00
Kitware Robot aa16a433d3 CMake Nightly Date Stamp 2013-03-21 00:01:10 -04:00
Kitware Robot 2557e84d67 CMake Nightly Date Stamp 2013-03-20 00:01:10 -04:00
Brad King 3efede0ccc Merge topic 'automoc-append-implicit-dirs'
753b905 Automoc: append implicit includes after user-specified dirs
2013-03-19 19:37:49 -04:00
Stephen Kelly 753b905ec8 Automoc: append implicit includes after user-specified dirs
The commit d2536579 (Automoc: fix regression #13667, broken build in
phonon, 2012-11-19) changed Automoc to try to re-add the Qt header dir
if it was stripped out as an implicit include from the moc command
line. When invoking a compiler, those directories are stripped out
because they are built-in, but for moc, there are no built-in directories.

The follow-up commit acc22400 (Automoc: get include dirs without
stripping implicit include dirs off, 2012-12-07) went further by not
removing the implicit include dirs, if they were specified specifically
by the user.

This had the remaining problem that the implicit include dirs appeared
in a different order of precedence for moc compared to the compiler.
Resolve that by stripping out the include dirs, where specified for
the moc command line to, and then appending them at the end. Note that
the order of the appended implicit include directories is the order
they are specified in the CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES, not
the order specified by the user.
2013-03-19 19:36:42 -04:00
Brad King fc43477de0 Rename variable for including current directory in interfaces
Rename the variable added by commit 9ce1b9ef (Add
CMAKE_BUILD_INTERFACE_INCLUDES build-variable, 2012-11-25) to
CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE to be more consistent with the
existing CMAKE_INCLUDE_CURRENT_DIR variable.

Suggested-by: Alex Neundorf <neundorf@kde.org>
2013-03-19 16:44:17 -04:00
Brad King 017478570e Merge topic 'expand-version-of-Qt5-gui-fix'
6387f6d cmake-gui: Use the QStandardItemModel workaround until 5.1.0.
2013-03-19 15:20:37 -04:00
Brad King 16695a6d77 Merge topic 'fix-genex-preprocess'
7a619fa Fix cmGeneratorExpression::Preprocess for interleaved inputs.
2013-03-19 15:20:27 -04:00
Stephen Kelly 6387f6d85c cmake-gui: Use the QStandardItemModel workaround until 5.1.0.
If there is a Qt 5.0.3 release, it may or may not contain the patch
that fixes this issue.

 http://thread.gmane.org/gmane.comp.lib.qt.releasing/882

Just use the workaround until 5.1.0 which certainly will contain the
fix. Don't use the workaround before Qt 5.0.0.
2013-03-19 15:14:46 -04:00
Brad King 763a6dcd33 string: Fix regex documentation of '^' and '$' (#14028)
They match at the beginning and end of the input, not by line.

Reported-by: Martin Perzl <martin.perzl@web.de>
2013-03-19 13:14:22 -04:00
Kitware Robot 5dfa6240eb CMake Nightly Date Stamp 2013-03-19 00:01:07 -04:00
Stephen Kelly 7a619fa6fb Fix cmGeneratorExpression::Preprocess for interleaved inputs.
We can't find both preprocessing expressions at once, because then
the BUILD_INTERFACE will always be favored if both are present, even
if INSTALL_INTERFACE appears first.

This was affecting the behavior of install(EXPORT) because the
INTERFACE_INCLUDE_DIRECTORIES contained entries like

 /foo/include;$<INSTALL_INTERFACE:/bar/include>

As the INSTALL_INTERFACE always evaluates to '0', it always needs
to be preprocessed properly.
2013-03-18 15:09:47 +01:00
Brad King 85f7caabbb Merge topic 'CMAKE_AUTOMOC-Qt5-docs'
1b386b3 Document that CMAKE_AUTOMOC works with Qt 5.
2013-03-18 09:41:55 -04:00
Brad King a402bc4d5a Merge topic 'TI_DSP_to_TI'
27e6f6e TI compiler: add automatic detection of prefix and suffixes
b301586 rename TI_DSP toolchain to TI, since it works also for the ARM compiler
12b25df Determine C/CXX/Fortran compiler: fix indentation
7baa55a Determine C/CXX/Fortran compiler: minor restructuring
2013-03-18 09:41:37 -04:00
Kitware Robot ef63fa592a CMake Nightly Date Stamp 2013-03-18 00:01:04 -04:00
Kitware Robot d7a2a9c319 CMake Nightly Date Stamp 2013-03-17 00:01:13 -04:00
Stephen Kelly 1b386b3407 Document that CMAKE_AUTOMOC works with Qt 5. 2013-03-16 19:31:04 +01:00
Kitware Robot 253a913654 CMake Nightly Date Stamp 2013-03-16 00:01:09 -04:00
Kitware Robot 03b0ceebe5 CMake Nightly Date Stamp 2013-03-15 00:01:08 -04:00
Alex Neundorf b3015862e5 rename TI_DSP toolchain to TI, since it works also for the ARM compiler
Additionally, look for a special ar and strip

Alex
2013-03-14 21:47:59 +01:00
Robert Maynard db87209b6d CMake 2.8.11-rc1 2013-03-14 12:54:08 -04:00
Kitware Robot ae84d24b21 CMake Nightly Date Stamp 2013-03-14 00:01:10 -04:00
Brad King a95968fec9 Merge topic 'ninja-escape-line-breaks'
3b4436a Ninja: escape line breaks in literals
2013-03-13 13:42:00 -04:00
Brad King 0c1621ff95 Merge topic 'qt5-fixes'
404e1d6 cmake-gui: Workaround bug in Qt 5.0.0 to 5.0.3 QStandardItemModel
5144f6f cmake-gui: Use -fPIE if required by Qt.
2013-03-13 13:34:41 -04:00
Brad King 8128940ac1 Merge topic 'cleanup-early-include-CTest-failure'
d90f49b CTest: Fail early without PROJECT_BINARY_DIR (#14005)
2e1c2bd build_command: Fail early without CMAKE_MAKE_PROGRAM (#14005)
4e5cb37 Refactor RunCMake.build_command test to allow more cases
2013-03-13 13:34:36 -04:00
Brad King 26bfece1af Merge topic 'fix-automoc-no-qt'
a223a3b Automoc: Don't create automoc targets if Qt is not used (#13999)
65b5c1e Merge branch 'property-link-depends-no-crash' into fix-automoc-no-qt
2013-03-13 13:34:24 -04:00
Brad King 9a02a26702 Merge topic 'property-link-depends-no-crash'
ab079ee Avoid crash when checking property compatibility without link info
92a2ab7 Avoid crash when checking property link dependencies without link info
2013-03-13 13:34:20 -04:00
Brad King 7d9d0efc7b Merge topic 'genex-SEMICOLON'
7f3bb8b Add $<SEMICOLON> generator expression.
2013-03-13 13:34:16 -04:00
Brad King 0707e0d422 Merge topic 'add_subdirectory-trailing-slashes'
1df4928 add_subdirectory: Compute output dir with consistent slashes (#10072)
2013-03-13 13:34:02 -04:00
Brad King 26436346fb Merge topic 'doc-fixes'
3cf2f67 Documentation: Clarify a few subtleties
2013-03-13 13:33:53 -04:00
Kitware Robot a9c83592bf CMake Nightly Date Stamp 2013-03-13 00:01:11 -04:00
Stephen Kelly 404e1d675a cmake-gui: Workaround bug in Qt 5.0.0 to 5.0.3 QStandardItemModel
The commit in qtbase 9dfba89c (Add implementations of QAIM::sibling in
public APIs., 2012-09-26) added a buggy implementation of sibling(), and
the commit f136701b (Use the base implementation of
QAbstractItemModel::sibling in QSIM., 2013-02-21) resolves it.
Workaround the bug for Qt releases that have it.
2013-03-12 18:41:26 -04:00
Stephen Kelly 5144f6fb11 cmake-gui: Use -fPIE if required by Qt. 2013-03-12 18:41:15 -04:00
Brad King 2e1c2bd2dd build_command: Fail early without CMAKE_MAKE_PROGRAM (#14005)
If CMAKE_MAKE_PROGRAM is not set fail with an error message instead of
crashing.  Suggest calling project() or enable_language() first to
ensure that CMAKE_MAKE_PROGRAM is set.
2013-03-12 18:17:40 -04:00
Stephen Kelly a223a3b65f Automoc: Don't create automoc targets if Qt is not used (#13999)
Commit 79568f95 (automoc: Add source file to target early to set the
linker language, 2013-02-20) changed automoc initialization to a two
step process. In the first step, the generated source file was added
to the target, which allows the link language to be determined.

However, this bypassed the check for the availability of Qt itself.
At build-time the automoc file could not be generated because the moc
tool was not available to create it.

The solution is to only add the automoc file to the target if Qt is
found.
2013-03-12 17:42:02 -04:00
Brad King 65b5c1e064 Merge branch 'property-link-depends-no-crash' into fix-automoc-no-qt 2013-03-12 17:39:03 -04:00
Brad King ab079ee682 Avoid crash when checking property compatibility without link info
Teach the compatibility check added by commit 042ecf04 (Add API to
calculate link-interface-dependent bool properties or error, 2013-01-06)
to return early if no link information is available.  This avoids
crashing in a case that should fail with an error message.
2013-03-12 17:25:59 -04:00
Brad King 92a2ab70b6 Avoid crash when checking property link dependencies without link info
Teach the isLinkDependentProperty helper added by commit e9879910 (Make
INTERFACE determined properties readable in generator expressions,
2013-01-19) to return early if no link information is available.
2013-03-12 17:17:24 -04:00
Jean-Christophe Fillion-Robin 7f3bb8b392 Add $<SEMICOLON> generator expression.
This expression is useful to put a ';' in a command line argument
without dividing the argument during CMake list expansion.
2013-03-12 16:46:03 -04:00
Brad King 451ddcbf73 Merge topic 'ninja-mingw-lang'
2271ca3 Ninja: the Ninja generator does not support Fortran yet.
751f712 Ninja: use MinGW generator code in EnableLanguage()
2013-03-12 13:46:55 -04:00
Brad King 556ae30717 Merge topic 'install-export-usr-move'
0c727b9 install(EXPORT): Force absolute paths for usr-move
2013-03-12 13:46:51 -04:00
Brad King 32fb1f2371 Merge topic 'vs7-empty-groups'
545fdec VS: Avoid empty source groups in some cases (#3474)
2013-03-12 13:46:47 -04:00
Brad King 19922ac1d2 Merge topic 'cpack-nsis-no-release-version'
7947890 CPack: Fix NSIS version check without release version (#9721)
2013-03-12 13:46:43 -04:00
Brad King 950541618c Merge topic 'fix-transitive-target-names'
1bdd167 Restore support for target names with '+' (#13986)
254687d Only process transitive interface properties for valid target names.
2013-03-12 13:46:40 -04:00
Brad King d74d154704 Merge topic 'update-find_package-docs'
b73e05d Mention that IMPORTED targets may be created by a find_package call.
2013-03-12 13:46:31 -04:00
Stephen Kelly 1bdd167577 Restore support for target names with '+' (#13986)
Extend the range of valid target names with the + sign.  This character
can commonly be used for target names, such as those containing 'c++'.
Add a test but skip it for Borland and Watcom tools which do not support
the character.

Suggested-By: Benjamin Kloster
2013-03-12 13:39:11 -04:00
Brad King 1df49282a5 add_subdirectory: Compute output dir with consistent slashes (#10072)
When the command is invoked without an explicit build directory path we
compute it from the source directory path.  When either the source or
build tree is the root of a Windows drive letter it will have a trailing
slash.  Handle slashes consistently when substituting the current output
directory for the current source directory.

While at it, use cmSystemTools::IsSubDirectory instead of FindLastString
to verify that the source directory is a subdirectory.

Inspired-by: Graham Menhennitt <graham@menhennitt.com.au>
2013-03-12 11:52:52 -04:00
Petr Kmoch 3cf2f67adc Documentation: Clarify a few subtleties
* Clarify accepted values of <LANG> suffix in CMAKE_COMPILER_IS_GNU<LANG>.

* Clarify fact that target property GENERATOR_FILE_NAME usually cannot be
  used at configure time.

* Clarify that enable_language() can only be used in global scope of
  top-level project using language.

* State that enable_language(... OPTIONAL) currently doesn't work.

* Document regular expression operator precedence.
2013-03-12 09:29:55 -04:00
Kitware Robot 51fc4fb3c1 CMake Nightly Date Stamp 2013-03-12 00:01:18 -04:00
Kitware Robot 5990a5637e CMake Nightly Date Stamp 2013-03-11 00:01:12 -04:00
Peter Kümmel 2271ca3496 Ninja: the Ninja generator does not support Fortran yet. 2013-03-10 11:36:57 +01:00
Kitware Robot 2e0229ae0a CMake Nightly Date Stamp 2013-03-10 00:01:11 -05:00
Peter Kümmel 3b4436aa90 Ninja: escape line breaks in literals
BUG: 13591
2013-03-09 12:06:24 +01:00
Peter Kümmel 751f712e1a Ninja: use MinGW generator code in EnableLanguage() 2013-03-09 11:28:45 +01:00
Kitware Robot 2e80f10763 CMake Nightly Date Stamp 2013-03-09 00:01:10 -05:00
Brad King 0c727b906a install(EXPORT): Force absolute paths for usr-move
If the absolute install(EXPORT) destination for the CMAKE_INSTALL_PREFIX
used during configuration is under (/usr)?/lib(64)? then assume the
current build is for a system package installation instead of a
relocatable distribution.  Generate an absolute path for _IMPORT_PREFIX
in the target exports file instead of generating code to compute the
value relative to the file location.  This is necessary for
distributions implementing a move to /usr such as:

 https://wiki.archlinux.org/index.php/DeveloperWiki:usrlib
 "All files in the /lib directory have been moved to /usr/lib and now
  /lib is a symlink to usr/lib."

The relative path computation is not reliable because the targets file
could be installed through cross-prefix a symlink and loaded without it
or vice versa.

A similar change was made for package configuration file generation by
commit d4774140 (configure_package_config_file: force absolute paths for
usr-move, 2013-01-24).
2013-03-08 09:55:18 -05:00
Anton Helwart 545fdec4f8 VS: Avoid empty source groups in some cases (#3474)
Teach the WriteGroup method return true if a group or any of its
children have source files.  Have children write their output to a
temporay cmOStringStream.  Add it to the real output only if not empty.
2013-03-08 08:27:12 -05:00
Gerald Hofmann 794789047d CPack: Fix NSIS version check without release version (#9721)
Only check a release version for the minimum required version.  If NSIS
returns a CVS build version string (as when built by Macports), skip the
version check altogether and assume a sufficiently new version.  Also
correctly handle the case where the version check fails and the
CPACK_TOPLEVEL_DIRECTORY option is not set.

Co-Author: Graham Menhennitt <graham@menhennitt.com.au>
2013-03-08 08:17:05 -05:00
Kitware Robot aa027af9af CMake Nightly Date Stamp 2013-03-08 00:01:09 -05:00
Kitware Robot 06a45e8169 CMake Nightly Date Stamp 2013-03-07 00:01:10 -05:00
Stephen Kelly b73e05d7c9 Mention that IMPORTED targets may be created by a find_package call. 2013-03-06 21:35:20 +01:00
Stephen Kelly 254687d31f Only process transitive interface properties for valid target names.
Commit a1c4905f (Use the link information as a source of compile
definitions and includes., 2013-02-12) introduced the use of link
information as the source of target properties via the TARGET_PROPERTY
generator expression. This generator expression has a strict
interpretation of a valid target name and emits a fatal error for
invalid names.

Ensure that only targets with names valid for use with TARGET_PROPERTY
or targets which are determined by generator expressions are processed
by it. This means that at worst, invalid target names do not participate
in the transitive evaluation of properties, but the validation
generator expression can be extended where needed to resolve that.
2013-03-06 17:42:08 +01:00
Kitware Robot efdf152fe1 CMake Nightly Date Stamp 2013-03-06 00:01:10 -05:00
Brad King 631b7b8e15 Merge topic 'vs10-stack-size'
308c5a2 VS 10: Fix CMAKE_<LANG>_STACK_SIZE implementation (#13968)
2013-03-05 14:10:55 -05:00