Commit Graph

1044 Commits

Author SHA1 Message Date
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 2ee1cb85e8 cmTarget: Move ImportInfoMap out of internal class. 2015-10-15 00:41:22 +02:00
Stephen Kelly a48bcabd33 cmTarget: Move backtrace member out of internal class. 2015-10-15 00:41:21 +02:00
Stephen Kelly 6694d99376 cmTarget: Remove unneeded constructors.
The compiler generated ones are fine here.
2015-10-15 00:41:21 +02:00
Stephen Kelly ce75c86ec3 cmGeneratorTarget: Move GetSupportDirectory 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 bf2d061ad3 cmGeneratorTarget: Move FindTargetToLink from cmTarget. 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 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 e0261a1e20 cmTarget: Make OutputInfo definition public. 2015-10-08 23:41:30 +02:00
Stephen Kelly df42dbb355 cmGeneratorTarget: Move link implementation from cmTarget. 2015-10-08 23:41:29 +02:00
Stephen Kelly a8429a402d cmTarget: Split storage of link implementation from backtraces. 2015-10-08 23:41:29 +02:00
Stephen Kelly af71c7b479 cmTarget: Remove Compute method. 2015-10-07 20:17:55 +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 da1b0449d9 cmTarget: Remove a conditional for generate-time source addition.
It is not really necessary.
2015-10-07 08:37:57 +02:00
Stephen Kelly fe113f0fd4 cmTarget: Split storage of sources from genexes. 2015-10-07 08:37:57 +02:00
Stephen Kelly 776ff8eb0b cmTarget: Add Compute API for sources.
This method is a refactoring artifact.  It will be removed in a
follow-up.
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 01e666c70e cmTarget: Join strings conditionally. 2015-10-06 20:16:20 +02:00
Chuck Atkins 9784af1b50 CMP0065: Restrict the use of CMAKE_SHARED_LIBRARY_LINK_<LANG>_FLAGS
This new policy restricts the addition of the shared library link flags
to executables only when the ENABLE_EXPORTS property is set to True.
2015-09-21 10:12:13 -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
Stephen Kelly 08ce3f486e cmTarget: Only append non-empty values to buildsystem properties.
This is a change in behavior from CMake 3.3, but there is no semantic meaning
to empty entries in buildsystem properties.  This also restores behavior to
that of CMake 2.8.10.
2015-09-11 18:30:46 +02:00
Brad King 407ff47eca cmTarget: Fix memory leak when SOURCES property is cleared 2015-09-03 06:52:36 -04:00
Brad King cf74fc24d4 cmTarget: Fix buildsystem property empty value set and append operations
Refactoring in commit 1f54bc1c (cmTarget: Split storage of include
directories from genexes, 2015-08-04), commit 772ecef4 (cmTarget: Split
storage of compile options from genexes, 2015-08-04), commit 44e071ae
(cmTarget: Split storage of compile features from genexes, 2015-08-04),
and commit 197f4de1 (cmTarget: Split storage of compile definitions from
genexes, 2015-08-04) failed to account for value==NULL in SetProperty
and AppendProperty methods.
2015-09-03 06:52:36 -04:00
Brad King dd2b88777f Merge topic 'fix-ios-install'
ad262917 Xcode: Add unit test for iOS project install (#12506)
48fe617e Fix installation of iOS targets (#12506)
d2c2319d Replace CMAKE_XCODE_EFFECTIVE_PLATFORMS with call to PlatformIsAppleIos
2015-09-01 09:53:30 -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
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
Stephen Kelly e35ee02d6e cmTarget: Fix indentation. 2015-08-25 23:06:33 +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 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
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
Gregor Jasny 8c076a8bdb cmTarget: Remove unused AddSystemIncludeDirectories overload 2015-08-11 08:53:38 -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
Stephen Kelly 10040601a2 cmLinkImplementationLibraries: Move to namespace scope. 2015-08-07 00:51:49 +02:00
Stephen Kelly f83e84028a cmGeneratorTarget: Move CompileInfoMap from cmTarget. 2015-08-05 18:20:50 +02:00
Stephen Kelly b3f0e35308 cmGeneratorTarget: Move GetCompilePDBDirectory from cmTarget. 2015-08-05 18:20:50 +02:00
Stephen Kelly 34c437411d cmGeneratorTarget: Move GetOutputName from cmTarget. 2015-08-05 18:20:50 +02:00
Stephen Kelly ee26add4f4 cmGeneratorTarget: Move IsBundleOnApple from cmTarget. 2015-08-05 18:20:49 +02:00
Stephen Kelly f8076644ce cmGeneratorTarget: Move GetLinkClosure from cmTarget. 2015-08-05 18:20:49 +02:00
Stephen Kelly 7c809fa2a6 cmGeneratorTarget: Move GetLinkerLanguage from cmTarget. 2015-08-05 18:20:48 +02:00
Stephen Kelly 6da99de323 cmGeneratorTarget: Move GetFrameworkDirectory from cmTarget. 2015-08-05 18:20:48 +02:00
Stephen Kelly d6bb319b09 cmGeneratorTarget: Move GetFullName from cmTarget.
Bring GetFullNameInternal with it.
2015-08-05 18:20:48 +02:00
Stephen Kelly 7a460852fa cmGeneratorTarget: Move GetAppBundleDirectory from cmTarget. 2015-08-05 18:20:48 +02:00
Stephen Kelly d560bfd273 cmGeneratorTarget: Move GetInstallNameDir* from cmTarget. 2015-08-05 18:20:47 +02:00
Stephen Kelly 89e2a080e9 cmGeneratorTarget: Move GetMacContentDirectory from cmTarget. 2015-08-05 18:20:47 +02:00
Stephen Kelly 62720e44be cmGeneratorTarget: Move GetFullNameComponents from cmTarget. 2015-08-05 18:20:47 +02:00
Stephen Kelly e27d737e27 cmGeneratorTarget: Move IsChrPathUsed from cmTarget. 2015-08-05 18:20:47 +02:00
Stephen Kelly 8d2de00244 cmGeneratorTarget: Move NeedRelinkBeforeInstall from cmTarget. 2015-08-05 18:20:47 +02:00
Stephen Kelly 3df705681b cmGeneratorTarget: Move GetPDBName from cmTarget. 2015-08-05 18:20:46 +02:00
Stephen Kelly a45fed81e5 cmGeneratorTarget: Move GetCompilePDBPath from cmTarget. 2015-08-05 18:20:46 +02:00
Stephen Kelly f0aa660772 cmGeneratorTarget: Move HasSOName from cmTarget. 2015-08-05 18:20:46 +02:00
Stephen Kelly 766839c56d cmGeneratorTarget: Move GetLibraryNames from cmTarget. 2015-08-05 18:20:46 +02:00
Stephen Kelly 47803e6f8e cmGeneratorTarget: Move GetExecutableNames from cmTarget. 2015-08-05 18:20:46 +02:00
Stephen Kelly 7da4c9d4ed cmGeneratorTarget: Move GetLinkImplementationClosure 2015-08-05 18:20:45 +02:00
Stephen Kelly 97f10e488a cmGeneratorTarget: Move ReportPropertyOrigin from cmTarget. 2015-08-05 18:20:45 +02:00
Stephen Kelly 5ff813c7a6 cmGeneratorTarget: Move LinkInterfaceDependent methods from cmTarget. 2015-08-05 18:20:45 +02:00
Stephen Kelly 90bad039c4 cmGeneratorTarget: Move CheckPropertyCompatibility from cmTarget. 2015-08-05 18:20:44 +02:00
Stephen Kelly 803a7982b4 cmGeneratorTarget: Move GetLinkInformation from cmTarget 2015-08-05 18:20:44 +02:00
Stephen Kelly 244c5b5dcd cmGeneratorTarget: Move IsLinkInterfaceDependent* from cmTarget. 2015-08-05 18:20:44 +02:00
Stephen Kelly 12bc571c13 cmGeneratorTarget: Move GetAutoUicOptions from cmTarget. 2015-08-05 18:20:43 +02:00