Commit ea647533 authored by Gregor Jasny's avatar Gregor Jasny

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).
parent 56423491
......@@ -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()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment