Commit Graph

20958 Commits

Author SHA1 Message Date
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 1ca93182ad VS: Add test for building MSBuild project in subdir
Add test covering cmGlobalGenerator::GenerateBuildCommand for VS
solutions with MSBuild and building a target defined in a subdirectory
and not part of ALL.
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
Robin Lee 1b614e018c FindOpenSSL: Fix spelling of CMAKE_CROSSCOMPILING (#14075)
Use of the mis-spelled variable name 'CMAKE_CROSS_COMPILING' was
introduced by commit 4b793ad1 (FindOpenSSL: find cross-compiled OpenSSL
from MinGW, 2012-07-23).  Fix the spelling.
2013-04-12 08:50:06 -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
Brad King fb9f73de64 MSVC: Invoke 'link' directly for executables
Update the CMAKE_<LANG>_LINK_EXECUTABLE rule variable to invoke the
linker directly instead of through the compiler.  We already do this
for DLL linking with CMAKE_<LANG>_CREATE_SHARED_LIBRARY.

This also works around a VS 6 cl bug.  While invoking the link tool
internally it fails to correctly quote flags like /pdb:... with spaces
in the value.
2013-04-08 13:03:56 -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
Eric NOULARD f055c997a5 CPackRPM add /usr/lib64 to the list of builtin to-be-excluded path 2013-04-05 12:53:47 +02:00
Eric NOULARD bac5772b39 CPackRPM add mechanism to remove path from generated list of file in RPM spec.
This fixes bug #0013609, and is a possible solution to #0012864 as well.
The later will be completely fixed in another way. Both approaches
needs to be implemented because the current one is more automatic.

Inspired-By: Ari
2013-04-05 12:43:50 +02: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 00ef90ec5e Merge topic 'qt4-pthread'
bec8e64 Qt4: Fix typo setting a variable for FindThreads.
2013-04-03 11:42:50 -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
Clinton Stimpson bec8e64c73 Qt4: Fix typo setting a variable for FindThreads.
Fixes bug 14055.
2013-04-02 07:46:51 -06:00
Kitware Robot 3423915720 CMake Nightly Date Stamp 2013-04-02 00:01:09 -04:00
Eric NOULARD 2ef908f911 Add support for componentized USER spec file
CPACK_RPM_USER_BINARY_SPECFILE can now be specified on a per-component
basis using CPACK_RPM_<componentName>_USER_BINARY_SPECFILE.

Inspired-By: Theodore Papadopoulo with its patch proposal.
2013-04-01 16:06:22 +02: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 4ce263288a Merge topic 'fix-Qt5-incompatibility-check-version'
535e53c Fix the Qt 5 version required to run the IncompatibleQt test.
2013-03-28 10:43:02 -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
Brad King 1c7833e7ae Merge topic 'ExactCaseReadmeTxt'
5479251 Modules/readme.txt: make lines a bit shorter for easier readability
140692d Modules/readme.txt: switch from "XXX" to "Xxx"
2013-03-28 10:42:24 -04:00
Brad King 9852d8f42b Merge topic 'use-java-INCLUDE_JARS'
8a2fca8 UseJava.cmake: require explicit request to include jars
2013-03-28 10:42:07 -04:00
Brad King 91461b48c8 Merge topic 'dev/add-isystem-for-clang'
4d668f3 Clang: Add -isystem flag support everywhere
2013-03-28 10:41:55 -04:00
Alex Neundorf 5479251b3b Modules/readme.txt: make lines a bit shorter for easier readability
This patch doesn't make them 79 characters long, but at least gets rid
of really long lines.  While at it, fix spelling of "relevant".

Alex
2013-03-28 10:39:14 -04:00
Alex Neundorf 140692d84c Modules/readme.txt: switch from "XXX" to "Xxx"
Using XXX as name of the package is ambiguous, since it can be
interpreted as "ALLUPPERCASE" and also as "ExactCase (if the name
is already ALLUPPERCASE)".
After extensive discussion there is the conclusion that ExactCase
is intended, so using a CamelCased name makes that more obvious.

Alex
2013-03-28 10:38:49 -04:00
Matthew Woehlke 8a2fca8cd7 UseJava.cmake: require explicit request to include jars
Modify add_jar to (partly) use cmake_parse_arguments, and to require
using the named argument list INCLUDE_JARS to specify jar files (or jar
targets) to use as dependencies when creating a jar. This preserves the
ability to have such, while restoring the historic behavior that jar
files listed as sources are ignored. (The code now explicitly ignores
them, however, rather than adding them to an unused local variable, so
that it is more clear that nothing is being done with them.)
2013-03-28 10:35:42 -04:00
Ben Boeckel 4d668f3311 Clang: Add -isystem flag support everywhere
In GNU.cmake, -isystem is not used if APPLE is set. However, Clang has
pretty much always supported -isystem, so we should always use it.

In the future, GNU.cmake should do a version check to see if -isystem is
supported.
2013-03-28 10:32:24 -04:00
Kitware Robot 6a03ea4725 CMake Nightly Date Stamp 2013-03-28 00:01:11 -04:00