summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add a new Export generator for IMPORTED targets.Stephen Kelly2013-02-225-0/+175
| | | | | | This is to be used during try_compile using LINK_LIBRARIES in the srcfile signature and, in the future, TARGETS in the binary dir signature.
* Keep track of all targets seen while evaluating a genex.Stephen Kelly2013-02-224-5/+13
| | | | | As dependencies of the generator expression, these will re-exported in try_compile generated code.
* CMake Nightly Date StampKitware Robot2013-02-171-1/+1
|
* CMake Nightly Date StampKitware Robot2013-02-161-1/+1
|
* Merge topic 'vs-atomic-generated-stamp'Brad King2013-02-151-3/+12
|\ | | | | | | | | 2dc17f8 VS: Replace generation timestamp file atomically
| * VS: Replace generation timestamp file atomicallyBrad King2013-02-121-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 34c882a9 (Allow VS 7 project Rebuild and Solution Rebuild to work, 2007-11-10) we use a "CMakeFiles/generated.stamp" and some associated files in the build tree to avoid re-running CMake when the inputs have not changed but VS has cleaned the outputs it knows about. When we do not really need to re-run we restore the generated.stamp file. The non-re-run case can happen in multiple targets in parallel in VS >= 10 so we must restore the file atomically to avoid races. Write the stamp file to a random temporary name and then atomically rename it to the real stamp file.
* | Merge topic 'rpath-use-implicit-link-dirs'Brad King2013-02-153-4/+53
|\ \ | | | | | | | | | | | | | | | | | | 95a9c80 Merge topic 'LINK_LIBRARIES-property' into rpath-use-implicit-link-dirs baa33ac AIX-GNU: Put implicit link directories in runtime libpath (#13909) 171b099 Avoid duplicate RPATH entries
| * \ Merge topic 'LINK_LIBRARIES-property' into rpath-use-implicit-link-dirsBrad King2013-02-14441-5149/+10215
| |\ \ | | | | | | | | | | | | Resolve a logical conflict in the signature of cmTarget::GetLinkClosure.
| * | | AIX-GNU: Put implicit link directories in runtime libpath (#13909)Brad King2013-02-143-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The GNU compiler front-ends on AIX invoke the linker with flags of the form "-L/path/to/gnu/runtime/lib" to tell ld where to find the language runtime libraries. They depend on the default libpath behavior documented in "man ld" to add the -L paths also to the runtime libpath so the dynamic loader can find the language runtime libraries. This differs from platforms whose linkers have distinct -rpath flags that non-system compilers can use to tell the dynamic loader where to find their language runtime libraries. Since commit 96fd5909 (Implement linking with paths to library files, 2008-01-22) CMake always passes "-Wl,-blibpath:" followed by any project-defined RPATH plus "/usr/lib:/lib" in order to explicitly set the runtime libpath and avoid getting all the project -L paths in the runtime libpath. The explicit libpath prevents the GNU compiler runtime library -L paths from being placed in the libpath and then the dynamic loader fails to find the language runtime libraries. CMake already detects the implicit link directories for each language since commit 07ea19ad (Implicit link info for C, CXX, and Fortran, 2009-07-23). Add the implicit link directories to the explicit runtime libpath for GNU compilers on AIX to fix this use case.
| * | | Avoid duplicate RPATH entriesBrad King2013-02-141-4/+27
| | | | | | | | | | | | | | | | | | | | Teach cmComputeLinkInformation::GetRPath to avoid adding the same directory to the output runtime path more than once.
* | | | Merge topic 'OpenMP-doc'Brad King2013-02-151-1/+3
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 77fd5e5 FindOpenMP: improve documentation (#13895)
| * | | | FindOpenMP: improve documentation (#13895)Rolf Eike Beer2013-02-131-1/+3
| | | | |
* | | | | Merge topic 'windows-ce-vs-subsystem'Brad King2013-02-151-2/+20
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cf82d1e VS: Specify WinCE subsystems correctly in VS 9 2008 8f4cae7 VS: Specify WinCE subsystem also for DLLs
| * | | | | VS: Specify WinCE subsystems correctly in VS 9 2008Mark Salisbury2013-02-131-3/+17
| | | | | |
| * | | | | VS: Specify WinCE subsystem also for DLLsMark Salisbury2013-02-131-0/+4
| |/ / / / | | | | | | | | | | | | | | | | | | | | This fixes a link error in VS 2005: unresolved external symbol __DllMainCRTStartup@12.
* | | | | Merge topic 'Embarcadero-linker-flags'Brad King2013-02-151-1/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 188b0e9 Embarcadero: Fix default link stack/heap flags (#13912)
| * | | | | Embarcadero: Fix default link stack/heap flags (#13912)Brad King2013-02-131-1/+1
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit c70beb4b (change the default borland stack size, 2003-05-05), commit 1b572eb9 (remove -H flags, 2003-05-08), and commit 2d411398 (Stack size in generated programs should be 10 meg, 2003-06-12) CMake adds link flags to select a 10MB stack. At the time this was for consistency with our behavior on MS, but that was recently removed by commit 51af1da3 (Remove "/STACK:10000000" from default linker flags, 2012-11-23). Change our Embarcadero link flags to select the default stack and heap settings according to the compiler documentation. This is more reliable than leaving the flags out completely as it has been reported that the linker does not always use its documented defaults. Suggested-by: Mathäus Mendel <contato@mathausmendel.com>
* | | | | Merge topic 'file-REMOVE_RECURSE-symlink'Brad King2013-02-151-1/+2
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | f123367 file: Do not remove symlinked directories recursively (#10538)
| * | | | | file: Do not remove symlinked directories recursively (#10538)Brad King2013-02-131-1/+2
| |/ / / / | | | | | | | | | | | | | | | | | | | | If a symlink points at a directory the symlink should be removed but not the content of the directory.
* | | | | Merge topic 'linked-usage-cleanup'Brad King2013-02-1535-496/+267
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fde949d Don't add target-specific interface includes and defines to Qt 4 targets. 79ae968 Revert "Add a way to exclude INTERFACE properties from exported targets." 71bf96e Revert "find_package: Reword <package>_NO_INTERFACES documentation" 3df36b5 Revert "Add the $<LINKED:...> generator expression." e1f9080 Don't populate INTERFACE includes and defines properties in tll. 567c8d1 Revert "Don't allow utility or global targets in the LINKED expression." a1c4905 Use the link information as a source of compile definitions and includes. 5c9f5e3 Don't use LINKED where not needed. 5b88504 Rename the IncludeDirectoriesEntry to be more generic. b030323 Fix determination of when we're evaluating compile definitions.
| * | | | | Don't add target-specific interface includes and defines to Qt 4 targets.Stephen Kelly2013-02-131-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a partial revert of commit c8ee07d0 (FindQt4: Add INTERFACE includes and defines to Qt4 targets, 2012-12-31).
| * | | | | Revert "Add a way to exclude INTERFACE properties from exported targets."Stephen Kelly2013-02-136-101/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2c3654c3de718fe822f8960063373774fc019494. The removal of some tests added in commit 77cecb77 (Add includes and compile definitions with target_link_libraries., 2012-11-05) are also squashed into this commit.
| * | | | | Revert "find_package: Reword <package>_NO_INTERFACES documentation"Stephen Kelly2013-02-131-17/+18
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 179f49560286e2e322b9b0cf5d0a277b7634540f.
| * | | | | Revert "Add the $<LINKED:...> generator expression."Stephen Kelly2013-02-1312-203/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0b92602b816e2584db3781b120a1e5200da72ada. Conflicts: Source/cmGeneratorExpressionEvaluator.cxx Tests/CMakeCommands/target_compile_definitions/CMakeLists.txt Tests/CMakeCommands/target_include_directories/CMakeLists.txt
| * | | | | Don't populate INTERFACE includes and defines properties in tll.Stephen Kelly2013-02-133-51/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a partial revert of commit 77cecb77 (Add includes and compile definitions with target_link_libraries., 2012-11-05). As the interface includes and defines are now determined by the link closure, there is no need to populate the corresponding properties explicitly.
| * | | | | Revert "Don't allow utility or global targets in the LINKED expression."Stephen Kelly2013-02-136-26/+0
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9712362b4580fb92394ecf8ff57be186571f4319.
| * | | | | Use the link information as a source of compile definitions and includes.Stephen Kelly2013-02-134-57/+218
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After evaluating the INTERFACE_INCLUDE_DIRECTORIES, of a target in a generator expression, also read the INTERFACE_INCLUDE_DIRECTORIES of its link interface dependencies. That means that code such as this will result in the 'user' target using /bar/include and /foo/include: add_library(foo ...) target_include_directories(foo INTERFACE /foo/include) add_library(bar ...) target_include_directories(bar INTERFACE /bar/include) target_link_libraries(bar LINK_PUBLIC foo) add_executable(user ...) target_include_directories(user PRIVATE $<TARGET_PROPERTY:bar,INTERFACE_INCLUDE_DIRECTORIES>) Also process the interface include directories from direct link dependencies for in-build targets. The situation is similar for the INTERFACE_COMPILE_DEFINITIONS. The include directories related code is currently more complex because we also need to store a backtrace at configure-time for the purpose of debugging includes. The compile definitions related code will use the same pattern in the future. This is not a change in behavior, as existing code has the same effect, but that existing code will be removed in follow-up commits.
| * | | | | Don't use LINKED where not needed.Stephen Kelly2013-02-123-3/+3
| | | | | |
| * | | | | Rename the IncludeDirectoriesEntry to be more generic.Stephen Kelly2013-02-128-49/+23
| | | | | |
| * | | | | Fix determination of when we're evaluating compile definitions.Stephen Kelly2013-02-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Also handle the config-specific property.
* | | | | | CMake Nightly Date StampKitware Robot2013-02-151-1/+1
| | | | | |
* | | | | | CMake Nightly Date StampKitware Robot2013-02-141-1/+1
| |/ / / / |/| | | |
* | | | | CMake Nightly Date StampKitware Robot2013-02-131-1/+1
| | | | |
* | | | | Merge topic 'EclipseDetectClangIncludeDirs'Brad King2013-02-121-2/+2
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | a396b6e Eclipse: also detect include dirs and macro for clang (#13823)
| * | | | | Eclipse: also detect include dirs and macro for clang (#13823)Alex Neundorf2013-02-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Alex
* | | | | | Merge topic 'UseMakefileHeaderExtensions'Brad King2013-02-122-39/+26
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 27e14a8 automoc: use the header extensions from cmMakefile 10511aa automoc: use a std::vector<> instead a std::list
| * | | | | | automoc: use the header extensions from cmMakefileAlex Neundorf2013-02-102-24/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of having an own set of C header extensions, use cmMakefile::GetHeaderExtensions() (#13904) Alex
| * | | | | | automoc: use a std::vector<> instead a std::listAlex Neundorf2013-02-102-16/+17
| |/ / / / / | | | | | | | | | | | | | | | | | | Alex
* | | | | | Merge topic 'CPackRPM-fixSomeRPMSpecificVarHandling'Brad King2013-02-121-9/+19
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9be3da1 CPackRPM fix #13898 uses IF(DEFINED var) to avoid wrong var value logic
| * | | | | | CPackRPM fix #13898 uses IF(DEFINED var) to avoid wrong var value logicEric NOULARD2013-02-091-9/+19
| | | | | | |
* | | | | | | Merge topic 'empty-compiler-crash'Brad King2013-02-121-1/+1
|\ \ \ \ \ \ \ | |_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | ccfeefa Fix crash on empty CMAKE_<lang>_COMPILER value (#13901)
| * | | | | | Fix crash on empty CMAKE_<lang>_COMPILER value (#13901)Brad King2013-02-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit fd33bf93 (fix for bug 6102, allow users to change the compiler, 2007-12-13) we keep an internal ;-list of language compiler variable and value pairs. Preserve empty values on expansion to ensure that the key/value pairing remains consistent.
* | | | | | | CMake Nightly Date StampKitware Robot2013-02-121-1/+1
| |_|_|/ / / |/| | | | |
* | | | | | Merge topic 'minor-fixes'Brad King2013-02-1150-175/+434
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ba48e63 Generate config-specific interface link libraries propeties. deb51a7 Remove unused forward declarations. 9712362 Don't allow utility or global targets in the LINKED expression. faa927e Make sure INTERFACE properties work with OBJECT libraries. 510fdcb Whitelist target types in target_{include_directories,compile_definitions} 4de7178 Ensure that the build interface includes have been added. df74bc3 Only append build interface include dirs to particular targets. d4e5c67 Don't keep track of content determined by target property values. 1fb545a Move a special case for PIC from the genex to the cmTarget code. 57175d5 Only use early evaluation termination for transitive properties. 4cf161a Fix determination of evaluating link libraries. 3a298c0 Fix generation of COMPILE_DEFINITIONS in DependInfo.cmake. 655e98b Ensure type specific compatible interface properties do not intersect. 46e2896 The COMPATIBLE_INTERFACE does not affect the target it is set on. 5f926a5 Test printing origin of include dirs from tll(). 7c0ec75 De-duplicate validation of genex target names. ...
| * | | | | | Generate config-specific interface link libraries propeties.Stephen Kelly2013-02-091-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All other properties we generate are config-specific, so it makes sense to do so here too.
| * | | | | | Remove unused forward declarations.Stephen Kelly2013-02-091-3/+0
| | | | | | |
| * | | | | | Don't allow utility or global targets in the LINKED expression.Stephen Kelly2013-02-086-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The LINKED expression is exclusively for handling INTERFACE content and it does not make sense for utility targets to have INTERFACE content.
| * | | | | | Make sure INTERFACE properties work with OBJECT libraries.Stephen Kelly2013-02-085-6/+31
| | | | | | |
| * | | | | | Whitelist target types in target_{include_directories,compile_definitions}Stephen Kelly2013-02-086-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting include directories or compile definitions on a target created with add_custom_target does not make sense.
| * | | | | | Ensure that the build interface includes have been added.Stephen Kelly2013-02-0811-2/+140
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is needed in the case that Automoc is used, as that calls GetIncludeDirectories, which may cache the resulting include dirs too early in the generate step. Also, because the automoc step is so early, we can't cache the include directories at that point. At that point the build interface of all dependencies are not populated yet, so we'd be caching the includes before appending the build interface. Only start caching when we're definitely generating the buildsystem. At that point, the includes should be stable. We still need to invoke AppendBuildInterfaceIncludes in the GlobalGenerator because the build interface includes affect mostly the dependencies of targets (such as the automoc targets), rather than the targets themselves, so the build interface needs to be appended for all targets before generation is done.