Do not report ALIASED_TARGET as always set (#15783)
The cmGetPropertyCommand::StoreResult expects NULL for unset properties. Make ALIASED_TARGET align with that expectation. Additional corrections to the unit tests are necessary because get_property removes variables for unset properties (in contrast to get_target_property which stores a -NOTFOUND value).
This commit is contained in:
parent
5642349129
commit
ea6475334a
|
@ -253,7 +253,7 @@ bool cmGetPropertyCommand::HandleTargetMode()
|
|||
if (this->Makefile->IsAlias(this->Name)) {
|
||||
return this->StoreResult(target->GetName().c_str());
|
||||
} else {
|
||||
return this->StoreResult((this->Variable + "-NOTFOUND").c_str());
|
||||
return this->StoreResult(NULL);
|
||||
}
|
||||
}
|
||||
return this->StoreResult(
|
||||
|
|
|
@ -66,6 +66,11 @@ endif()
|
|||
add_library(iface INTERFACE)
|
||||
add_library(Alias::Iface ALIAS iface)
|
||||
|
||||
get_property(_aliased_target_set TARGET foo PROPERTY ALIASED_TARGET SET)
|
||||
if(_aliased_target_set)
|
||||
message(SEND_ERROR "ALIASED_TARGET is set for target foo")
|
||||
endif()
|
||||
|
||||
get_target_property(_notAlias1 foo ALIASED_TARGET)
|
||||
if (NOT DEFINED _notAlias1)
|
||||
message(SEND_ERROR "_notAlias1 is not defined")
|
||||
|
@ -78,12 +83,6 @@ if (NOT _notAlias1 STREQUAL _notAlias1-NOTFOUND)
|
|||
endif()
|
||||
|
||||
get_property(_notAlias2 TARGET foo PROPERTY ALIASED_TARGET)
|
||||
if (NOT DEFINED _notAlias2)
|
||||
message(SEND_ERROR "_notAlias2 is not defined")
|
||||
endif()
|
||||
if (_notAlias2)
|
||||
message(SEND_ERROR "_notAlias2 is defined, but foo is not an ALIAS")
|
||||
endif()
|
||||
if (NOT _notAlias2 STREQUAL _notAlias2-NOTFOUND)
|
||||
message(SEND_ERROR "_notAlias2 not defined to a -NOTFOUND variant")
|
||||
message(SEND_ERROR "_notAlias2 evaluates to true, but foo is not an ALIAS")
|
||||
endif()
|
||||
|
|
Loading…
Reference in New Issue