Merge topic 'remove-TARGET_DEFINED-genex'
cbf0756
Revert "Add the TARGET_DEFINED generator expression"21a342c
Remove use of TARGET_DEFINED from the target_link_libraries test.47b8d32
Remove use of TARGET_DEFINED from the ExportImport test.2e39d21
Remove use of TARGET_DEFINED from target_include_directories test.
This commit is contained in:
commit
b4bb074d8b
|
@ -37,7 +37,6 @@
|
|||
"target in the same buildsystem. Expands to the empty string " \
|
||||
"otherwise.\n" \
|
||||
" $<TARGET_FILE:tgt> = main file (.exe, .so.1.2, .a)\n" \
|
||||
" $<TARGET_DEFINED:tgt> = '1' if tgt is a target, else '0'\n" \
|
||||
" $<TARGET_LINKER_FILE:tgt> = file used to link (.a, .lib, .so)\n" \
|
||||
" $<TARGET_SONAME_FILE:tgt> = file with soname (.so.3)\n" \
|
||||
"where \"tgt\" is the name of a target. " \
|
||||
|
|
|
@ -291,22 +291,6 @@ static const struct ConfigurationTestNode : public cmGeneratorExpressionNode
|
|||
} configurationTestNode;
|
||||
|
||||
|
||||
static const struct TargetDefinedNode : public cmGeneratorExpressionNode
|
||||
{
|
||||
TargetDefinedNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 1; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string> ¶meters,
|
||||
cmGeneratorExpressionContext *context,
|
||||
const GeneratorExpressionContent *,
|
||||
cmGeneratorExpressionDAGChecker *) const
|
||||
{
|
||||
return context->Makefile->FindTargetToUse(parameters.front().c_str())
|
||||
? "1" : "0";
|
||||
}
|
||||
} targetDefinedNode;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const char* targetPropertyTransitiveWhitelist[] = {
|
||||
"INTERFACE_INCLUDE_DIRECTORIES"
|
||||
|
@ -969,8 +953,6 @@ cmGeneratorExpressionNode* GetNode(const std::string &identifier)
|
|||
return &buildInterfaceNode;
|
||||
else if (identifier == "INSTALL_INTERFACE")
|
||||
return &installInterfaceNode;
|
||||
else if (identifier == "TARGET_DEFINED")
|
||||
return &targetDefinedNode;
|
||||
else if (identifier == "INSTALL_PREFIX")
|
||||
return &installPrefixNode;
|
||||
return 0;
|
||||
|
|
|
@ -18,7 +18,5 @@ add_executable(consumer
|
|||
|
||||
target_compile_definitions(consumer
|
||||
PRIVATE $<TARGET_PROPERTY:target_compile_definitions,INTERFACE_COMPILE_DEFINITIONS>
|
||||
$<$<TARGET_DEFINED:notdefined>:SHOULD_NOT_BE_DEFINED>
|
||||
$<$<TARGET_DEFINED:target_compile_definitions>:SHOULD_BE_DEFINED>
|
||||
-DDASH_D_DEFINE
|
||||
)
|
||||
|
|
|
@ -11,14 +11,6 @@
|
|||
#error Expected MY_INTERFACE_DEFINE
|
||||
#endif
|
||||
|
||||
#ifdef SHOULD_NOT_BE_DEFINED
|
||||
#error Unexpected SHOULD_NOT_BE_DEFINED
|
||||
#endif
|
||||
|
||||
#ifndef SHOULD_BE_DEFINED
|
||||
#error Expected SHOULD_BE_DEFINED
|
||||
#endif
|
||||
|
||||
#ifndef DASH_D_DEFINE
|
||||
#error Expected DASH_D_DEFINE
|
||||
#endif
|
||||
|
|
|
@ -30,12 +30,12 @@ target_include_directories(target_include_directories
|
|||
PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/poison"
|
||||
)
|
||||
target_include_directories(target_include_directories
|
||||
BEFORE PUBLIC "$<$<TARGET_DEFINED:target_include_directories>:${CMAKE_CURRENT_BINARY_DIR}/cure>"
|
||||
BEFORE PUBLIC "$<$<STREQUAL:$<TARGET_PROPERTY:target_include_directories,TYPE>,EXECUTABLE>:${CMAKE_CURRENT_BINARY_DIR}/cure>"
|
||||
)
|
||||
|
||||
# Has no effect because the target is not defined:
|
||||
# Has no effect because the target type is not SHARED_LIBRARY:
|
||||
target_include_directories(target_include_directories
|
||||
BEFORE PUBLIC "$<$<TARGET_DEFINED:notdefined>:${CMAKE_CURRENT_BINARY_DIR}/poison>"
|
||||
BEFORE PUBLIC "$<$<STREQUAL:$<TARGET_PROPERTY:target_include_directories,TYPE>,SHARED_LIBRARY>:${CMAKE_CURRENT_BINARY_DIR}/poison>"
|
||||
)
|
||||
|
||||
add_executable(consumer
|
||||
|
|
|
@ -103,7 +103,7 @@ target_compile_definitions(depG INTERFACE
|
|||
)
|
||||
|
||||
add_executable(targetC targetC.cpp)
|
||||
# Creates a generator expression for include directories like
|
||||
# $<$<TARGET_DEFINED:$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:depG>>:\
|
||||
# $<TARGET_PROPERTY:$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:depG>,INTERFACE_INCLUDE_DIRECTORIES>>
|
||||
target_link_libraries(targetC $<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:depG>)
|
||||
# The TARGET_PROPERTY expression is duplicated below to test that there is no
|
||||
# shortcutting of the evaluation by returning an empty string.
|
||||
set(_exe_test $<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>)
|
||||
target_link_libraries(targetC $<$<AND:${_exe_test},${_exe_test}>:depG>)
|
||||
|
|
|
@ -149,7 +149,7 @@ set_property(TARGET testLibRequired APPEND PROPERTY
|
|||
$<BUILD_INTERFACE:$<TARGET_PROPERTY:testLibIncludeRequired5,INTERFACE_INCLUDE_DIRECTORIES>>
|
||||
$<INSTALL_INTERFACE:$<TARGET_PROPERTY:testLibIncludeRequired6,INTERFACE_INCLUDE_DIRECTORIES>>
|
||||
# Test that the below is non-fatal
|
||||
$<$<TARGET_DEFINED:not_a_target>:$<TARGET_PROPERTY:not_a_target,INTERFACE_INCLUDE_DIRECTORIES>>
|
||||
$<$<STREQUAL:one,two>:$<TARGET_PROPERTY:not_a_target,INTERFACE_INCLUDE_DIRECTORIES>>
|
||||
)
|
||||
|
||||
set_property(TARGET testLibRequired APPEND PROPERTY
|
||||
|
|
Loading…
Reference in New Issue