Stephen Kelly
cfb2f7508a
Use cmGeneratorTarget for property access.
2015-10-17 17:30:38 +02:00
Stephen Kelly
ed09f3b292
Use IsImported from cmGeneratorTarget.
2015-10-16 20:24:44 +02:00
Stephen Kelly
beff29f0d4
cmGeneratorTarget: Move ComputeVersionedName from cmTarget.
2015-10-16 20:24:44 +02:00
Stephen Kelly
12e4790a0b
cmGeneratorTarget: Move GetTargetVersion from cmTarget.
2015-10-16 20:24:44 +02:00
Stephen Kelly
1427227720
cmGeneratorTarget: Move CheckCMP0004 from cmTarget.
2015-10-16 20:24:44 +02:00
Stephen Kelly
8f363d6771
cmGeneratorTarget: Move ImportInfo from cmTarget.
2015-10-16 20:24:43 +02:00
Stephen Kelly
a892b285f8
cmGeneratorTarget: Move ImportedGetLocation from cmTarget.
2015-10-16 20:24:43 +02:00
Stephen Kelly
cb8c728f17
cmGeneratorTarget: Move GetFullNameImported from cmTarget.
2015-10-16 20:24:43 +02:00
Stephen Kelly
fb4fca0b5e
cmGeneratorTarget: Access global state through LocalGenerator.
2015-10-16 20:24:43 +02:00
Stephen Kelly
50fb2ad646
cmGeneratorTarget: Port Utility items to cmGeneratorTarget.
2015-10-16 20:17:32 +02:00
Stephen Kelly
d233030f5b
cmGeneratorTarget: Port implementation to cmGeneratorTarget.
2015-10-16 20:17:31 +02:00
Stephen Kelly
0ebe2bbf4a
cmGeneratorTarget: Port language computation to cmGeneratorTarget.
2015-10-16 20:17:31 +02:00
Stephen Kelly
60bd9f9c92
cmGeneratorTarget: Move GetObjectLibrariesCMP0026 from cmTarget.
2015-10-16 20:17:22 +02:00
Stephen Kelly
82a6eaf4d0
cmGeneratorTarget: Port TraceDependencies to cmTarget.
...
The problem of needing cmTarget is not solved with this, but the removal
of the cmTarget member is valuable.
2015-10-16 20:17:13 +02:00
Stephen Kelly
8aaed08696
cmGeneratorTarget: Port object library handling to cmGeneratorTarget.
2015-10-16 20:15:03 +02:00
Stephen Kelly
393654bf49
cmGeneratorTarget: Port internal class to cmGeneratorTarget.
2015-10-16 19:20:17 +02:00
Brad King
dfd371dc01
Merge topic 'genex-consumers-generator-targets'
...
c4ae1578
Genex: Port some access API to cmGeneratorTarget.
6d27a3db
Genex: Port implementation to cmGeneratorTarget.
2015-10-16 09:35:37 -04:00
Stephen Kelly
c4ae157865
Genex: Port some access API to cmGeneratorTarget.
2015-10-15 22:40:56 +02:00
Stephen Kelly
55474e6182
cmState: Move GetTargetTypeName from cmTarget.
2015-10-15 00:41:40 +02:00
Stephen Kelly
38df5c36d6
Remove now-obsolete casts.
2015-10-15 00:41:40 +02:00
Stephen Kelly
4ee2b26708
cmGeneratorTarget: Use enum for GetType.
2015-10-15 00:41:40 +02:00
Stephen Kelly
eac15298a8
cmState: Move TargetType enum from cmTarget.
...
Mostly automated:
values=( "EXECUTABLE" "STATIC_LIBRARY" "SHARED_LIBRARY" "MODULE_LIBRARY" "OBJECT_LIBRARY" "UTILITY" "GLOBAL_TARGET" "INTERFACE_LIBRARY" "UNKNOWN_LIBRARY" "TargetType")
for i in "${values[@]}"; do git grep -l cmTarget::$i | xargs sed -i "s|cmTarget::$i|cmState::$i|g"; done
2015-10-15 00:41:39 +02:00
Stephen Kelly
482b3811e4
cmTarget: Move link type enum out.
...
Remove a reason for generate time code to depend on the cmTarget header/type.
2015-10-15 00:41:22 +02:00
Stephen Kelly
983c00f8f9
Generators: Use GetType from the cmGeneratorTarget.
2015-10-15 00:41:19 +02:00
Stephen Kelly
2293d43d00
cmLocalGenerator: Store cmGeneratorTargets.
...
Relieve cmMakefile of this responsibility.
2015-10-14 13:32:09 -04:00
Stephen Kelly
1583440509
cmGeneratorExpression: Port interface to cmGeneratorTarget.
2015-10-12 23:07:46 +02:00
Stephen Kelly
11165525ba
cmGeneratorExpression: Port to cmLocalGenerator.
2015-10-12 23:07:46 +02:00
Stephen Kelly
ce75c86ec3
cmGeneratorTarget: Move GetSupportDirectory from cmTarget.
2015-10-12 18:39:59 +02:00
Stephen Kelly
526cc7dc52
cmGeneratorTarget: Move HasImportLibrary from cmTarget.
2015-10-12 18:39:59 +02:00
Stephen Kelly
8d2e3e53b9
cmGeneratorTarget: Move HasImplibGNUtoMS from cmTarget.
2015-10-12 18:39:59 +02:00
Stephen Kelly
993aace78a
cmGeneratorTarget: Port processILibs to cmGeneratorTarget.
2015-10-12 18:39:58 +02:00
Stephen Kelly
43ade99577
cmGeneratorTarget: Port getTypedProperty to cmGeneratorTarget.
2015-10-12 18:39:58 +02:00
Stephen Kelly
5fd2f43f64
cmGeneratorTarget: Port handleSystemIncludesDep to cmGeneratorTarget.
2015-10-12 18:39:58 +02:00
Stephen Kelly
f7acd74215
cmGeneratorTarget: Port LinkImplClosure to cmGeneratorTarget.
2015-10-12 18:39:58 +02:00
Stephen Kelly
ceb35b63a7
cmLinkItem: Port to cmGeneratorTarget.
2015-10-12 18:39:58 +02:00
Stephen Kelly
bf2d061ad3
cmGeneratorTarget: Move FindTargetToLink from cmTarget.
2015-10-12 18:39:58 +02:00
Stephen Kelly
61c02decce
cmHeadToLinkInterfaceMap: Port to cmGeneratorTarget.
2015-10-12 18:39:58 +02:00
Stephen Kelly
9ca4cae51e
cmGeneratorTarget: Move GetUtilityItems from cmTarget.
2015-10-12 18:39:58 +02:00
Stephen Kelly
c7645fca12
cmComputeLinkInformation: Port data interface to cmGeneratorTarget.
2015-10-12 18:39:58 +02:00
Brad King
aad0e62060
Merge topic 'use-generator-target'
...
1c1c2a12
cmGeneratorTarget: Port ExpandLinkItems away from cmTarget.
c66084f5
cmGeneratorTarget: Port GetImportLinkInterface away from cmTarget.
83c29e39
cmGeneratorTarget: Port ComputeLinkImplementationLibraries away from cmTarget.
19882554
cmGeneratorTarget: Port handleSystemIncludesDep away from cmTarget.
c1f687b1
cmGeneratorTarget: Port GetLinkImplementationLibrariesInternal.
a6e1f05c
cmGeneratorTarget: Port ComputeLinkInterface away from cmTarget.
654002fe
cmGeneratorTarget: Port ComputeLinkInterfaceLibraries away from cmTarget.
922c8901
cmGeneratorTarget: Port GetLinkInterface away from cmTarget.
eaa5b9cb
cmGeneratorTarget: Port cmTargetCollectLinkLanguages away from cmTarget.
f539da12
cmGeneratorTarget: Port GetLinkInterfaceLibraries away from cmTarget.
1c5d70f9
cmGeneratorTarget: Port processILibs away from cmTarget.
064c2488
cmComputeLinkDepends: Port some API to cmGeneratorTarget.
3e428fdc
cmGeneratorTarget: Move IsImportedSharedLibWithoutSOName from cmTarget.
110fd2fb
cmGeneratorTarget: Move GetOutputTargetType from cmTarget.
e7391699
cmGeneratorTarget: Move HasMacOSXRpathInstallNameDir from cmTarget.
c5718217
cmGeneratorTarget: Move HaveInstallTreeRPATH from cmTarget.
...
2015-10-12 10:26:20 -04:00
Stephen Kelly
1c1c2a1201
cmGeneratorTarget: Port ExpandLinkItems away from cmTarget.
2015-10-10 17:06:56 +02:00
Stephen Kelly
c66084f5d7
cmGeneratorTarget: Port GetImportLinkInterface away from cmTarget.
2015-10-10 11:22:41 +02:00
Stephen Kelly
83c29e3903
cmGeneratorTarget: Port ComputeLinkImplementationLibraries away from cmTarget.
2015-10-10 11:22:27 +02:00
Stephen Kelly
1988255448
cmGeneratorTarget: Port handleSystemIncludesDep away from cmTarget.
2015-10-10 11:22:27 +02:00
Stephen Kelly
c1f687b1ad
cmGeneratorTarget: Port GetLinkImplementationLibrariesInternal.
2015-10-10 11:22:20 +02:00
Stephen Kelly
a6e1f05c15
cmGeneratorTarget: Port ComputeLinkInterface away from cmTarget.
2015-10-10 11:21:11 +02:00
Stephen Kelly
654002feb8
cmGeneratorTarget: Port ComputeLinkInterfaceLibraries away from cmTarget.
2015-10-10 11:21:09 +02:00
Stephen Kelly
922c89014f
cmGeneratorTarget: Port GetLinkInterface away from cmTarget.
2015-10-10 11:20:30 +02:00
Stephen Kelly
eaa5b9cbb1
cmGeneratorTarget: Port cmTargetCollectLinkLanguages away from cmTarget.
2015-10-10 11:14:32 +02:00
Stephen Kelly
f539da126b
cmGeneratorTarget: Port GetLinkInterfaceLibraries away from cmTarget.
2015-10-10 11:14:31 +02:00
Stephen Kelly
1c5d70f9c2
cmGeneratorTarget: Port processILibs away from cmTarget.
2015-10-10 11:14:31 +02:00
Stephen Kelly
3e428fdcb4
cmGeneratorTarget: Move IsImportedSharedLibWithoutSOName from cmTarget.
2015-10-10 11:03:48 +02:00
Stephen Kelly
110fd2fba1
cmGeneratorTarget: Move GetOutputTargetType from cmTarget.
2015-10-10 11:03:48 +02:00
Stephen Kelly
e73916992c
cmGeneratorTarget: Move HasMacOSXRpathInstallNameDir from cmTarget.
2015-10-10 11:03:48 +02:00
Stephen Kelly
c5718217ad
cmGeneratorTarget: Move HaveInstallTreeRPATH from cmTarget.
2015-10-09 01:04:38 +02:00
Stephen Kelly
bf5eb4a3f3
cmGeneratorTarget: Move ComputePDBOutputDir from cmTarget.
2015-10-09 01:04:38 +02:00
Stephen Kelly
49017cddab
cmGeneratorTarget: Move IsNullImpliedByLinkLibraries from cmTarget.
2015-10-09 01:04:38 +02:00
Stephen Kelly
0bae4a416f
cmGeneratorTarget: Move output info from cmTarget.
2015-10-09 01:04:38 +02:00
Stephen Kelly
1abc20d81d
cmGeneratorTarget: Move UsesDefaultOutputDir from cmTarget.
2015-10-09 01:04:38 +02:00
Stephen Kelly
50dc9b4440
cmGeneratorTarget: Move GetPDBDirectory from cmTarget.
2015-10-09 01:04:37 +02:00
Stephen Kelly
8b0168863e
cmGeneratorTarget: Move GetDirectory from cmTarget.
2015-10-09 01:04:37 +02:00
Stephen Kelly
ee44be22cb
cmGeneratorTarget: Use local GetProperty method.
2015-10-09 00:07:55 +02:00
Stephen Kelly
df42dbb355
cmGeneratorTarget: Move link implementation from cmTarget.
2015-10-08 23:41:29 +02:00
Stephen Kelly
370bb92c10
cmGeneratorTarget: Issue messages through the local generator.
2015-10-08 23:41:27 +02:00
Stephen Kelly
dce6581b7b
cmGeneratorTarget: Move computed sources from cmTarget.
2015-10-07 08:37:58 +02:00
Stephen Kelly
7b6dc0fe45
cmGeneratorTarget: Inline GetSourceFiles from cmTarget.
2015-10-07 08:37:58 +02:00
Stephen Kelly
33f87bb1f5
cmGeneratorTarget: Move AddInterfaceEntries method.
...
It will be needed here in a follow-up commit.
2015-10-07 08:37:57 +02:00
Stephen Kelly
64f73150b8
cmTarget: Add API for generate-time source addition.
...
This method is a refactoring artifact. It will be removed in a
follow-up.
2015-10-07 08:37:57 +02:00
Stephen Kelly
c38e30f68c
cmGeneratorTarget: Add methods for generate-time source addition.
2015-10-07 08:37:57 +02:00
Stephen Kelly
5d3776a7eb
Access sources through cmGeneratorTarget.
2015-10-07 08:37:56 +02:00
Stephen Kelly
bf28b7874b
cmGeneratorTarget: Rename internal member.
...
Leave the old name available for another use.
2015-10-06 20:16:20 +02:00
Stephen Kelly
9bc6eb8e1f
cmGlobalGenerator: Initialize generator targets on construction ( #15729 )
...
The Ninja generator and Visual Studio generators are special-cased for the
QtAutogen feature. In order to reduce the number of custom targets, the Visual
Studio generators prefer to create custom commands instead, and in order to
create appropriate Ninja files, generated rcc files are listed as byproducts.
This requires the use of the GetConfigCommonSourceFiles API of the
cmGeneratorTarget for those generators when initializing the autogen target.
The initializer method is called from Compute() after the cmGeneratorTarget
objects are created, however the initialization of the object directory occurs
later in the InitGeneratorTargets method. That means that the resulting object
locations are computed incorrectly and cached before the object directory is
determined, so the generated buildsystem can not find the object files.
The initialization of the object directory was split from the creation of
cmGeneratorTarget instances in commit 0e0258c8
(cmGlobalGenerator: Split
creation of generator object from initialization., 2015-07-25). The motivation
for the split was to do only what is essential to do early in cases where
cmGeneratorTargets need to be created at configure-time. That is required for
the purpose of implementing policies CMP0024 and CMP0026, and for
try_compile(LINK_LIBRARIES). However, the split was not really necessary.
Compute the object directory in the cmGeneratorTarget constructor instead.
The QtAutogen unit test already tests the use of TARGET_OBJECTS with AUTOMOC,
and that test already passes on Ninja. The reason it already passes is that
the QtAutogen target also uses the AUTORCC feature, and specifies several qrc
files in its SOURCES. Later in the Compute algorithm (after the
InitGeneratorTargets call), the rcc files are determined and target->AddSource
is called. The AddSource call clears the previously mentioned cache of source
files, causing it to be regenerated when next queried, this time taking account
of the object directory.
Extend the test suite with a new target which does not make use of AUTORCC with
qrc files so that the test added alone would break without the fix in this
commit.
2015-09-29 09:56:34 -04:00
Stephen Kelly
2514e4265c
CMP0026: Use compatibility codepath until configure is finished ( #15748 )
...
Use it instead of the similar cmMakefile API. It is necessary to
know that the Configure step is completely done, not just that one
particular cmMakefile is finished configuring.
Prior to commit 611220f7
(cmTarget: Use reliable test for CMP0024 and CMP0026
OLD., 2015-07-25), this was determined by checking whether cmGeneratorTargets
exist yet, which happens after the Configure step.
2015-09-18 20:49:00 +02:00
Brad King
e134e53b47
Add support for *.manifest source files with MSVC tools
...
Classify .manifest sources separately, add dependencies on them, and
pass them to the MS manifest tool to merge with linker-generated
manifest files.
Inspired-by: Gilles Khouzam <gillesk@microsoft.com>
2015-09-17 10:21:32 -04:00
Stephen Kelly
616d8f02d5
cmGeneratorTarget: Rename method to match operation.
...
The manifest is computed, not generated, according to current language
used in cmake method naming.
2015-08-30 11:39:52 +02: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
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
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
d67584ccc4
cmTarget: Move link interface libraries struct out.
2015-08-26 19:35:45 +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
cf0a78dc4c
cmGeneratorTarget: Issue messages through the local generator.
2015-08-25 22:18:39 +02:00
Brad King
58043880b9
Merge topic 'ios-app-bundle-layout'
...
744e6c49
Fix iOS Bundle layouts (#15669 )
2015-08-24 10:07:02 -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
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
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