Commit Graph

23472 Commits

Author SHA1 Message Date
Brad King 6223621e9a Merge topic 'msvc-compiler-pdb-files'
fba51b09 MSVC: Add properties to configure compiler PDB files (#14762)
3737860a cmTarget: Add per-config compilation info
718a9532 cmTarget: Refactor ComputePDBOutputDir interface
aae5184c Help: Refactor PDB_NAME and PDB_OUTPUT_DIRECTORY docs
b4aac0ca Makefile: Fix per-config linker PDB output directory
2014-02-26 09:38:51 -05:00
Brad King 5cad466dae Merge topic 'UseSWIG-avoid-extra-rebuilds'
f0111deb UseSWIG: Name extra generated files after module name (#10080)
2014-02-26 09:38:50 -05:00
Brad King bfb3f19c43 Merge branch 'INTERFACE-property-docs' into release 2014-02-26 09:37:13 -05:00
Brad King 42322469e4 Merge branch 'fix-showinclude-warnings' into release 2014-02-26 09:36:02 -05:00
Brad King fba51b096e MSVC: Add properties to configure compiler PDB files (#14762)
Since commit v2.8.12~437^2~2 (VS: Separate compiler and linker PDB files
2013-04-05) we no longer set /Fd with the PDB_NAME or PDB_OUTPUT_DIRECTORY
properties.  Those properties now exclusively handle linker PDB files.
Since STATIC libraries do not link their compiler PDB file becomes more
important.  Add new target properties "COMPILE_PDB_NAME[_<CONFIG>]" and
"COMPILE_PDB_OUTPUT_DIRECTORY[_<CONFIG>]" to specify the compiler PDB
file location and pass the value to the MSVC /Fd option.
2014-02-26 09:34:38 -05:00
Matthäus G. Chajdas 041485bc16 Add FindOpenCL module 2014-02-26 08:53:00 -05:00
Nils Gladitz 6fcd835c07 CPackWIX: refactor and cleanup
Extract addtional classes and functions which are getting unsightly large.
Use some of the coding conventions more consistently.
2014-02-26 14:15:13 +01:00
Stephen Kelly ad75afbfb4 Help: List the whitelist of properties for INTERFACE libraries. 2014-02-26 10:40:49 +01:00
Kitware Robot c859d176a1 CMake Nightly Date Stamp 2014-02-26 00:01:06 -05:00
Brad King b3d85113a6 Utilities/Release: Copy pre-built docs tarball to unique name
Name the pre-built docs tarball on the remote machine according to the
release script name so that multiple tarballs going to a single remote
machine do not clobber one another.
2014-02-25 14:35:35 -05:00
Brad King 4c0f8dfb0a Utilities/Release: Update default binary distribution dir to v3.0 2014-02-25 11:48:00 -05:00
Brad King 8619a45336 Merge branch 'release' 2014-02-25 11:26:40 -05:00
Nils Gladitz 47702b8d49 CTest: exclude /showIncludes notes when scraping logs
My last related commit e5e3f3d4 (CTest: filter /showIncludes output from
ninja compile launcher, 2013-12-01) filtered /showIncludes messages from
the generated xml output but they also need to be filtered in
ScrapeLog().  Otherwise they are being detected as warnings when using
compilers withs english diagnostics.
2014-02-25 11:23:57 -05:00
Brad King 507236c511 Merge topic 'FindHg-add-WC_INFO'
bcefbe73 FindHg: Add Hg_WC_INFO macro
8993df6c FindHg: Search for TortoiseHg
2014-02-25 11:18:15 -05:00
Brad King 958cd84431 Merge topic 'dev/faster-parsers'
048be205 Help: Add release notes for the 'faster-parsers' topic
7c565d2f cmGeneratorExpression: Improve parsing in StripEmptyListElements
68eb1757 cmGeneratorExpressionLexer: Use a switch statement to parse
67253133 ExpandListArguments: Optimize the parser
2014-02-25 11:18:14 -05:00
Brad King 049790c0eb Merge topic 'target-SOURCES-refactor'
f9d5b1fd Handle Mac OSX source flags for individual files lazily.
64d39841 cmGeneratorTarget: Classify sources on demand, not up front.
d3682d86 cmGeneratorTarget: Use a method to access the definition file.
5771f81d cmTarget: Add GetTransitiveTargetClosure method.
a6dd4990 cmTarget: Create a temporary cmTarget in checkInterfacePropertyCompatibility
b8b99cc1 cmTarget: Avoid computing languages when computing transitive targets.
01bca553 cmTarget: Move ComputeLinkInterface to the internal class.
d93e1af2 cmTarget: Extract a ComputeLinkInterfaceLibraries method.
3bcb197c cmTarget: Re-arrange the ComputeLinkInterface method.
326d07d2 cmTarget: Extract a ComputeLinkImplementationLanguages method.
21e91350 cmTarget: Change GetTransitivePropertyLinkLibraries to output targets.
f81eb49e cmTarget: Find source files on request.
84e5f5a0 cmTarget: Move SourceFileFlags to cmGeneratorTarget.
2014-02-25 11:18:12 -05:00
Brad King 602be01b33 Merge topic 'fix-find_dependency-macro'
2be6dbe4 find_dependency: Ensure that ARGV1 has valid local content
a35ce723 find_dependency: Add namespacing for variables in the macro.
2014-02-25 11:18:11 -05:00
Matthäus G. Chajdas bcefbe737d FindHg: Add Hg_WC_INFO macro
Add a macro to extract information from a Hg work tree much like the
Subversion_WC_INFO macro does for Subversion work tree.
2014-02-25 11:14:06 -05:00
Matthäus G. Chajdas 8993df6c3d FindHg: Search for TortoiseHg
Use the TortoiseHg registry entry as a search path.
2014-02-25 11:13:49 -05:00
Ben Boeckel 048be20536 Help: Add release notes for the 'faster-parsers' topic 2014-02-25 10:56:10 -05:00
Kitware Robot cd8c797a85 CMake Nightly Date Stamp 2014-02-25 00:01:14 -05:00
Brad King 3737860a38 cmTarget: Add per-config compilation info
Add a cmTarget::CompileInfo struct to hold per-configuration information
about the compilation settings in a target.  This is different than
cmTarget::OutputInfo because it applies to any targets that can compile
sources even if they do not link or archive.
2014-02-24 14:14:37 -05:00
Brad King 718a9532c6 cmTarget: Refactor ComputePDBOutputDir interface
Add a runtime parameter to specify the property name prefix.
Update the call site to pass "PDB" to preserve the existing
name for that call path.
2014-02-24 14:12:31 -05:00
Brad King aae5184c16 Help: Refactor PDB_NAME and PDB_OUTPUT_DIRECTORY docs
Move the note about VS 6 into the PDB_NOTE.txt common include file
and include it from the per-config properties too.  Also re-word
the note to clarify the separate compiler and linker flags involved
and state explicitly that compiler flags are not affected.
2014-02-24 13:44:27 -05:00
Brad King b4aac0caca Makefile: Fix per-config linker PDB output directory
Also, now that all call sites of cmTarget::GetPDBName and
cmTarget::GetPDBDirectory pass the configuration, make the
argument non-optional.
2014-02-24 13:44:24 -05:00
Brad King cf7677d0a7 Merge branch 'fix-find_dependency-macro' into release 2014-02-24 13:29:19 -05:00
Stephen Kelly 2be6dbe420 find_dependency: Ensure that ARGV1 has valid local content
The ARGV1 value could come from a wrapping context if find_dependency
is called from a function.
2014-02-24 19:00:42 +01:00
Stephen Kelly a35ce7235b find_dependency: Add namespacing for variables in the macro.
Avoid setting a variable called 'version' etc.
2014-02-24 19:00:31 +01:00
Stephen Kelly f9d5b1fd0f Handle Mac OSX source flags for individual files lazily.
The actual list of files will become config dependent in a follow-up
commit.
2014-02-24 16:45:25 +01:00
Stephen Kelly 64d398416a cmGeneratorTarget: Classify sources on demand, not up front.
Implement a Visitor to hold the sequence of source file tests
for populating outputs.  Use VS 6 and 7 workaround from Brad
King for lack of partial template specialization and function
template specialization capabilities.

This will make it possible to use context dependent generator
expressions to determine the sources of a target.
2014-02-24 16:44:51 +01:00
Stephen Kelly d3682d8647 cmGeneratorTarget: Use a method to access the definition file. 2014-02-24 16:43:25 +01:00
Stephen Kelly 5771f81d91 cmTarget: Add GetTransitiveTargetClosure method.
Replace calls to GetLinkInformation with calls to a method to get only
the target closure, not the link languages etc.  The replaced calls
are used while evaluating generator expressions only.  This makes
transitive generator expression evaluation independent from
the languages of a target.  In a follow-up topic, it will be possible
to make the languages depend on generator expression evaluation, via
evaluation of the SOURCES and INTERFACE_SOURCES target properties.

Because the order of entries is not the same as the final link line,
the order of debug output is different in the RunCMake.CompatibleInterface
test, because the BOOL_PROP7 target property is evaluated first. Adjust
the test to account for that new order.
2014-02-24 16:43:24 +01:00
Stephen Kelly a6dd4990db cmTarget: Create a temporary cmTarget in checkInterfacePropertyCompatibility
This simplifies further refactoring.
2014-02-24 16:43:24 +01:00
Stephen Kelly b8b99cc1e5 cmTarget: Avoid computing languages when computing transitive targets.
For the OLD CMP0022 behavior, we need to treat the implementation
as the interface when computing the interface libraries.  Make it
possible to do that without computing the link languages by adding
a new GetLinkImplementationLibraries method.  Extend the existing
GetLinkImplementation method to populate the languages if the
libraries have already been computed and cached.

Change GetTransitivePropertyTargets to invoke GetLinkInterfaceLibraries
instead of GetLinkInterface.  This is key, as it is a method called
by cmGeneratorExpressionEvaluator.

Change the cmGeneratorExpressionEvaluator to invoke
GetLinkImplementationLibraries instead of GetLinkImplementation.
2014-02-24 16:43:24 +01:00
Stephen Kelly 01bca553b8 cmTarget: Move ComputeLinkInterface to the internal class.
In a follow-up, this will use the OptionalLinkInterface in its
API. That class is in the cmTargetInternals class.
2014-02-24 16:43:24 +01:00
Stephen Kelly d93e1af292 cmTarget: Extract a ComputeLinkInterfaceLibraries method.
When evaluating the SOURCES property, we will need to be able to access
the link libraries without accessing the link languages, as the languages
depend on the SOURCES.
2014-02-24 16:43:24 +01:00
Stephen Kelly 3bcb197c11 cmTarget: Re-arrange the ComputeLinkInterface method.
Arrange the logic so that the part which deals with libraries only is
at the top.  In a follow-up commit, this will be split into two methods.

Ensure that the explanatory CMP0022 comment is only present in one
location.
2014-02-24 16:43:24 +01:00
Stephen Kelly 326d07d27e cmTarget: Extract a ComputeLinkImplementationLanguages method. 2014-02-24 16:43:23 +01:00
Stephen Kelly 21e91350b0 cmTarget: Change GetTransitivePropertyLinkLibraries to output targets.
The callers already skip non-targets, so unify the target search.

Change supporting functions to accept a container of targets instead
of strings where possible.
2014-02-24 16:43:23 +01:00
Stephen Kelly f81eb49e8b cmTarget: Find source files on request.
In a follow-up, the list of sources will become dependent on
the config, so check for existence in cmTarget::GetSourceFiles
instead of up-front with cmGlobalGenerator::CheckTargets().
2014-02-24 16:43:23 +01:00
Stephen Kelly 84e5f5a004 cmTarget: Move SourceFileFlags to cmGeneratorTarget. 2014-02-24 16:43:23 +01:00
Brad King fb5b48bb27 Merge topic 'variable-expansion-tests'
a9bdef2d tests: Add variable expansion tests
2014-02-24 10:40:09 -05:00
Brad King 624b0fa923 Merge topic 'ExternalProject-BUILD_ALWAYS'
73e5c6ae ExternalProject: Add option to always run the build step
2014-02-24 10:40:07 -05:00
Brad King 461eaee53e Merge topic 'fix-find_dependency-macro'
5878c5d9 Always set version variable of find_dependency macro
2014-02-24 10:40:06 -05:00
Brad King cf42f93d07 Merge topic 'install-FILES-genex'
6e89c8a5 install: Support generator expressions in FILES and PROGRAMS mode
f11f7b34 cmInstallFilesGenerator: Add reference to calling cmMakefile
e190236c Help: Format install() command documentation
2014-02-24 10:40:04 -05:00
Brad King c124c7de1d Merge topic 'doc-add_test-cleanup'
8afa5fe8 Help: Revise and format add_test() command documentation
2014-02-24 10:40:03 -05:00
Julien Schueller f0111deb1e UseSWIG: Name extra generated files after module name (#10080) 2014-02-24 10:31:32 -05:00
Brad King b686154b61 Merge branch 'install-FILES-genex' into release 2014-02-24 09:16:36 -05:00
Kitware Robot 2f2bb105d5 CMake Nightly Date Stamp 2014-02-24 00:01:04 -05:00
Alex Merry 5878c5d919 Always set version variable of find_dependency macro
If there is no ARGV1, that is fine; version will be made empty, and no
version will be passed to find_package().

This is relevant when find_dependency is invoked multiple times,
sometimes with a version specified and sometimes without.

 find_dependency(dep1 3.4)
 find_dependency(dep2) # version still set to 3.4.
2014-02-23 11:31:30 +01:00