From ea6475334aff57633ad7bb80c013c8953328a909 Mon Sep 17 00:00:00 2001 From: Gregor Jasny Date: Sat, 25 Jun 2016 22:51:51 +0200 Subject: 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). --- Source/cmGetPropertyCommand.cxx | 2 +- Tests/AliasTarget/CMakeLists.txt | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Source/cmGetPropertyCommand.cxx b/Source/cmGetPropertyCommand.cxx index 854fdb8..2307e08 100644 --- a/Source/cmGetPropertyCommand.cxx +++ b/Source/cmGetPropertyCommand.cxx @@ -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( diff --git a/Tests/AliasTarget/CMakeLists.txt b/Tests/AliasTarget/CMakeLists.txt index 47ccbdc..552c83c 100644 --- a/Tests/AliasTarget/CMakeLists.txt +++ b/Tests/AliasTarget/CMakeLists.txt @@ -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() -- cgit v0.12