Commit Graph

19333 Commits

Author SHA1 Message Date
Stephen Kelly 1e5349a5a0 cmGlobalGenerator: Access makefile from makefiles container. 2015-08-29 09:15:37 +02:00
Kitware Robot 746c9f8882 CMake Nightly Date Stamp 2015-08-29 00:01:03 -04:00
Brad King bfb9d34f8a Makefile: Print color escapes only when necessary
Teach cmSystemTools::MakefileColorEcho to use the color printing API
only when we actually have a color to print.  This avoids printing
escape sequences that do not change the text attributes.

Since commit v3.3.0-rc1~480^2~4 (Makefile: Fix output during parallel
builds, 2015-02-05) we always use this code path to print progress and
rule messages even when color is disabled (e.g. in a try_compile).  It
is important to avoid printing escapes when there is no color because on
MSYS we have no isatty and so assume that vt100 escapes are supported,
but we do not want to print them when capturing try_compile output.
If we capture the vt100 escapes in try_compile output, they contain
unbalanced square brackets.  This causes CMakeParseImplicitLinkInfo
to fail to separate lines in a ;-list and therefore fail to extract
information from the link line.  Then mixed-language linking breaks.
2015-08-28 15:16:05 -04:00
Stephen Kelly 2b9a25d7f7 cmGlobalGenerator: Create global targets directly after Configure. 2015-08-28 18:44:39 +02:00
Stephen Kelly 3e08b4df95 cmMakefile: Skip Global targets for CMP0019 evaluation. 2015-08-28 18:44:39 +02:00
Stephen Kelly 357bf469c7 cmGlobalGenerator: Fill the project map at compute time. 2015-08-28 18:44:39 +02:00
Stephen Kelly ebf8d0a99a cmGlobalGenerator: Rename method. 2015-08-28 18:44:39 +02:00
Stephen Kelly bd096d30e0 cmGlobalGenerator: Avoid cmLocalGenerator until after Configure. 2015-08-28 18:44:39 +02:00
Stephen Kelly ff8ac8ee6a cmLocalGenerator: Create from already-constructed cmMakefile.
Don't manage the lifetime of the cmMakefile with cmLocalGenerator.
2015-08-28 18:44:39 +02:00
Stephen Kelly 0bd7279fd9 Ninja: Remove some incorrect comments adding no value. 2015-08-28 18:44:39 +02:00
Stephen Kelly 2f2d4da9dd cmCTestScriptHandler: Simplify deletes.
Deleting a nullptr is fine.
2015-08-28 18:44:38 +02:00
Stephen Kelly 7fdc9a8b5f QtAutogen: Use a smart pointer. 2015-08-28 18:44:38 +02:00
Stephen Kelly 92041eec49 cmGlobalGenerator: Remove MakeLocalGenerator method.
Inline implementation to callers.
2015-08-28 18:44:38 +02:00
Stephen Kelly acb006229d cmGlobalGenerator: Require a snapshot to create a local generator. 2015-08-28 18:44:38 +02:00
Stephen Kelly 83b8a927e5 cmMakefile: Remove cmLocalGenerator member. 2015-08-28 18:44:38 +02:00
Stephen Kelly 9b6a743b80 cmLocalGenerator: Remove Parent pointer. 2015-08-28 18:44:38 +02:00
Daniel Pfeifer ab2524d63f CTest: Fix XML double-encoding cases
Remove use of cmXMLSafe from CTest when generating content that is later
handled by cmXMLWriter.  This was broken by refactoring in the topic
merged by commit v3.3.0-rc1~22 (Merge topic 'ctest-xml-refactor',
2015-05-28).
2015-08-28 10:11:09 -04:00
Daniel Pfeifer dee84dc73d cmCTest{BZR,GIT,P4}: Remove unused cmXMLSafe includes 2015-08-28 10:11:08 -04:00
Daniel Pfeifer b3372db588 cmExtra{Kate,SublimeText}Generator: Remove unused cmXMLSafe includes 2015-08-28 10:11:08 -04:00
Kitware Robot 11d5088a2f CMake Nightly Date Stamp 2015-08-28 00:01:10 -04:00
Gilles Khouzam ac0bb4333d VS: Windows Store/Phone package cert thumbprint
Add the PackageCertificateThumbprint property when there is a
certificate on a WindowsStore or Phone app.
2015-08-27 13:35:18 -04:00
Brad King 92b835ec9d Simplify condition for using rpcrt4 library on Windows
Drop the CMAKE_BUILD_ON_VISUAL_STUDIO variable and hard-code the
condition at its only use.
2015-08-27 13:35:13 -04:00
Brad King 27e4b21dfa Merge topic 'use-generator-target'
c2b7336f cmGeneratorTarget: Move GetConfigCommonSourceFiles from cmTarget.
69329fff cmGeneratorTarget: Move GetLanguages from cmTarget.
0431f2c4 cmGeneratorTarget: Move ComputeLinkImplementationLanguages from cmTarget.
abe9505d cmGeneratorTarget: Move HaveBuildTreeRPath from cmTarget.
d4a24c0e cmGeneratorTarget: Move GetLinkImplementation from cmTarget.
83981cf5 cmTarget: Add GetLinkImplMap method.
771e79a2 cmLinkItem: Add cmOptionalLinkImplementation type.
3846ebcf cmLinkItem: Add cmLinkImplementation type.
a7f5d70d cmGeneratorTarget: Move compile defintions processing from cmTarget.
d051086c cmGeneratorTarget: Move compile features processing from cmTarget.
db4cb92b cmGeneratorTarget: Move compile options processing from cmTarget.
e6ccbf6f cmGeneratorTarget: Move include directory processing from cmTarget.
8bfb0c53 cmGeneratorTarget: Move link iface helpers from cmTarget.
2cb3e574 cmGeneratorTarget: Move GetImportLinkInterface from cmTarget.
6d3d099b cmGeneratorTarget: Move ComputeLinkInterfaceLibraries from cmTarget.
0db9d927 cmGeneratorTarget: Move GetLinkInterfaceLibraries from cmTarget.
...
2015-08-27 10:07:32 -04:00
Brad King 445077cbd2 Merge topic 'minor-cleanups'
7f551b4f cmGlobalGenerator: Implement VS6 check without virtual method.
cd6293cd cmMakefile: Fix style.
de6b2895 cmTarget: Remove vestigal method declaration.
e35ee02d cmTarget: Fix indentation.
00f2298f Reduce uses of cmMakefile::GetGlobalGenerator.
6254ba95 cmMakefile: Remove Internal class.
cf0a78dc cmGeneratorTarget: Issue messages through the local generator.
2015-08-27 10:04:12 -04:00
Brad King 0d0b9b52f8 Merge topic 'cmState-ProjectName'
637c56b4 cmGlobalGenerator: Implement FillProjectMap in terms of cmState.
b3f2299e cmState: Move ProjectName from cmMakefile.
6ce940ac cmMakefile: Use std::string in ProjectName API.
e8c0341d cmMakefile: Out-of-line GetProjectName.
2015-08-27 10:04:09 -04:00
Brad King 6904b6efdc Merge topic 'rm-cmLocalGenerator-Children'
867b5be8 cmLocalGenerator: Remove unused Children member.
6c832219 cmLocalGenerator: Implement child traversal in terms of cmState.
3fcf3837 Makefiles: Remove valueless cast.
223f4a66 cmLocalGenerator: Simplify condition.
ae026f54 cmState: Store Children states in parent state.
2015-08-27 10:04:07 -04:00
Brad King a97bb6ae3f Merge topic 'refactor-features'
e3078aa1 cmLocalGenerator: Implement GetFeature in terms of cmState.
7441fde3 cmLocalGenerator: Convert GetFeature recursion to loop.
ad0b0089 cmLocalGenerator: Simplify GetFeature implementation.
314c9ae3 cmLocalGenerator: Make GetFeature tail-recursive.
2015-08-27 10:04:05 -04:00
Brad King 2985b9c003 Merge topic 'refactor-progress'
7fbc56ac cmGlobalUnixMakefileGenerator3: Implement progress in terms of cmState.
65c434e1 cmGlobalUnixMakefileGenerator3: Inline an IsExcluded call.
be56feb6 cmGlobalGenerator: Extract new IsExcluded overload.
45f52003 cmGlobalGenerator: Implement IsExcluded in terms of cmState::Snapshot.
af9fc277 cmState: Make Snapshot EqualityComparable.
9b44018d cmGlobalGenerator: Convert IsExcluded to loop.
5f05b562 cmGlobalGenerator: Refactor IsExcluded.
95925a60 cmGlobalGenerator: Don't use else after return.
2015-08-27 10:04:03 -04:00
Kitware Robot 81ad5622b4 CMake Nightly Date Stamp 2015-08-27 00:01:06 -04:00
Stephen Kelly c2b7336ff3 cmGeneratorTarget: Move GetConfigCommonSourceFiles from cmTarget. 2015-08-26 19:46:33 +02:00
Stephen Kelly 69329fff70 cmGeneratorTarget: Move GetLanguages from cmTarget. 2015-08-26 19:46:32 +02:00
Stephen Kelly 0431f2c4d7 cmGeneratorTarget: Move ComputeLinkImplementationLanguages from cmTarget. 2015-08-26 19:46:32 +02:00
Stephen Kelly abe9505df9 cmGeneratorTarget: Move HaveBuildTreeRPath from cmTarget. 2015-08-26 19:46:32 +02:00
Stephen Kelly d4a24c0e95 cmGeneratorTarget: Move GetLinkImplementation from cmTarget. 2015-08-26 19:46:32 +02:00
Stephen Kelly 83981cf593 cmTarget: Add GetLinkImplMap method.
This is a temporary refactoring artifact.
2015-08-26 19:46:31 +02:00
Stephen Kelly 771e79a2bf cmLinkItem: Add cmOptionalLinkImplementation type.
Move the associated Compute* methods to the cmTarget class.
2015-08-26 19:46:31 +02:00
Stephen Kelly 3846ebcf2b cmLinkItem: Add cmLinkImplementation type. 2015-08-26 19:46:31 +02:00
Stephen Kelly a7f5d70dde cmGeneratorTarget: Move compile defintions processing from cmTarget. 2015-08-26 19:46:30 +02:00
Stephen Kelly d051086cce cmGeneratorTarget: Move compile features processing from cmTarget. 2015-08-26 19:46:10 +02:00
Stephen Kelly db4cb92bda cmGeneratorTarget: Move compile options processing from cmTarget. 2015-08-26 19:45:51 +02:00
Stephen Kelly e6ccbf6f30 cmGeneratorTarget: Move include directory processing from cmTarget. 2015-08-26 19:45:21 +02:00
Stephen Kelly 8bfb0c53da cmGeneratorTarget: Move link iface helpers from cmTarget. 2015-08-26 19:39:29 +02:00
Stephen Kelly 2cb3e57402 cmGeneratorTarget: Move GetImportLinkInterface from cmTarget. 2015-08-26 19:39:17 +02:00
Stephen Kelly 6d3d099b4a cmGeneratorTarget: Move ComputeLinkInterfaceLibraries from cmTarget. 2015-08-26 19:38:57 +02:00
Stephen Kelly 0db9d92787 cmGeneratorTarget: Move GetLinkInterfaceLibraries from cmTarget. 2015-08-26 19:38:37 +02:00
Stephen Kelly 84b847e42f cmGeneratorTarget: Move ComputeLinkInterface from cmTarget. 2015-08-26 19:38:14 +02:00
Stephen Kelly 6220241fd0 cmGeneratorTarget: Move GetLinkInterface from cmTarget. 2015-08-26 19:37:45 +02:00
Stephen Kelly 6353816786 cmTarget: Add GetHeadToLinkInterfaceMap methods. 2015-08-26 19:37:32 +02:00
Stephen Kelly 20993de464 cmTarget: Move cmHeadToLinkInterfaceMap out. 2015-08-26 19:37:06 +02:00
Stephen Kelly f8ca51a054 cmGeneratorTarget: Move ComputeLinkInterface from cmTarget. 2015-08-26 19:36:13 +02:00
Stephen Kelly d67584ccc4 cmTarget: Move link interface libraries struct out. 2015-08-26 19:35:45 +02:00
Kitware Robot 33df7f36d0 CMake Nightly Date Stamp 2015-08-26 00:01:07 -04:00
Stephen Kelly 7f551b4f26 cmGlobalGenerator: Implement VS6 check without virtual method.
Don't require existence of a global generator for this check.
2015-08-25 23:06:33 +02:00
Stephen Kelly cd6293cdf8 cmMakefile: Fix style. 2015-08-25 23:06:33 +02:00
Stephen Kelly de6b289582 cmTarget: Remove vestigal method declaration.
The definition was removed in commit v3.1.0-rc1~688^2~5 (cmTarget:
Allow any generator expression in SOURCES property., 2014-03-18).
2015-08-25 23:06:33 +02:00
Stephen Kelly e35ee02d6e cmTarget: Fix indentation. 2015-08-25 23:06:33 +02:00
Stephen Kelly 00f2298f07 Reduce uses of cmMakefile::GetGlobalGenerator.
Don't assume the cmMakefile has a global generator.
2015-08-25 23:06:33 +02:00
Stephen Kelly 6254ba9578 cmMakefile: Remove Internal class.
Move only remaining state to the direct class.
2015-08-25 22:19:57 +02:00
Stephen Kelly cf0a78dc4c cmGeneratorTarget: Issue messages through the local generator. 2015-08-25 22:18:39 +02:00
Gregor Jasny 48fe617e66 Fix installation of iOS targets (#12506)
Since cmTarget::ComputeOutputDir results can be used in CMake code of script
cmake_install.cmake and in Xcode internals, string ${EFFECTIVE_PLATFORM_NAME}
should be used instead of $(EFFECTIVE_PLATFORM_NAME) because it works for both.

Value of CMAKE_CFG_INTDIR can't be used in BUILD_TYPE argument of install
command since it contains $(EFFECTIVE_PLATFORM_NAME) (e.g. equals to
`Release-iphoneos`, `Debug-iphoneos`, etc.).
2015-08-25 21:53:51 +02:00
Gregor Jasny d2c2319d64 Replace CMAKE_XCODE_EFFECTIVE_PLATFORMS with call to PlatformIsAppleIos
Currently the CMAKE_XCODE_EFFECTIVE_PLATFORMS property acts only as
a kind of toggle switch to enable iOS project layout features.
But instead of relying on this undocumented property, better detect
the presence of an iOS SDK directly.
2015-08-25 21:53:51 +02:00
Brad King cdb9984bff Merge topic 'consistent-empty'
e876963f Replace '0 == instances.size()' with instances.empty().
44ffb9cd Replace foo.size() pattern with !foo.empty().
8f89f8b1 Replace 'foo.size() != 0' pattern with !foo.empty().
524610f9 Replace 'foo.size() == 0' pattern with foo.empty().
0e14c7ee Replace 'foo.size() > 0' pattern with !foo.empty().
2015-08-25 15:13:33 -04:00
Brad King 96dafff97f Merge topic 'libarchive-modern-apis'
e7f93715 Use modern libarchive APIs
2015-08-25 15:13:31 -04:00
Brad King 9aeee9c608 Merge topic 'cmState-prop_dir'
f4150bd8 cmState: Move directory Properties from cmMakefile.
01787547 cmMakefile: Inline GetDefinitions into GetProperty.
2015-08-25 15:13:23 -04:00
Stephen Kelly 637c56b4e0 cmGlobalGenerator: Implement FillProjectMap in terms of cmState. 2015-08-25 19:57:44 +02:00
Stephen Kelly b3f2299e06 cmState: Move ProjectName from cmMakefile. 2015-08-25 19:57:42 +02:00
Stephen Kelly 6ce940ac97 cmMakefile: Use std::string in ProjectName API. 2015-08-25 19:55:34 +02:00
Stephen Kelly e8c0341d86 cmMakefile: Out-of-line GetProjectName. 2015-08-25 19:55:32 +02:00
Kitware Robot a8f8848241 CMake Nightly Date Stamp 2015-08-25 00:01:07 -04:00
Stephen Kelly e876963fc9 Replace '0 == instances.size()' with instances.empty().
This is not a pattern.
2015-08-24 20:47:18 +02:00
Stephen Kelly 44ffb9cdb4 Replace foo.size() pattern with !foo.empty(). 2015-08-24 20:47:18 +02:00
Stephen Kelly 8f89f8b1e9 Replace 'foo.size() != 0' pattern with !foo.empty(). 2015-08-24 20:47:17 +02:00
Stephen Kelly 524610f967 Replace 'foo.size() == 0' pattern with foo.empty(). 2015-08-24 20:47:17 +02:00
Stephen Kelly 0e14c7ee63 Replace 'foo.size() > 0' pattern with !foo.empty(). 2015-08-24 20:47:17 +02:00
Brad King ddb7f280ce Merge topic 'drop-cmsys-std-layer'
04e708d8 Remove use of include <cmsys/IOStream.hxx> from KWSys
e8585f45 Remove use of include <cmsys/stl/*> and cmsys_stl::*
6db713c0 Remove use of include <cmsys/ios/*> and cmsys_ios::*
2015-08-24 14:28:43 -04:00
Stephen Kelly 867b5be8b8 cmLocalGenerator: Remove unused Children member. 2015-08-24 20:05:38 +02:00
Stephen Kelly 6c832219ea cmLocalGenerator: Implement child traversal in terms of cmState. 2015-08-24 20:05:37 +02:00
Stephen Kelly 3fcf383763 Makefiles: Remove valueless cast. 2015-08-24 20:05:37 +02:00
Stephen Kelly 223f4a662f cmLocalGenerator: Simplify condition. 2015-08-24 20:05:37 +02:00
Stephen Kelly ae026f5458 cmState: Store Children states in parent state. 2015-08-24 20:05:37 +02:00
Stephen Kelly e3078aa153 cmLocalGenerator: Implement GetFeature in terms of cmState. 2015-08-24 20:04:37 +02:00
Stephen Kelly 7441fde34a cmLocalGenerator: Convert GetFeature recursion to loop. 2015-08-24 20:04:37 +02:00
Stephen Kelly ad0b0089ab cmLocalGenerator: Simplify GetFeature implementation. 2015-08-24 20:04:37 +02:00
Stephen Kelly 314c9ae33b cmLocalGenerator: Make GetFeature tail-recursive. 2015-08-24 20:04:37 +02:00
Stephen Kelly 7fbc56ac40 cmGlobalUnixMakefileGenerator3: Implement progress in terms of cmState. 2015-08-24 20:03:30 +02:00
Stephen Kelly 65c434e1b0 cmGlobalUnixMakefileGenerator3: Inline an IsExcluded call. 2015-08-24 20:03:29 +02:00
Stephen Kelly be56feb618 cmGlobalGenerator: Extract new IsExcluded overload. 2015-08-24 20:03:29 +02:00
Stephen Kelly 45f5200396 cmGlobalGenerator: Implement IsExcluded in terms of cmState::Snapshot. 2015-08-24 20:03:29 +02:00
Stephen Kelly af9fc27753 cmState: Make Snapshot EqualityComparable. 2015-08-24 20:03:29 +02:00
Stephen Kelly 9b44018d52 cmGlobalGenerator: Convert IsExcluded to loop. 2015-08-24 20:03:29 +02:00
Stephen Kelly 5f05b56284 cmGlobalGenerator: Refactor IsExcluded.
Make it easier to convert it to a loop.
2015-08-24 20:03:29 +02:00
Stephen Kelly 95925a60fc cmGlobalGenerator: Don't use else after return. 2015-08-24 20:03:29 +02:00
Stephen Kelly f4150bd88d cmState: Move directory Properties from cmMakefile. 2015-08-24 20:02:21 +02:00
Stephen Kelly 0178754725 cmMakefile: Inline GetDefinitions into GetProperty.
It will soon move to cmState.
2015-08-24 19:48:45 +02:00
Páder Rezső e7f937155f Use modern libarchive APIs
Replace use of deprecated libarchive3 functions with their modern
equivalents.
2015-08-24 10:40:04 -04:00
Brad King 2370a99400 Merge topic 'cmState-definitions'
bff27391 cmState: Host variable definitions.
6954c893 cmState: Add a VariableScope snapshot type.
1fc645bd cmState: Add a Base snapshot type.
0f070dd3 cmMakefile: Decouple the container of cmDefinitions from scoping logic.
25e04ddf cmDefinitions: Implement in terms of cmLinkedTree.
4bbe261c cmMakefile: Extract InitializeVarScope method.
2015-08-24 10:07:04 -04:00
Brad King 58043880b9 Merge topic 'ios-app-bundle-layout'
744e6c49 Fix iOS Bundle layouts (#15669)
2015-08-24 10:07:02 -04:00
Brad King eeeb0eb751 Merge topic 'remove-unused-cmPolicies'
d8a57148 cmake: Remove unused cmPolicies member.
2015-08-24 10:07:00 -04:00
Brad King d5d86ecf50 Merge topic 'refactor-progress'
3fa1b964 cmGlobalUnixMakefileGenerator3: Change the progress container key.
55e39276 cmState: Make it possible to order cmState::Snapshot.
04168cbb cmGlobalUnixMakefileGenerator3: Rename member.
2394584c cmGlobalGenerator: Rename progress initializer method.
b9eb3cd1 cmGlobalGenerator: Move LG to target map to subclass.
f5d2b7a6 cmGlobalGenerator: Remove clearance of map.
2015-08-24 10:06:58 -04:00
Brad King 9135e3707d Merge topic 'generators-use-cmLocalGenerator'
1f39ee5b cmInstallExportGenerator: Require cmLocalGenerator, not cmMakefile.
c259b830 cmTestGenerator: Require cmLocalGenerator, not cmMakefile.
75e511ee cmInstallFilesGenerator: Require cmLocalGenerator, not cmMakefile.
2015-08-24 10:06:56 -04:00
Brad King aaf9532bbc Merge topic 'fix-include_directories-BEFORE'
a4bd3010 include_directories: Fix regression in BEFORE option (#15693)
2015-08-24 10:06:54 -04:00
Gregor Jasny 744e6c497c Fix iOS Bundle layouts (#15669)
In contrast to Mac OS X App bundle layout the iOS one lacks the
Contents/MacOSX structure.  See also the Bundle Structures documentation
in Mac Developer Library:

  https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html

For now detect iOS targets by checking the SDK name/path.
2015-08-24 09:50:20 -04:00
Kitware Robot 884c63176f CMake Nightly Date Stamp 2015-08-24 00:01:06 -04:00
Stephen Kelly bff27391a9 cmState: Host variable definitions. 2015-08-23 19:05:11 +02:00
Stephen Kelly d8a5714839 cmake: Remove unused cmPolicies member.
heaptrack showed a 1 byte allocation with the backtrace pointing
here, as is the case since commit v3.3.0-rc1~112^2~5 (cmPolicies:
Remove unused cmPolicy class., 2015-05-03)
2015-08-23 18:28:01 +02:00
Stephen Kelly 3fa1b9641d cmGlobalUnixMakefileGenerator3: Change the progress container key. 2015-08-23 18:05:13 +02:00
Stephen Kelly 55e3927634 cmState: Make it possible to order cmState::Snapshot. 2015-08-23 18:05:13 +02:00
Stephen Kelly 04168cbb59 cmGlobalUnixMakefileGenerator3: Rename member. 2015-08-23 18:05:13 +02:00
Stephen Kelly 2394584ce2 cmGlobalGenerator: Rename progress initializer method. 2015-08-23 18:05:13 +02:00
Stephen Kelly b9eb3cd140 cmGlobalGenerator: Move LG to target map to subclass.
This is the only user.
2015-08-23 18:05:01 +02:00
Stephen Kelly f5d2b7a694 cmGlobalGenerator: Remove clearance of map.
It is always cleared before being re-populated.
2015-08-23 17:49:11 +02:00
Stephen Kelly 1f39ee5beb cmInstallExportGenerator: Require cmLocalGenerator, not cmMakefile. 2015-08-23 17:46:23 +02:00
Stephen Kelly c259b83026 cmTestGenerator: Require cmLocalGenerator, not cmMakefile. 2015-08-23 17:46:07 +02:00
Stephen Kelly 75e511eeaf cmInstallFilesGenerator: Require cmLocalGenerator, not cmMakefile. 2015-08-23 17:21:27 +02:00
Stephen Kelly 6954c8936f cmState: Add a VariableScope snapshot type.
Match the scopes currently used in cmMakefile for definitions.
2015-08-23 17:08:54 +02:00
Stephen Kelly 1fc645bd9c cmState: Add a Base snapshot type.
For completeness mostly.
2015-08-23 17:08:54 +02:00
Stephen Kelly 0f070dd3e1 cmMakefile: Decouple the container of cmDefinitions from scoping logic.
Maintain a Parent tree node for writing to in RaiseScope.
2015-08-23 17:08:53 +02:00
Stephen Kelly 25e04ddffe cmDefinitions: Implement in terms of cmLinkedTree.
Store the definitions in a cmLinkedTree in the cmMakefile.  This can
be moved to cmState and then the tree will provide snapshotting
possibilities.  It will also make the Closure copy created at
the start of each cmMakefile unnecesarry.
2015-08-23 17:08:53 +02:00
Stephen Kelly 4bbe261cd3 cmMakefile: Extract InitializeVarScope method. 2015-08-23 17:08:53 +02:00
Kitware Robot b5f17d1b80 CMake Nightly Date Stamp 2015-08-23 00:01:06 -04:00
Kitware Robot 29c1385675 CMake Nightly Date Stamp 2015-08-22 00:01:07 -04:00
Brad King a4bd30104f include_directories: Fix regression in BEFORE option (#15693)
Refactoring in commit 6ed9c7e0 (cmState: Host buildsystem properties for
directories, 2015-07-18) broke include_directories(BEFORE).  Fix it and
add a test case.
2015-08-21 15:21:37 -04:00
Brad King 04e708d8df Remove use of include <cmsys/IOStream.hxx> from KWSys
We no longer need this compatibility layer for the compilers we support.
2015-08-21 10:54:57 -04:00
Brad King badde9c2a1 Merge topic 'modules-no-soname'
f799ffb5 Do not set SONAME for MODULE library targets (#15705)
899458ab Tests: Cover NO_SONAME property for SHARED libraries
2015-08-21 09:29:06 -04:00
Brad King c450686ef2 Merge topic 'OUTPUT_NAME-genex-no-recursion'
3c37d264 cmGeneratorTarget: Avoid recursion in GetOutputName method
2015-08-21 09:29:02 -04:00
Brad King cecd0d186d Merge topic 'vs-fix-obj-extension'
3e94f94b cmLocalVisualStudioGenerator: Use computed .obj extension (#13685)
2015-08-21 09:28:58 -04:00
Brad King 4ae9362b5b Merge topic 'get-filename-component-base-dir'
e89ea3d1 get_filename_component:  Teach new BASE_DIR parameter.
2015-08-21 09:28:53 -04:00
Kitware Robot 3755250f8e CMake Nightly Date Stamp 2015-08-21 00:01:09 -04:00
Brad King e8585f45f5 Remove use of include <cmsys/stl/*> and cmsys_stl::*
We no longer need this compatibility layer for the compilers we support.
2015-08-20 16:19:08 -04:00
Brad King 6db713c07f Remove use of include <cmsys/ios/*> and cmsys_ios::*
We no longer need this compatibility layer for the compilers we support.
2015-08-20 16:19:08 -04:00
Felix Geyer f799ffb5cb Do not set SONAME for MODULE library targets (#15705)
The SONAME field is only useful for shared libraries that application
link against.
2015-08-20 10:45:09 -04:00
Robert Goulet 3c37d2642d cmGeneratorTarget: Avoid recursion in GetOutputName method
Since support for generator expressions was added to OUTPUT_NAME it is
possible for project code to cause recursion in this method by using a
$<TARGET_FILE> genex.  Detect and reject such cases.
2015-08-20 09:56:45 -04:00
Kitware Robot e72a5b2c0b CMake Nightly Date Stamp 2015-08-20 00:01:07 -04:00
Kitware Robot 404d16e7bc CMake Nightly Date Stamp 2015-08-19 00:01:08 -04:00
Bastien Schatt 3e94f94b89 cmLocalVisualStudioGenerator: Use computed .obj extension (#13685)
CMAKE_<LANG>_OUTPUT_EXTENSION tells us the proper extension for the
current toolchain.  Teach the ComputeObjectFilenames method to use
GetLanguageOutputExtension to look up the extension instead of
hard-coding ".obj".  This is already done in the code path for explicit
file names inside our call to GetObjectFileNameWithoutTarget.
2015-08-18 11:39:52 -04:00
Brad King 868be9c640 Merge topic 'cmake-gui-high-resolution'
a41ebd4e cmake-gui: Add support for HiDPI (Retina) screens on OS X
2015-08-18 10:12:01 -04:00
Brad King fb329c0bc1 Merge topic 'build-subdir'
ba1065ab cmake: Add support for "--build ." in subdirectory (#15696)
2015-08-18 10:11:58 -04:00
Kitware Robot 76a54a4486 CMake Nightly Date Stamp 2015-08-18 00:01:08 -04:00
James Johnston e89ea3d190 get_filename_component: Teach new BASE_DIR parameter.
In the get_filename_component command, add a new BASE_DIR parameter to
use with the ABSOLUTE and REALPATH options.  This will be used when
finding an absolute path from a relative path.
2015-08-17 23:55:38 -04:00
Francois Best a41ebd4ee5 cmake-gui: Add support for HiDPI (Retina) screens on OS X 2015-08-17 11:36:42 -04:00
Brad King a38ea312c0 Merge topic 'propagate-link-search-to-try_compile'
7f0b83e0 try_compile: Update documentation for other propagated variables
fb77c2c5 try_compile: Propogate the CMAKE_LINK_SEARCH_ variables
2015-08-17 10:25:04 -04:00
Brad King bc9103ed5b Merge topic 'extended-length-paths'
e06ea837 cmSystemTools: Use extended length paths for Windows apis.
2015-08-17 10:25:02 -04:00
Brad King 89b483f2b6 Merge topic 'update-curl'
4071a747 curl: Update README-CMake.txt for new snapshot
7727d485 curl: Update configuration of build within CMake
3f2f1a94 curl: Fix check for gethostbyname_r with 5 arguments
91e8d35a Merge branch 'curl-upstream' into update-curl
602cdc06 cmCurl: Tolerate lack of CURLOPT_CAPATH support
70654261 curl 7.44.0 (reduced)
2015-08-17 10:24:49 -04:00
Brad King cb99eff642 Merge topic 'use-generator-target'
9b449e9c cmComputeLinkInformation: Lookup a target only if we have one
2015-08-17 10:24:42 -04:00
Kitware Robot 0f27bcc9ec CMake Nightly Date Stamp 2015-08-17 00:01:05 -04:00
Kitware Robot 5c8e1ca283 CMake Nightly Date Stamp 2015-08-16 00:01:05 -04:00
Clinton Stimpson e06ea8373f cmSystemTools: Use extended length paths for Windows apis. 2015-08-14 23:14:06 -06:00
Clinton Stimpson ba1065ab7b cmake: Add support for "--build ." in subdirectory (#15696) 2015-08-14 22:46:53 -06:00
Kitware Robot 1628a8af77 CMake Nightly Date Stamp 2015-08-15 00:01:09 -04:00
Chuck Atkins fb77c2c54b try_compile: Propogate the CMAKE_LINK_SEARCH_ variables 2015-08-14 11:48:01 -04:00
Kitware Robot 17ecfd8210 CMake Nightly Date Stamp 2015-08-14 00:01:08 -04:00
Brad King a07d16085b Merge topic 'OUTPUT_DIRECTORY-genex'
d25819bc Add generator expression support to OUTPUT_DIRECTORY target properties
e36a05fd cmTarget: Detect and diagnose recursion in GetOutputInfo
2015-08-13 10:38:54 -04:00
Chuck Atkins 675ef165f2 Allow LINK_SEARCH_{START,END}_STATIC props to have default values.
Use the CMAKE_LINK_SEARCH_START_STATIC and CMAKE_LINK_SEARCH_END_STATIC
variables to initialize the LINK_SEARCH_START_STATIC and
LINK_SEARCH_END_STATIC target properties respectively.
2015-08-13 10:34:44 -04:00
Brad King 9b449e9c5d cmComputeLinkInformation: Lookup a target only if we have one
The change in commit 27252b24 (cmComputeLinkInformation: Simplify
generator object access, 2015-08-02) broke the conditional use of a
target introduced in commit 41abdc17 (cmGeneratorTarget: Move GetSOName
from cmTarget, 2015-08-04).  Restore the conditional lookup.  Add a test
case that hacks platform information variables to trigger this code
everywhere.
2015-08-13 10:24:10 -04:00
Brad King 4a6fe02908 CMake 3.3.1 2015-08-13 09:17:06 -04:00
Kitware Robot a0b32a348d CMake Nightly Date Stamp 2015-08-13 00:01:07 -04:00
Brad King 602cdc06a0 cmCurl: Tolerate lack of CURLOPT_CAPATH support
Since curl 7.39 the CURLOPT_CAPATH setting may be rejected with a
CURLE_NOT_BUILT_IN error.  Simply tolerate this with silent failure
since we just will not use the CAPATH setting in this case.
2015-08-12 15:43:24 -04:00
Robert Goulet d25819bc26 Add generator expression support to OUTPUT_DIRECTORY target properties
If {ARCHIVE,LIBRARY,RUNTIME}_OUTPUT_DIRECTORY is set with a genex then
do not add the per-config subdirectory on multi-config generators.
This will allow projects to use $<CONFIG> to place the per-config
part of the directory path somewhere other than the end.
2015-08-12 13:43:00 -04:00
Robert Goulet e36a05fd7f cmTarget: Detect and diagnose recursion in GetOutputInfo 2015-08-12 13:42:57 -04:00
Brad King 6731eab90c Merge topic 'ctest-report-compiler-version'
48c6e7f2 CTest: Report to CDash the compiler version used to build the project
2015-08-12 09:30:29 -04:00
Brad King 7216742ea6 Merge topic 'target_include_directories-relative-SYSTEM-dirs'
8c076a8b cmTarget: Remove unused AddSystemIncludeDirectories overload
5790aca4 target_include_directories: Support relative SYSTEM include dirs (#15464)
2015-08-12 09:30:27 -04:00
Kitware Robot b583800203 CMake Nightly Date Stamp 2015-08-12 00:01:06 -04:00
Daniel Pfeifer 48c6e7f2cf CTest: Report to CDash the compiler version used to build the project
The compiler version reported since commit v2.8.2~1018 (CTest-side
support for compiler name and compiler version, 2009-10-12) only
reported the version of the compiler used to build CMake, and only
if it defined "_COMPILER_VERSION".  Instead use the version of
the compiler used to build the project CTest is testing.
2015-08-11 09:40:25 -04:00
Gregor Jasny 8c076a8bdb cmTarget: Remove unused AddSystemIncludeDirectories overload 2015-08-11 08:53:38 -04:00
Gregor Jasny 5790aca4ad target_include_directories: Support relative SYSTEM include dirs (#15464) 2015-08-11 08:53:00 -04:00
Brad King 422d3f68de Merge topic 'bootstrap-no-ninja'
4e3c7725 bootstrap: Do not build Ninja generator
2015-08-11 08:47:12 -04:00
Brad King 9e51147646 Merge topic 'global-generator-makefiles'
6d8a125e cmQtAutoGenerators: Prefer a generator to access global generator.
5f66900e cmGlobalGenerator: Port Find API to cmMakefile.
c5b8841f cmGlobalGenerator: Create global targets from cmMakefiles.
8f75ea3b cmGlobalGenerator: Port global target creation to cmMakefile.
56f0540b cmGlobalGenerator: Port Configure-time check to cmMakefile.
19b546ef cmGlobalGenerator: Base final target property computation on Makefiles.
f8be9ba9 cmGlobalGenerator: Base progress on Makefiles, not LocalGenerators.
bc1097e3 cmExportLibraryDependenciesCommand: Port to cmMakefile.
204aecdf cmGlobalGenerator: Port configure-time code to cmMakefile.
3dd6f0a5 cmake: Port configure-time code to cmMakefile.
73e4df99 cmGlobalGenerator: Store a container of cmMakefiles.
19369937 cmGeneratorTarget: Port internal type to cmGeneratorTarget.
32f131b0 cmGeneratorTarget: Prefer the local generator to access the global.
2015-08-11 08:47:10 -04:00
Brad King 6e5953e9a4 Merge topic 'use-generator-target'
29886ce7 cmTarget: Use a simpler delete algorithm.
197f4de1 cmTarget: Split storage of compile definitions from genexes.
44e071ae cmTarget: Split storage of compile features from genexes.
772ecef4 cmTarget: Split storage of compile options from genexes.
1f54bc1c cmTarget: Split storage of include directories from genexes.
7568199b cmTarget: Request only the link libraries where needed.
10040601 cmLinkImplementationLibraries: Move to namespace scope.
d9da6ee2 cmLinkItem: Split to separate file.
27252b24 cmComputeLinkInformation: Simplify generator object access.
2015-08-11 08:47:08 -04:00
Brad King f33ccc270e Merge topic 'rm-Makefile-LocalGenerator'
1689c91d cmMakefile: Remove unused method.
dd11f72c cmGlobalGenerator: Base exclusion computation on cmGeneratorTarget.
2015-08-11 08:47:05 -04:00
Kitware Robot 489ab9cb3a CMake Nightly Date Stamp 2015-08-11 00:01:05 -04:00
Brad King 4e3c7725d0 bootstrap: Do not build Ninja generator
The CMake bootstrap process uses Makefile generators so there is no
need to build the Ninja generators during bootstrap.
2015-08-10 13:26:52 -04:00
Brad King 2f16e60843 Merge topic 'ninja-version-handling'
874e70bc Ninja: Prevent generating if installed Ninja version is too old.
c5ac2b9d Ninja: Centralized required Ninja version numbers and comparisons.
2015-08-10 09:13:24 -04:00
Brad King 815a2c09d3 Merge topic 'fix-process-error-handling'
203b20df cmcmd:  Improve error handling when executing a process.
b28b07db cmCTestCoverageHandle:  Improve error handling.
2015-08-10 09:13:22 -04:00
Brad King 16b889da9a Merge topic 'fix-get-filename-component'
d035e968 get_filename_component: Fix bug where CACHE was ignored.
38ed5866 get_filename_component: Added initial tests for PROGRAM component.
772ca69f get_filename_component: Tests now check for proper CACHE usage.
2015-08-10 09:13:20 -04:00
Brad King 3d0a719b70 Merge topic 'change-nmake-env-warning'
afeb4eb2 nmake/jom: Only warn about bad VS environment if compiler not found.
2015-08-10 09:13:18 -04:00
Brad King e8592e555f Merge topic 'fix-TARGET_FILE-imported'
35aab9df Reject TARGET_PDB_FILE for imported targets instead of crashing
2015-08-10 09:13:16 -04:00
Kitware Robot 7979e25c8b CMake Nightly Date Stamp 2015-08-10 00:01:09 -04:00
James Johnston 874e70bc57 Ninja: Prevent generating if installed Ninja version is too old. 2015-08-09 13:51:35 -04:00
James Johnston c5ac2b9df3 Ninja: Centralized required Ninja version numbers and comparisons. 2015-08-09 13:31:24 -04:00
Kitware Robot cf4bbf734c CMake Nightly Date Stamp 2015-08-09 00:01:05 -04:00
James Johnston 203b20df98 cmcmd: Improve error handling when executing a process. 2015-08-08 01:06:27 -04:00
James Johnston b28b07db47 cmCTestCoverageHandle: Improve error handling. 2015-08-08 00:28:38 -04:00
Kitware Robot 101ba25e6a CMake Nightly Date Stamp 2015-08-08 00:01:08 -04:00
Stephen Kelly 29886ce764 cmTarget: Use a simpler delete algorithm.
This way, the methods can be moved without requiring a local algorithm.

The containers use automatic storage.
2015-08-07 21:55:17 +02:00
Stephen Kelly 197f4de110 cmTarget: Split storage of compile definitions from genexes. 2015-08-07 17:06:19 +02:00
Stephen Kelly 44e071aeff cmTarget: Split storage of compile features from genexes. 2015-08-07 17:06:18 +02:00
Stephen Kelly 772ecef4b8 cmTarget: Split storage of compile options from genexes. 2015-08-07 17:06:17 +02:00
Stephen Kelly 1f54bc1cf3 cmTarget: Split storage of include directories from genexes. 2015-08-07 17:06:15 +02:00
Stephen Kelly 7568199b4d cmTarget: Request only the link libraries where needed. 2015-08-07 17:06:15 +02:00
Kitware Robot 3cefadbff0 CMake Nightly Date Stamp 2015-08-07 00:01:07 -04:00
Stephen Kelly 6d8a125e49 cmQtAutoGenerators: Prefer a generator to access global generator. 2015-08-07 04:10:29 +02:00
Stephen Kelly 5f66900e71 cmGlobalGenerator: Port Find API to cmMakefile. 2015-08-07 04:10:29 +02:00
Stephen Kelly c5b8841fd9 cmGlobalGenerator: Create global targets from cmMakefiles. 2015-08-07 04:10:29 +02:00
Stephen Kelly 8f75ea3b5e cmGlobalGenerator: Port global target creation to cmMakefile. 2015-08-07 04:10:29 +02:00
Stephen Kelly 56f0540b51 cmGlobalGenerator: Port Configure-time check to cmMakefile.
This uses no generate-time state.
2015-08-07 04:10:29 +02:00
Stephen Kelly 19b546ef76 cmGlobalGenerator: Base final target property computation on Makefiles. 2015-08-07 04:10:29 +02:00
Stephen Kelly f8be9ba9c2 cmGlobalGenerator: Base progress on Makefiles, not LocalGenerators. 2015-08-07 04:10:28 +02:00
Stephen Kelly bc1097e3d9 cmExportLibraryDependenciesCommand: Port to cmMakefile. 2015-08-07 04:10:28 +02:00
Stephen Kelly 204aecdf82 cmGlobalGenerator: Port configure-time code to cmMakefile. 2015-08-07 04:10:28 +02:00
Stephen Kelly 3dd6f0a5bc cmake: Port configure-time code to cmMakefile. 2015-08-07 04:10:28 +02:00