summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* cmMakefile: Avoid excess source filesBen Boeckel2014-07-081-23/+26
| | | | | When there are no commands, a main_dependency is not required and when there are also no dependencies, nothing is required.
* cmMakefile: Add a CreateSource methodBen Boeckel2014-07-083-14/+29
| | | | | The GetOrCreateSource searches the source file listing again, but some callers know that it already didn't exist.
* CMake Nightly Date StampKitware Robot2014-07-081-1/+1
|
* Merge topic 'export-from-obj-libs'Brad King2014-07-071-0/+5
|\ | | | | | | | | d17688e4 Help: Add notes for topic 'export-from-obj-libs'
| * Help: Add notes for topic 'export-from-obj-libs'Brad King2014-07-071-0/+5
| |
* | Merge topic 'refactor-usage-requirement-evaluation'Brad King2014-07-0710-271/+127
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 93790506 cmTarget: Simplify INTERFACE_INCLUDE_DIRECTORIES usage requirement lookup b5b098eb cmTarget: Simplify CMP0027 logic in processIncludeDirectories 5e07dcf7 cmTarget: Add to LinkImplementation whether each library was a genex f77b384c cmTarget: Simplify INTERFACE_COMPILE_FEATURES usage requirement lookup 61ef8daa cmTarget: Simplify INTERFACE_COMPILE_DEFINITIONS usage requirement lookup d9586f83 cmTarget: Simplify INTERFACE_COMPILE_OPTIONS usage requirement lookup 3156275b cmTarget: Simplify INTERFACE_SOURCES usage requirement lookup 363cd33e cmTarget: Add method to add usage requirements from linked interfaces 251e835b cmTarget: Add to LinkImplementation a backtrace for each library 848c8ccf cmTarget: Refactor LinkImplementation to allow more information f85ccf23 cmGeneratorExpressionEvaluator: Shorten some long lines 82e91e34 cmComputeLinkDepends: Convert AddLinkEntries to a template
| * | cmTarget: Simplify INTERFACE_INCLUDE_DIRECTORIES usage requirement lookupBrad King2014-07-072-68/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the AddInterfaceEntries helper to avoid duplication. In TargetPropertyEntry, replace the TargetName string member with a reference to the full cmLinkImplItem that produced the entry. This is possible because the cmLinkImplItem is available in AddInterfaceEntries (it was not available in GetIncludeDirectories). Having the full cmLinkImplItem allows processIncludeDirectories to implement CMP0027 OLD behavior without repeating the target name lookup. Update the RunCMake.CompatibleInterface test DebugProperties case expected output for the new order of the messages.
| * | cmTarget: Simplify CMP0027 logic in processIncludeDirectoriesBrad King2014-07-071-26/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | Evaluate and lookup the target name only once per TargetPropertyEntry instead of repeating it for each include directory entry. Use a local checkCMP0027 variable to record whether the policy should be checked. Evaluate the target name as a generator expression only if it looks like one. Lookup the target by name only after evaluation of generator expressions.
| * | cmTarget: Add to LinkImplementation whether each library was a genexBrad King2014-07-072-11/+11
| | | | | | | | | | | | | | | | | | Implementation of CMP0027 OLD behavior needs to know whether each entry in LinkImplementation::Libraries came from a generator expression or not. Add a FromGenex member to cmLinkImplItem to record this.
| * | cmTarget: Simplify INTERFACE_COMPILE_FEATURES usage requirement lookupBrad King2014-07-071-39/+3
| | | | | | | | | | | | Use the AddInterfaceEntries helper to avoid duplication.
| * | cmTarget: Simplify INTERFACE_COMPILE_DEFINITIONS usage requirement lookupBrad King2014-07-071-39/+3
| | | | | | | | | | | | Use the AddInterfaceEntries helper to avoid duplication.
| * | cmTarget: Simplify INTERFACE_COMPILE_OPTIONS usage requirement lookupBrad King2014-07-071-39/+3
| | | | | | | | | | | | Use the AddInterfaceEntries helper to avoid duplication.
| * | cmTarget: Simplify INTERFACE_SOURCES usage requirement lookupBrad King2014-07-073-42/+10
| | | | | | | | | | | | Use the AddInterfaceEntries helper to avoid duplication.
| * | cmTarget: Add method to add usage requirements from linked interfacesBrad King2014-07-071-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create a cmTargetInternals::AddInterfaceEntries method to construct a $<TARGET_PROPERTY:tgt,INTERFACE_XYZ> generator expression and evaluate it for every target in the link implementation. This will be useful to de-duplicate such evaluation for each usage requirement separately. The new method will soon be used in the implementation of the INTERFACE_* usage requirement lookup methods (GetSourceFiles, GetCompileOptions, GetCompileDefinitions, GetCompileFeatures, GetIncludeDirectories). It is necessary for these methods to determine whether an expression in LinkImplementationPropertyEntries evaluates to a target or not because generator expression evaluation reports an error for non-targets and we construct a $<TARGET_PROPERTY:tgt,INTERFACE_XYZ> expression for each entry that is a target. The implementation of each usage requirement currently processes the LinkImplementationPropertyEntries and evaluates all generator expressions to determine targets. That is no longer necessary because GetLinkImplementationLibraries now returns resolved and cached targets together with their name. Use it to implement AddInterfaceEntries.
| * | cmTarget: Add to LinkImplementation a backtrace for each libraryBrad King2014-07-072-5/+7
| | | | | | | | | | | | Allow clients to provide backtrace context on evaluation diagnostics.
| * | cmTarget: Refactor LinkImplementation to allow more informationBrad King2014-07-075-14/+27
| | | | | | | | | | | | | | | | | | | | | Create a cmLinkImplItem class derived from cmLinkItem so more information can be added to link implementation entries than link interface entries. Convert the LinkImplementation Libraries member to hold it. Update client sites accordingly.
| * | cmGeneratorExpressionEvaluator: Shorten some long linesBrad King2014-07-071-13/+16
| | | | | | | | | | | | Adjust the definitions of getLinkedTargetsContent to avoid long lines.
| * | cmComputeLinkDepends: Convert AddLinkEntries to a templateBrad King2014-07-072-4/+5
| | | | | | | | | | | | | | | Allow the method to be called with a vector of any type that can be converted to cmLinkItem.
* | | Merge topic 'ExternalProject_test'Brad King2014-07-0712-201/+246
|\ \ \ | | | | | | | | | | | | | | | | 92af3664 Tests: split the ExternalProject test
| * | | Tests: split the ExternalProject testRolf Eike Beer2014-07-0312-201/+246
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the subtests that test with local projects into their own test. The reason is that on slower or crowded machines the test may reach the limit of 25 minutes and therefore fail while it would pass if it was given enough time. The split is roughly 3:1 with regard to the execution time, with the new ExternalProjectLocal test being the faster one.
* | | | Merge topic 'dev/export-from-obj-libs'Brad King2014-07-071-0/+1
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | 5ca1d3d5 GenerateExportHeader: support exporting from OBJECT libraries
| * | | GenerateExportHeader: support exporting from OBJECT librariesBen Boeckel2014-07-031-0/+1
| |/ /
* | | Merge topic 'WriteCompilerDetectionHeader-valid-prefix'Brad King2014-07-078-0/+42
|\ \ \ | | | | | | | | | | | | | | | | b47c125f WCDH: Ensure that the prefix argument to the macro is valid.
| * | | WCDH: Ensure that the prefix argument to the macro is valid.Stephen Kelly2014-07-028-0/+42
| | |/ | |/| | | | | | | | | | The prefix must be a C-identifier because it is written as the prefix of preprocessor macros and possibly structs.
* | | Merge topic 'fix-CTestTestTimeout-output-order'Brad King2014-07-071-1/+1
|\ \ \ | | | | | | | | | | | | | | | | 15e61f9b Tests: Fix CTestTestTimeout output order to match regex
| * | | Tests: Fix CTestTestTimeout output order to match regexBrad King2014-07-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Print the "timeout correctly killed" message using message(STATUS) so that 'ctest -S' puts it in the same pipe as the rest of the test command handler output. This ensures it shows up in the same order every time.
* | | | Merge topic 'ctest-S-message-STATUS'Brad King2014-07-071-0/+11
|\ \ \ \ | |/ / / | | | | | | | | | | | | f33d875a CTest: Implement message(STATUS) output for 'ctest -S' scripts
| * | | CTest: Implement message(STATUS) output for 'ctest -S' scriptsBrad King2014-07-021-0/+11
| |/ / | | | | | | | | | | | | | | | Send status messages to the CTest HANDLER_OUTPUT log since they are part of the script handler output. This also ensures they appear inline with other test command handler output.
* | | Merge topic 'no-cross-install_name_tool'Brad King2014-07-071-3/+1
|\ \ \ | | | | | | | | | | | | | | | | 591a7388 OS X: Only search for install_name_tool if the toolchain has it
| * | | OS X: Only search for install_name_tool if the toolchain has itFlorent Castelli2014-07-021-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | When cross compiling, toolchains won't have install_name_tool, which is provided by Xcode and command line tools on OS X. This is a Mach-O specific utility and not required on all platforms.
* | | | CMake Nightly Date StampKitware Robot2014-07-071-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2014-07-061-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2014-07-051-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2014-07-041-1/+1
| |_|/ |/| |
* | | CMake Nightly Date StampKitware Robot2014-07-031-1/+1
| |/ |/|
* | Merge topic 'ExternalProject_test'Brad King2014-07-021-54/+0
|\ \ | | | | | | | | | | | | 7269e69f ExternalProject test: remove unused file
| * | ExternalProject test: remove unused fileRolf Eike Beer2014-07-011-54/+0
| |/
* | Merge topic 'memcheck-test-no-lang'Brad King2014-07-021-1/+1
|\ \ | | | | | | | | | | | | 5217ad26 CTestTestMemcheck: do not search for compilers
| * | CTestTestMemcheck: do not search for compilersRolf Eike Beer2014-07-011-1/+1
| |/
* | Merge topic 'tests-add_test-NAME'Brad King2014-07-021-1/+1
|\ \ | | | | | | | | | | | | 902c9063 Tests: Use add_test(NAME) signature in add_test_macro
| * | Tests: Use add_test(NAME) signature in add_test_macroBen Boeckel2014-07-011-1/+1
| |/ | | | | | | This will allow generator expressions to be used in test arguments.
* | Merge topic 'fix-circular-transitive-properties-segfault'Brad King2014-07-0222-0/+171
|\ \ | | | | | | | | | | | | | | | 65aa5442 Target: Return null when a transitive property is not defined. 61ce6547 Genex: Fix stack overflow in transitive property evaluation.
| * | Target: Return null when a transitive property is not defined.Stephen Kelly2014-07-011-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit v2.8.11~310^2~1 (Keep track of INCLUDE_DIRECTORIES as a vector of structs., 2012-11-19) added special case of INCLUDE_DIRECTORIES for the purpose of origin-tracking of individual entries in the property. It introduced a bug in that it returned an empty string instead of '0' in the case that no includes have been set. Commit v2.8.11~289^2~2 (Handle INTERFACE properties transitively for includes and defines., 2012-09-23) introduced transitive handling of the property through the link implementation, together with a whitelist of properties which would be evaluated transitively. Because of the bug introduced previously, the 'prop' in TargetPropertyNode is non-null, meaning that the content (the empty string) would be evaluated as a generator expression. This was harmless as the follow-up code was only for 'INTERFACE_' variants of target properties, so the effect was the same. Commits v2.8.11~280^2~2 (Keep track of properties used to determine linker libraries., 2012-11-05) and v2.8.11~280^2~1 (Add API to calculate link-interface-dependent bool properties or error., 2013-01-06) added a way to track and report errors on properties which both determine and are determined by the link implementation. This was later used in generator expression evaluation by commit v2.8.11~252^2~2 (Make INTERFACE determined properties readable in generator expressions., 2013-01-19). If a property is unset (null), and the link implementation of the target was not being evaluated, this commit made it possible to evaluate the property from the link implementation instead. If the link implementation was being evaluated, an empty string was returned from the generator expression evaluation, which might be later reported as an error. The above logic was written for 'compatible interface' properties, but in fact it should have also included other properties. Because of the empty-string-instead-of-null bug, this code block is not entered for the INCLUDE_DIRECTORIES property. At this point, however, the bug still does not significantly affect behavior, because the follow-up code is still a no-op for the INCLUDE_DIRECTORIES property, and an empty string is returned regardless. Commit v2.8.11~189^2~6 (Use the link information as a source of compile definitions and includes., 2013-02-12) refactored the logic, but also without a change in behavior. Commit v2.8.11~156^2~2 (Expand includes and defines transitively in 'external' genexes., 2013-02-13) refactored the logic again, this time with a change of behavior. The INCLUDE_DIRECTORIES property was then mapped to INTERFACE_INCLUDE_DIRECTORIES during transitive generator expression evaluation. Because the transitive evaluation involved evaluation of the link implementation, this introduced a recursive loop and a segfault with code like: add_library(empty1 ...) add_library(empty2 ...) target_link_libraries(empty1 PRIVATE $<$<STREQUAL:$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>,/foo/bar>:empty2> ) As there is no real use-case for reading a target property like that while evaluating the link implementation, this went unnoticed. The same pattern was followed for other special-cased reads of transitive target properties such as COMPILE_DEFINITIONS. The segfault was fixed in the parent commit, but change the property to return null when appropriate for other future uses.
| * | Genex: Fix stack overflow in transitive property evaluation.Stephen Kelly2014-07-0121-0/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit v2.8.11~156^2~2 (Expand includes and defines transitively in 'external' genexes., 2013-02-13) introduced a recursive loop and a stack overflow during evaluation of a link implementation which depends on a transitive property, such as add_library(empty1 ...) add_library(empty2 ...) target_link_libraries(empty1 PRIVATE $<$<STREQUAL:$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>,/foo/bar>:empty2> ) There is no use-case for code like that currently, but it should not cause a stack overflow. Avoid the recursion by reporting an error early if a case like this is found.
* | | Merge topic 'ninja-link-order-only-dependencies'Brad King2014-07-022-1/+12
|\ \ \ | | | | | | | | | | | | | | | | ac8879ce Ninja: Add order-only dependencies to link commands (#14728)
| * | | Ninja: Add order-only dependencies to link commands (#14728)Ben Boeckel2014-07-012-1/+12
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A library or executable target that consists only of a reference to an object library may have no sources to compile or custom commands to run. The command in the target is the link (or archive) command. Add missing order-only dependencies to link commands so that target ordering dependencies are satisfied for it without depending on an intermediate compilation rule. Extend the ObjectLibrary test to cover this case. Co-Author: Brad King <brad.king@kitware.com>
* | | Merge topic 'encoding-bugs'Brad King2014-07-022-15/+5
|\ \ \ | | | | | | | | | | | | | | | | 9571214e Encoding: Replace some system calls with kwsys calls which handle unicode.
| * | | Encoding: Replace some system calls with kwsys calls which handle unicode.Clinton Stimpson2014-07-012-15/+5
| | | |
* | | | Merge topic 'FindJNI-ppc64le'Brad King2014-07-021-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 18ac6713 FindJNI: search for ppc64 on ppc64le as well
| * | | | FindJNI: search for ppc64 on ppc64le as wellDinar Valeev2014-07-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IcedTea 2.5 have changed libarch for ppc64le to ppc64. Adjust FindJNI to look for both for backward compatibility. Signed-off-by: Dinar Valeev <dvaleev@suse.com>