summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'osx-implicit-link-dirs'Brad King2013-01-0713-29/+220
|\ | | | | | | | | | | | | cc676c3 OS X: Detect implicit linker framework search paths 2dd67c7 OS X: Detect implicit link directories on modern toolchains ba58d0c OS X: Link with all framework search paths, not just the last
| * OS X: Detect implicit linker framework search pathsBrad King2012-12-1110-22/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we hard-coded a list of implicit framework directories but did not account for CMAKE_OSX_SYSROOT or for changes to the list across OS X versions. Instead we should automatically detect the framework directories for the active toolchain. The parent commit added the "-Wl,-v" option to ask "ld" to print its implicit directories. It displays a block such as: Framework search paths: /... Parse this block to extract the list of framework directories. Detection may fail on toolchains that do not list their framework directories, such as older OS X linkers. Always treat the paths <sdk>/Library/Frameworks <sdk>/System/Library/Frameworks <sdk>/Network/Library/Frameworks # Older OS X only /System/Library/Frameworks as implicit. Note that /System/Library/Frameworks should always be considered implicit so that frameworks CMake finds there will not override the SDK copies.
| * OS X: Detect implicit link directories on modern toolchainsBrad King2012-12-115-15/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We detect the implicit link directories for the toolchain by adding a flag to get verbose output from the compiler front-end while linking the ABI detection binary. Newer OS X toolchains based on Clang do not add the implicit link directories with -L options to their internal invocation of "ld". Instead they use a linker that comes with the toolchain and is already configured with the proper directories. Add the "-Wl,-v" option to ask "ld" to print its implicit directories. It displays them in a block such as: Library search paths: /... Parse this block to extract the implicit link directories. While at it, remove the checks introduced by commit efaf335b (Skip implicit link information on Xcode, 2009-07-23) and commit 5195a664 (Skip implicit link info for multiple OS X archs, 2009-09-22). Discard the non-system link directories added by Xcode. Discard all detected implicit libraries in the multi-architecture case but keep the directories. The directories are still useful without the libraries just to suppress addition of explicit -L options for them.
| * OS X: Link with all framework search paths, not just the lastBrad King2012-12-111-1/+1
| | | | | | | | | | | | | | | | Refactoring in commit 8d674e78 (Ninja: move -LIBPATH behind -link option, 2012-09-26) accidentally added code that overwrites the framework search path flags on each iteration instead of appending. Change '=' to '+=' to fix it. This affects Makefile and Ninja generators.
* | Merge topic 'interface-includes-defines'Brad King2013-01-0726-118/+817
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 894f52f Handle INTERFACE properties transitively for includes and defines. f5b1980 Populate the ExportedTargets member early in GenerateMainFile c67b812 Make cycles in target properties ignored, not an error. d0f950f Use mapped config properties to evaluate $<CONFIG> 26def17 Make all relevant targets available in the genex context. 0c657dc Add API to populate INTERFACE properties in exported targets. e04f737 Add API to extract target names from a genex string. b0c8f73 Add the TARGET_NAME generator expression. 77475fe Allow generator expressions to require literals. b2f1700 GenEx: Add expressions to specify build- or install-only values
| * | Handle INTERFACE properties transitively for includes and defines.Stephen Kelly2013-01-059-2/+243
| | | | | | | | | | | | | | | Contextually, the behavior is as if the properties content from another target is included in the string and then the result is evaluated.
| * | Populate the ExportedTargets member early in GenerateMainFileStephen Kelly2013-01-052-22/+28
| | | | | | | | | | | | | | | | | | | | | The member variable is checked to determine whether to call HandleMissingTarget(). As that could be called during the loop in the comming commits, ensure that it contains all targets being exported.
| * | Make cycles in target properties ignored, not an error.Stephen Kelly2013-01-053-11/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Constructs such as these are an error as they are direct self-references: set_property(TARGET foo APPEND PROPERTY INCLUDE_DIRECTORIES $<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>) set_property(TARGET foo APPEND PROPERTY INCLUDE_DIRECTORIES $<TARGET_PROPERTY:INCLUDE_DIRECTORIES>) However, this is an indirect self-reference in a cycle, and not an error: set_property(TARGET foo APPEND PROPERTY INCLUDE_DIRECTORIES $<TARGET_PROPERTY:bar,INCLUDE_DIRECTORIES>) set_property(TARGET bar APPEND PROPERTY INCLUDE_DIRECTORIES $<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>)
| * | Use mapped config properties to evaluate $<CONFIG>Stephen Kelly2013-01-053-39/+72
| | |
| * | Make all relevant targets available in the genex context.Stephen Kelly2013-01-055-6/+29
| | | | | | | | | | | | | | | The current node being evaluated transitively in the generator expression must be available to resolve mapped configs.
| * | Add API to populate INTERFACE properties in exported targets.Stephen Kelly2013-01-052-0/+74
| | | | | | | | | | | | | | | The INTERFACE properties need to be preprocessed for context (build location or install location) and to extract target names etc.
| * | Add API to extract target names from a genex string.Stephen Kelly2013-01-052-0/+140
| | | | | | | | | | | | | | | | | | | | | The TARGET_NAME expression, which requires a literal, provides target names. $<TARGET_PROPERTY:tgt,prop> also provides target names in the cases where tgt is a literal, so that TARGET_NAME is not needed then in addition.
| * | Add the TARGET_NAME generator expression.Stephen Kelly2013-01-058-0/+45
| | | | | | | | | | | | It will be used as a preprocessing marker.
| * | Allow generator expressions to require literals.Stephen Kelly2013-01-051-0/+17
| | |
| * | GenEx: Add expressions to specify build- or install-only valuesStephen Kelly2013-01-058-38/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is for specifying INCLUDE_DIRECTORIES relevant to the build-location or the install location for example: set_property(TARGET foo PROPERTY INTERFACE_INCLUDE_DIRECTORIES "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR};${CMAKE_CURRENT_SOURCE_DIR}>" "$<INSTALL_INTERFACE:${CMAKE_INSTALL_PREFIX}/include>" ) A 'bar' target can then use: set_property(TARGET bar PROPERTY INCLUDE_DIRECTORIES "$<TARGET_PROPERTY:foo,INTERFACE_INCLUDE_DIRECTORIES>" ) and it will work whether foo is in the same project, or an imported target from an installation location, or an imported target from a build location generated by the export() command. Because the generator expressions are only evaluated at build-time, these new expressions are equivalent to the ZeroNode and OneNode. The GeneratorExpression test is split into parts. Some shells can't run the custom command as it is getting too long.
* | | Merge topic 'ninja-codeblocks-gui'Brad King2013-01-071-0/+5
|\ \ \ | | | | | | | | | | | | | | | | 76c4430 Ninja: fix building from Codeblocks GUI
| * | | Ninja: fix building from Codeblocks GUIPeter Kümmel2013-01-051-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | Many thx to Chuck Frayman BUG: 13652
* | | | Merge topic 'doc-Xcode-obj-lib-workaround'Brad King2013-01-071-0/+4
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 51988a4 add_library: Document object library portability suggestion
| * | | | add_library: Document object library portability suggestionBrad King2013-01-041-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Xcode and VS <= 7.1 will not build targets that have no source files besides $<TARGET_OBJECTS:...>. Suggest in the documentation that projects always add at least one real source file.
* | | | | Merge topic 'test-genex-custom-command'Brad King2013-01-071-0/+6
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 119bf4b Add test for custom command with a genex referring to a target.
| * | | | | Add test for custom command with a genex referring to a target.Stephen Kelly2013-01-071-0/+6
| |/ / / / | | | | | | | | | | | | | | | | | | | | This test failed before d8a59ea4 (Port cmGeneratorExpression to cmTarget from cmGeneratorTarget, 2012-10-27), and passes after.
* | | | | Merge topic 'fix-genex-with-no-target'Brad King2013-01-071-0/+15
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | e767ffc Don't crash when a target is expected but is not available.
| * | | | | Don't crash when a target is expected but is not available.Stephen Kelly2013-01-031-0/+15
| |/ / / /
* | | | | Merge topic 'qt4-target-depends'Brad King2013-01-074-0/+100
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 57a67bf Qt4: Add module dependencies to the IMPORTED targets
| * | | | | Qt4: Add module dependencies to the IMPORTED targetsStephen Kelly2013-01-074-0/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This means for example, that consumers can use: target_link_libraries(foo ${QT_QTGUI_LIBRARIES}) instead of also needing to specify all 'public' dependencies: target_link_libraries(foo ${QT_QTGUI_LIBRARIES} ${QT_QTCORE_LIBRARIES} ) when using the IMPORTED targets. Also populate the IMPORTED_LINK_DEPENDENT_LIBRARIES property so CMake can help the linker find shared library dependencies.
* | | | | | CMake Nightly Date StampKitware Robot2013-01-071-1/+1
| | | | | |
* | | | | | CMake Nightly Date StampKitware Robot2013-01-061-1/+1
| |_|/ / / |/| | | |
* | | | | CMake Nightly Date StampKitware Robot2013-01-051-1/+1
| |_|/ / |/| | |
* | | | CMake Nightly Date StampKitware Robot2013-01-041-1/+1
| |/ / |/| |
* | | Merge topic 'fix-test-warnings'Brad King2013-01-031-1/+1
|\ \ \ | | | | | | | | | | | | | | | | b6346f2 Tests: Fix warning about unused variable
| * | | Tests: Fix warning about unused variableStephen Kelly2013-01-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Resolve this warning: ".../Tests/CMakeCommands/target_link_libraries/depB.cpp", line 8: warning: variable "a" was declared but never referenced DepA a; ^
* | | | Merge topic 'FixSDLSearchPaths'Brad King2013-01-035-5/+10
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | fb864d6 FindSDL_...: Restore dropped search paths (#13819)
| * | | | FindSDL_...: Restore dropped search paths (#13819)Benjamin Eikel2012-12-305-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | Restore the search paths that were accidentally dropped by me in commit 9ed24c53. This was already fixed for FindSDL.cmake in commit 7cb51739.
* | | | | Merge topic 'fix-13789-wix-ui-enhancements'Brad King2013-01-033-0/+42
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 3793dca CPack: WIX Product Icon, UI Banner, UI Dialog support (#13789)
| * | | | | CPack: WIX Product Icon, UI Banner, UI Dialog support (#13789)Eric LaFranchi2012-12-283-0/+42
| | | | | |
* | | | | | Merge topic 'include-dirs-debugging'Brad King2013-01-0324-142/+409
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0941d62 Add a way to print the origins of used include directories. 18a3195 Keep track of INCLUDE_DIRECTORIES as a vector of structs. 76ea420 Use cmsys::auto_ptr to manage cmCompiledGeneratorExpressions
| * | | | | | Add a way to print the origins of used include directories.Stephen Kelly2013-01-037-0/+123
| | | | | | |
| * | | | | | Keep track of INCLUDE_DIRECTORIES as a vector of structs.Stephen Kelly2013-01-0315-98/+243
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The struct can keep track of where the include came from, which gives us proper backtraces.
| * | | | | | Use cmsys::auto_ptr to manage cmCompiledGeneratorExpressionsStephen Kelly2012-12-206-45/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compiled generator expressions need to outlive the creating type. For the same reason, store the input string in a std::string.
* | | | | | | Merge topic 'fix-12904-avoid-overflow'Brad King2013-01-034-1/+107
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e378ba5 Add CTestLimitDashJ test (#12904) 3247806 CTest: Prevent creation of unbounded number of tests in ctest (#12904)
| * | | | | | | Add CTestLimitDashJ test (#12904)David Cole2013-01-033-0/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a test that verifies that when ctest -j 4 is called, at most, 4 tests are executed at any one time. The test works by running the same script as each of 100 tests. And then setting up test properties for DEPENDS, RUN_SERIAL, PROCESSORS and COST in order to get the tests to run in a semi-deterministic ordering, even in parallel. The script writes a file, sleeps for a bit, and then deletes the file. In the meantime, it counts files that currently exist, and emits output that triggers a test failure if the count of files is ever greater than 4. Prior to the commit that fixed bug #12904, this would result in a failed test because the output of some of the tests would indicate that more than 4 tests were running simultaneously. Now that this issue is resolved, this test will help guarantee that it stays resolved moving forward.
| * | | | | | | CTest: Prevent creation of unbounded number of tests in ctest (#12904)Casey Goodlett2012-12-181-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note it is still possible for CTest to start more than the number of processes specified by PARALLEL_LEVEL, but this prevents the number of tests to start from being unbounded because of overflow.
* | | | | | | | Merge topic 'iface-depends'Brad King2013-01-036-2/+89
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3096202 Make targets depend on the link interface of their dependees.
| * | | | | | | | Make targets depend on the link interface of their dependees.Stephen Kelly2013-01-036-2/+89
| | |_|_|_|_|/ / | |/| | | | | |
* | | | | | | | Merge topic 'genex-cleanup'Brad King2013-01-031-4/+4
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7d736af Replace some 'if' with 'else if'
| * | | | | | | | Replace some 'if' with 'else if'Stephen Kelly2012-12-231-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For consistency with the rest of the method.
* | | | | | | | | Merge topic 'update-kwsys'Brad King2013-01-0314-1727/+130
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 81c0be4 Merge branch 'upstream-kwsys' into update-kwsys 567e7d9 KWSys 2012-12-21 (8ce09af5) 2c24ca9 Remove references to KWSys Process Win9x support e33fa5b Merge branch 'upstream-kwsys' into update-kwsys a0f91f1 KWSys 2012-12-19 (933eb822)
| * \ \ \ \ \ \ \ \ Merge branch 'upstream-kwsys' into update-kwsysBrad King2012-12-221-0/+8
| |\ \ \ \ \ \ \ \ \
| | * | | | | | | | | KWSys 2012-12-21 (8ce09af5)KWSys Robot2012-12-221-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extract upstream KWSys using the following shell commands. $ git archive --prefix=upstream-kwsys/ 8ce09af5 | tar x $ git shortlog --no-merges --abbrev=8 --format='%h %s' 933eb822..8ce09af5 Riku Voipio (1): 8ce09af5 CPU: Add Aarch64 support Change-Id: I4bd0a97abaa0f958e2679afe2d4ad4bcc37434a0
| * | | | | | | | | | Remove references to KWSys Process Win9x supportBrad King2012-12-192-26/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The KWSys "EncodeExecutable" and "ProcessFwd9x" executables were dropped from KWSys along with Win9x Process support. Drop references from the rest of the CMake build rules.