summaryrefslogtreecommitdiff
path: root/Tests/CompatibleInterface
Commit message (Collapse)AuthorAgeFilesLines
* Revise C++ coding style using clang-format-6.0Kitware Robot2018-06-011-6/+6
| | | | | | | | | | | | Run the `clang-format.bash` script to update all our C and C++ code to a new style defined by `.clang-format`. Use `clang-format` version 6.0. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* Revise C++ coding style using clang-formatKitware Robot2016-05-162-7/+10
| | | | | | | | | | | | | Run the `Utilities/Scripts/clang-format.bash` script to update all our C++ code to a new style defined by `.clang-format`. Use `clang-format` version 3.8. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* Honor $<LINK_ONLY> when checking interface propertiesBrad King2014-07-164-2/+28
| | | | | | | | | | Callers of cmTarget::GetLinkImplementationClosure are interested in the set of targets whose interface properties propagate to the current target. This excludes targets guarded by $<LINK_ONLY>. Teach the CompatibleInterface test to cover suppression of interface compatibility tests with $<LINK_ONLY>. Although this is not recommended in practice, it is a way of covering the above behavior.
* Genex: Add EQUAL expression.Stephen Kelly2014-01-061-2/+2
| | | | Support decimal, hex, octal and binary literals.
* cmTarget: Use strtol for numeric parsing.Stephen Kelly2014-01-062-2/+12
| | | | | | On Windows apparently sscanf can not handle hex numbers. Test that numeric comparison works with hex numbers.
* cmTarget: Report origin of COMPATIBLE_INTERFACE properties.Stephen Kelly2013-12-081-0/+7
|
* cmTarget: Add interface for compatible numeric propertiesStephen Kelly2013-10-242-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using the boost MPL library, one can set a define to increase the limit of how many variadic elements should be supported. The default for BOOST_MPL_LIMIT_VECTOR_SIZE is 20: http://www.boost.org/doc/libs/1_36_0/libs/mpl/doc/refmanual/limit-vector-size.html If the foo library requires that to be set to 30, and the independent bar library requires it to be set to 40, consumers of both need to set it to 40. add_library(foo INTERFACE) set_property(TARGET foo PROPERTY INTERFACE_boost_mpl_vector_size 30) set_property(TARGET foo PROPERTY COMPATIBLE_INTERFACE_NUMBER_MAX boost_mpl_vector_size) target_compile_definitions(foo INTERFACE BOOST_MPL_LIMIT_VECTOR_SIZE=$<TARGET_PROPERTY:boost_mpl_vector_size>) add_library(bar INTERFACE) set_property(TARGET bar PROPERTY INTERFACE_boost_mpl_vector_size 40) # Technically the next two lines are redundant, but as foo and bar are # independent, they both set these interfaces. set_property(TARGET bar PROPERTY COMPATIBLE_INTERFACE_NUMBER_MAX boost_mpl_vector_size) target_compile_definitions(bar INTERFACE BOOST_MPL_LIMIT_VECTOR_SIZE=$<TARGET_PROPERTY:boost_mpl_vector_size>) add_executable(user) target_link_libraries(user foo bar) Because the TARGET_PROPERTY reads the boost_mpl_vector_size property from the HEAD of the dependency graph (the user target), and because that property appears in the COMPATIBLE_INTERFACE_NUMBER_MAX of the dependencies of the user target, the maximum value for it is chosen for the compile definition, ie, 40. There are also use-cases for choosing the minimum value of a number. In Qt, deprecated API can be disabled by version. Setting the definition QT_DISABLE_DEPRECATED_BEFORE=0 disables no deprecated API. Setting it to 0x501000 disables API which was deprecated before Qt 5.1 etc. If two dependencies require the use of API which was deprecated in different Qt versions, then COMPATIBLE_INTERFACE_NUMBER_MIN can be used to ensure that both can compile.
* Add the INTERFACE_LIBRARY target type.Stephen Kelly2013-10-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This target type only contains INTERFACE_* properties, so it can be used as a structural node. The target-specific commands enforce that they may only be used with the INTERFACE keyword when used with INTERFACE_LIBRARY targets. The old-style target properties matching LINK_INTERFACE_LIBRARIES_<CONFIG> are always ignored for this target type. The name of the INTERFACE_LIBRARY must match a validity generator expression. The validity is similar to that of an ALIAS target, but with the additional restriction that it may not contain double colons. Double colons will carry the meaning of IMPORTED or ALIAS targets in CMake 2.8.13. An ALIAS target may be created for an INTERFACE library. At this point it can not be exported and does not appear in the buildsystem and project files are not created for them. That may be added as a feature in a later commit. The generators need some changes to handle the INTERFACE_LIBRARY targets returned by cmComputeLinkInterface::GetItems. The Ninja generator does not use that API, so it doesn't require changes related to that.
* Fix spelling and typos (non-binary)Andreas Mohr2013-05-071-1/+1
|
* Fix spelling and typos (affecting binary data / module messages)Andreas Mohr2013-05-071-2/+2
|
* The COMPATIBLE_INTERFACE does not affect the target it is set on.Stephen Kelly2013-02-071-0/+15
| | | | Test and document this.
* Handle reading empty properties defined by the link interface.Stephen Kelly2013-01-311-1/+13
| | | | This was segfaulting before.
* Add the COMPATIBLE_INTERFACE_STRING property.Stephen Kelly2013-01-242-0/+25
|
* Exclude the LINK_LIBRARIES related properties from INTERFACE evaluation.Stephen Kelly2013-01-244-1/+40
| | | | | | These interface-related link-libraries properties are used to determine the value of the other INTERFACE properties, so we were getting infinite recursion and segfaults otherwise.
* Make INTERFACE determined properties readable in generator expressions.Stephen Kelly2013-01-203-0/+46
The properties are evaluated as link-dependent interface properties when evaluating the generator expressions.