Allow target commands to be invoked with no items (#14325).
Code such as target_include_directories(foo PRIVATE ${items}) should not work or break based on whether items is defined or not.
This commit is contained in:
parent
0cecc7b485
commit
c0b8682200
|
@ -19,7 +19,7 @@ bool cmTargetPropCommandBase
|
|||
::HandleArguments(std::vector<std::string> const& args, const char *prop,
|
||||
ArgumentFlags flags)
|
||||
{
|
||||
if(args.size() < 3)
|
||||
if(args.size() < 2)
|
||||
{
|
||||
this->SetError("called with incorrect number of arguments");
|
||||
return false;
|
||||
|
@ -53,7 +53,7 @@ bool cmTargetPropCommandBase
|
|||
|
||||
if ((flags & PROCESS_SYSTEM) && args[argIndex] == "SYSTEM")
|
||||
{
|
||||
if (args.size() < 4)
|
||||
if (args.size() < 3)
|
||||
{
|
||||
this->SetError("called with incorrect number of arguments");
|
||||
return false;
|
||||
|
@ -65,7 +65,7 @@ bool cmTargetPropCommandBase
|
|||
bool prepend = false;
|
||||
if ((flags & PROCESS_BEFORE) && args[argIndex] == "BEFORE")
|
||||
{
|
||||
if (args.size() < 4)
|
||||
if (args.size() < 3)
|
||||
{
|
||||
this->SetError("called with incorrect number of arguments");
|
||||
return false;
|
||||
|
|
|
@ -20,3 +20,8 @@ target_compile_definitions(consumer
|
|||
PRIVATE $<TARGET_PROPERTY:target_compile_definitions,INTERFACE_COMPILE_DEFINITIONS>
|
||||
-DDASH_D_DEFINE
|
||||
)
|
||||
|
||||
# Test no items
|
||||
target_compile_definitions(consumer
|
||||
PRIVATE
|
||||
)
|
||||
|
|
|
@ -33,3 +33,8 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
|||
"DO_GNU_TESTS"
|
||||
)
|
||||
endif()
|
||||
|
||||
# Test no items
|
||||
target_compile_options(consumer
|
||||
PRIVATE
|
||||
)
|
||||
|
|
|
@ -47,3 +47,17 @@ target_include_directories(consumer
|
|||
$<TARGET_PROPERTY:target_include_directories,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
relative_dir
|
||||
)
|
||||
|
||||
# Test no items
|
||||
target_include_directories(consumer
|
||||
PRIVATE
|
||||
)
|
||||
target_include_directories(consumer
|
||||
BEFORE PRIVATE
|
||||
)
|
||||
target_include_directories(consumer
|
||||
SYSTEM BEFORE PRIVATE
|
||||
)
|
||||
target_include_directories(consumer
|
||||
SYSTEM PRIVATE
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue