summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Export the INTERFACE_PIC property.Stephen Kelly2013-01-157-0/+46
|
* Make the BUILD_INTERFACE of export()ed targets work.Stephen Kelly2013-01-1510-18/+77
| | | | | The existing BUILD_INTERFACE code is executed at generate time, which is too late for export().
* Add a test for the interfaces in targets exported from the build tree.Stephen Kelly2013-01-152-16/+14
|
* Move the exported check for file existence.Stephen Kelly2013-01-151-2/+2
| | | | | Check only once, in the Config.cmake file, instead of once in each Config-<cfg>.cmake file.
* Move the exported check for dependencies of targetsStephen Kelly2013-01-156-20/+27
| | | | | Check only once, in the Config.cmake file, instead of once in each Config-<cfg>.cmake file.
* Only generate one check per missing target.Stephen Kelly2013-01-151-11/+15
|
* Don't write a comment in the export file without the code.Stephen Kelly2013-01-151-0/+4
|
* Strip consecutive semicolons when preprocessing genex strings.Stephen Kelly2013-01-151-2/+34
|
* CMake Nightly Date StampKitware Robot2013-01-121-1/+1
|
* Merge topic 'LINK_INTERFACE_LIBRARIES-genex'Brad King2013-01-1119-115/+425
|\ | | | | | | | | | | | | | | | | | | 77d2646 Allow generator expressions in LINK_INTERFACE_LIBRARIES. 94aeaf7 Split LINK_INTERFACE_LIBRARIES export handling into dedicated method. a3aedb8 Split the generator expression before extracting targets. b6036d1 Extract the AddTargetNamespace method. cb1afbf Don't pass a position when determining if a target name is a literal. f99196d Add cmGeneratorExpression::Split() API.
| * Allow generator expressions in LINK_INTERFACE_LIBRARIES.Stephen Kelly2013-01-1014-17/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Config and IMPORTED_ variants may also contain generator expressions. If 'the implementation is the interface', then the result of evaluating the expressions at generate time is used to populate the IMPORTED_LINK_INTERFACE_LIBRARIES property. 1) In the case of non-static libraries, this is fine because the user still has the option to populate the LINK_INTERFACE_LIBRARIES with generator expressions if that is what is wanted. 2) In the case of static libraries, this prevents a footgun, enforcing that the interface and the implementation are really the same. Otherwise, the LINK_LIBRARIES could contain a generator expression which is evaluated with a different context at build time, and when used as an imported target. That would mean that the result of evaluating the INTERFACE_LINK_LIBRARIES property for a static library would not necessarily be the 'link implementation'. For example: add_library(libone STATIC libone.cpp) add_library(libtwo STATIC libtwo.cpp) add_library(libthree STATIC libthree.cpp) target_link_libraries(libtwo $<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,STATIC_LIBRARY>:libone>) target_link_libraries(libthree libtwo) If the LINK_LIBRARIES content was simply copied to the IMPORTED_LINK_INTERFACE_LIBRARIES, then libthree links to libone, but executables linking to libthree will not link to libone. 3) As the 'implementation is the interface' concept is to be deprecated in the future anyway, this should be fine.
| * Split LINK_INTERFACE_LIBRARIES export handling into dedicated method.Stephen Kelly2013-01-104-3/+33
| |
| * Split the generator expression before extracting targets.Stephen Kelly2013-01-102-2/+57
| | | | | | | | | | | | | | | | | | | | | | | | Now that we're processing a LINK_INTERFACE_LIBRARIES string, it can contain targets. Make sure they are extracted for namespacing purposes. This needs to be restricted to strings which can actually have targets named in them. For example, this is not done for INTERFACE_COMPILE_DEFINITIONS, because even if there is a target named 'foo', the string 'foo' in that property means that '-Dfoo' will be set when compiling.
| * Extract the AddTargetNamespace method.Stephen Kelly2013-01-102-95/+52
| |
| * Don't pass a position when determining if a target name is a literal.Stephen Kelly2013-01-101-1/+1
| | | | | | | | The lastPos refers to a position in a different string.
| * Add cmGeneratorExpression::Split() API.Stephen Kelly2013-01-102-0/+64
| | | | | | | | | | | | | | | | | | | | It can split a string like "A;$<1:B>;$<1:C>;D;E;$<1:F;G;H>;$<1:I>;J" into "A" "$<1:B>" "$<1:C>" "D" "E" "$<1:F;G;H>" "$<1:I>" "J"
* | Merge topic 'fix-imported-lib-linking-test'Brad King2013-01-112-3/+3
|\ \ | |/ | | | | | | 93034a8 Fix linking to imported libraries test.
| * Fix linking to imported libraries test.Stephen Kelly2013-01-102-3/+3
| | | | | | | | | | | | | | Make a C executable instead of attempting to make a C++ static library (and not really succeeding). This was introduced in commit 894f52f3 (Handle INTERFACE properties transitively for includes and defines., 2012-09-23).
* | CMake Nightly Date StampKitware Robot2013-01-111-1/+1
|/
* Merge topic 'INTERFACE_POSITION_INDEPENDENT_CODE'Brad King2013-01-1024-10/+303
|\ | | | | | | | | | | | | 3581b96 Process the INTERFACE_PIC property from linked dependencies 042ecf0 Add API to calculate link-interface-dependent bool properties or error. bf5ece5 Keep track of properties used to determine linker libraries.
| * Process the INTERFACE_PIC property from linked dependenciesStephen Kelly2013-01-1019-8/+99
| | | | | | | | | | | | | | | | | | This allows a dependee to inform a target that it should have its POSITION_INDEPENDENT_CODE property set to ON, or OFF. The value of the POSITION_INDEPENDENT_CODE property, if set, must be consistent with any INTERFACE_POSITION_INDEPENDENT_CODE properties on dependees. Add a test covering the consistency checks on platforms where they run.
| * Add API to calculate link-interface-dependent bool properties or error.Stephen Kelly2013-01-082-0/+131
| | | | | | | | | | | | | | | | This new method checks that the property FOO on a target is consistent with the INTERFACE_FOO properties of its dependees. If they are not the consistent, an error is reported. 'Consistent' means that iff the property is set, it must have the same boolean value as all other related properties.
| * Keep track of properties used to determine linker libraries.Stephen Kelly2013-01-086-2/+73
| | | | | | | | | | Those properties can't later be implicitly defined by the interface of those link libraries.
* | Merge topic 'target-includes-defines-commands'Brad King2013-01-1014-0/+682
|\ \ | | | | | | | | | | | | | | | fc61a7a Add the target_compile_definitions command. 8a37ebe Add the target_include_directories command.
| * | Add the target_compile_definitions command.Stephen Kelly2013-01-107-0/+209
| | | | | | | | | | | | This is a convenience API to populate the corresponding properties.
| * | Add the target_include_directories command.Stephen Kelly2013-01-109-0/+473
| | | | | | | | | | | | This is a convenience API to populate the corresponding properties.
* | | Merge topic 'qt4-target-depends'Brad King2013-01-103-2/+43
|\ \ \ | | | | | | | | | | | | | | | | c8ee07d FindQt4: Add INTERFACE includes and defines to Qt4 targets
| * | | FindQt4: Add INTERFACE includes and defines to Qt4 targetsStephen Kelly2013-01-103-2/+43
| |/ /
* | | Merge topic 'use-wundef'Brad King2013-01-101-2/+2
|\ \ \ | | | | | | | | | | | | | | | | c772810 Add the -Wundef flag when compiling CMake.
| * | | Add the -Wundef flag when compiling CMake.Stephen Kelly2013-01-081-2/+2
| | |/ | |/|
* | | Merge topic 'tll-IMPORTED-targets'Brad King2013-01-102-0/+17
|\ \ \ | | | | | | | | | | | | | | | | 9cfe4f1 Allow target_link_libraries with IMPORTED targets.
| * | | Allow target_link_libraries with IMPORTED targets.Stephen Kelly2013-01-082-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it possible to use: target_link_libraries(foo LINK_INTERFACE_LIBRARIES bar) where foo is an IMPORTED target. Other tll() signatures are not allowed.
* | | | Merge topic 'Haiku'Brad King2013-01-109-31/+52
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0380f36 FindOpenGL: add Haiku paths 8e9630c FindGLUT: BeOS does not have libXi and libXmu 50bfedf FindLua51: do not try to link libm on BeOS 3d2e6a0 check for Haiku only with __HAIKU__ 7a1b961 Haiku no longer defines __BEOS__ ed96d9a bootstrap: use better defaults for Haiku
| * | | | FindOpenGL: add Haiku pathsRolf Eike Beer2013-01-071-9/+21
| | | | | | | | | | | | | | | | | | | | Also check the HP-UX specific paths only when on HP-UX.
| * | | | FindGLUT: BeOS does not have libXi and libXmuRolf Eike Beer2013-01-071-7/+21
| | | | |
| * | | | FindLua51: do not try to link libm on BeOSRolf Eike Beer2013-01-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This includes Haiku, which currently is treated as BeOS. The ComplexOneConfig test already knew about this.
| * | | | check for Haiku only with __HAIKU__Rolf Eike Beer2013-01-072-9/+2
| | | | |
| * | | | Haiku no longer defines __BEOS__Rolf Eike Beer2013-01-073-4/+4
| | | | |
| * | | | bootstrap: use better defaults for HaikuRolf Eike Beer2013-01-071-1/+3
| | |_|/ | |/| | | | | | | | | | These values are patched into that file by Haiku since 2.8.1.
* | | | Merge topic 'update-KWIML'Brad King2013-01-101-1/+3
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | 32fb667 Merge branch 'upstream-kwiml' into update-KWIML 9fdfe07 KWIML: Teach ABI about 'long long' on older GNU
| * \ \ \ Merge branch 'upstream-kwiml' into update-KWIMLBrad King2013-01-081-1/+3
| |\ \ \ \ | | |_|_|/ | |/| | |
| | * | | KWIML: Teach ABI about 'long long' on older GNUBrad King2013-01-081-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Old GNU compilers do not define __SIZEOF_LONG_LONG__ or __LONG_LONG_MAX__ but do provide a 64-bit 'long long' type. Suggested-by: Rolf Eike Beer <eike@sf-mail.de>
* | | | | CMake Nightly Date StampKitware Robot2013-01-101-1/+1
| | | | |
* | | | | CMake Nightly Date StampKitware Robot2013-01-091-1/+1
|/ / / /
* | | | Merge topic 'LINK_LIBRARIES-property'Brad King2013-01-0813-86/+282
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | 7653862 Add LINK_LIBRARIES property for direct target link dependencies 40cf3fb Make linking APIs aware of 'head' target
| * | | | Add LINK_LIBRARIES property for direct target link dependenciesStephen Kelly2013-01-087-17/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we kept direct link dependencies in OriginalLinkLibraries. The property exposes the information in the CMake language through the get/set_property commands. We preserve the OriginalLinkLibraries value internally to support old APIs like that for CMP0003's OLD behavior, but the property is now authoritative. This follows up from commit d5cf644a (Split link information processing into two steps, 2012-11-01). This will be used later to populate the link interface properties when exporting targets, and will later allow use of generator expressions when linking to libraries with target_link_libraries. Also make targets depend on the (config-specific) union of dependencies. CMake now allows linking to dependencies or not depending on the config. However, generated build systems are not all capable of processing config-specific dependencies, so the targets depend on the union of dependencies for all configs.
| * | | | Make linking APIs aware of 'head' targetStephen Kelly2013-01-089-70/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'head' is the dependent target to be linked with the current target. It will be used to evaluate generator expressions with proper handling of mapped configurations and is used as the source target of properties. This requires that memoization is done with a key of a pair of target and config, instead of just config, because now the result also depends on the target. Removing the memoization entirely is not an option because it slows cmake down considerably.
* | | | | Merge topic 'update-kwsys'Brad King2013-01-089-600/+639
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6f6afbd Merge branch 'upstream-kwsys' into update-kwsys 495fa24 KWSys 2013-01-07 (fc60c8b8)
| * \ \ \ \ Merge branch 'upstream-kwsys' into update-kwsysBrad King2013-01-089-600/+639
| |\ \ \ \ \
| | * | | | | KWSys 2013-01-07 (fc60c8b8)KWSys Robot2013-01-089-600/+639
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extract upstream KWSys using the following shell commands. $ git archive --prefix=upstream-kwsys/ fc60c8b8 | tar x $ git shortlog --no-merges --abbrev=8 --format='%h %s' 8ce09af5..fc60c8b8 Brad King (3): cb5f835f SystemTools: Fix MakeDirectory with colon in path 1643507a IOStream: Fix check for compiler 'long long' support 34177aec SystemTools: Fix MakeDirectory after recent cleanup Rolf Eike Beer (24): 4da9894d SystemInformation: Clean up QuerySolarisInfo() 01392358 SystemInformation: don't attribute i386 Solaris systems to Sun 3db65ac1 SystemInformation: wrap the call to CPUID in a function 61bd9b42 SystemInformation: use the __cpuid compiler intrinsic if present 5932e7c0 SystemInformation: query memory size on Cygwin using sysconf() ea5612ed SystemInformation: count memory with _SC_PAGESIZE and _SC_PHYS_PAGES 3aca6642 SystemInformation: query memory size, CPU count, and CPU speed on BSD 3572c54d SystemInformation: count CPUs on HP-UX e6771b34 SystemInformation: determine CPU type on HP-UX 640210e5 SystemInformation: use /proc/cpuinfo only when present 5bdcfd10 SystemInformation: query total memory on AIX de69d547 SystemInformation: use intrinsic for RDTSC if supported 9808d4e7 SystemInformation: get CPU speed on Windows when RDTSC fails f4c625b5 tests: avoid truncation of testSystemInformation output in CDash 03d6fbe5 SystemInformation: get x86 CPU features from /proc/cpuinfo f8e917c1 SystemInformation: remove the #define CPUID_INSTRUCTION 59c4b5c5 SystemInformation: split Windows code out of QueryMemory() 200ee91f SystemInformation: split HP-UX code out of QueryMemory() 88217703 SystemInformation: split Linux code out of QueryMemory() 9e317872 SystemInformation: split AIX code out of QueryMemory() 349cee5b SystemInformation: remove useless zeroing from QueryMemory() 7271926e SystemInformation: split Cygwin code out of QueryMemory() 6da78ad1 SystemInformation: make QueryMemory() return bool 182179e9 Haiku no longer defines __BEOS__ Stephen Kelly (1): 247b8a3c SystemTools: Rename MakeCnidentifier() to MakeCidentifier() Change-Id: Ib95b5bddab7ecc0a4025ab29792426acf57e5623