Merge topic 'fix-empty-target-property-queries'

c6d03a10 tests: add tests for querying properties
76ff92e0 set_tests_properties: fix documentation
28214862 get_test_property: clarify the documentation
34a99094 get_target_property: discern empty from undefined properties (#15333)
This commit is contained in:
Brad King 2015-01-11 12:00:20 -05:00 committed by CMake Topic Stage
commit cb5fc7b993
20 changed files with 170 additions and 6 deletions

View File

@ -7,9 +7,9 @@ Get a property of the test.
get_test_property(test property VAR)
Get a property from the Test. The value of the property is stored in
the variable VAR. If the property is not found, VAR will be set to
"NOTFOUND". For a list of standard properties you can type cmake
--help-property-list
Get a property from the test. The value of the property is stored in
the variable VAR. If the test or property is not found, VAR will be
set to "NOTFOUND". For a list of standard properties you can type cmake
--help-property-list.
See also the more general get_property() command.

View File

@ -7,7 +7,7 @@ Set a property of the tests.
set_tests_properties(test1 [test2...] PROPERTIES prop1 value1 prop2 value2)
Set a property for the tests. If the property is not found, CMake
Set a property for the tests. If the test is not found, CMake
will report an error. Generator expressions will be expanded the same
as supported by the test's add_test call. The properties include:

View File

@ -23,6 +23,7 @@ bool cmGetTargetPropertyCommand
std::string var = args[0];
const std::string& targetName = args[1];
std::string prop;
bool prop_exists = false;
if(args[2] == "ALIASED_TARGET")
{
@ -32,6 +33,7 @@ bool cmGetTargetPropertyCommand
this->Makefile->FindTargetToUse(targetName))
{
prop = target->GetName();
prop_exists = true;
}
}
}
@ -42,6 +44,7 @@ bool cmGetTargetPropertyCommand
if(prop_cstr)
{
prop = prop_cstr;
prop_exists = true;
}
}
else
@ -74,7 +77,7 @@ bool cmGetTargetPropertyCommand
}
}
}
if (!prop.empty())
if (prop_exists)
{
this->Makefile->AddDefinition(var, prop.c_str());
return true;

View File

@ -121,6 +121,7 @@ add_RunCMake_test(file)
add_RunCMake_test(find_library)
add_RunCMake_test(find_package)
add_RunCMake_test(get_filename_component)
add_RunCMake_test(get_property)
add_RunCMake_test(if)
add_RunCMake_test(include)
add_RunCMake_test(include_directories)

View File

@ -0,0 +1,3 @@
cmake_minimum_required(VERSION 2.8.4)
project(${RunCMake_TEST} NONE)
include(${RunCMake_TEST}.cmake)

View File

@ -0,0 +1,9 @@
include(RunCMake)
run_cmake(cache_properties)
run_cmake(directory_properties)
run_cmake(global_properties)
run_cmake(install_properties)
run_cmake(source_properties)
run_cmake(target_properties)
run_cmake(test_properties)

View File

@ -0,0 +1,3 @@
^get_property: --><--
get_property: -->TRUE<--
get_property: --><--$

View File

@ -0,0 +1,15 @@
function (check_cache_property var prop)
get_property(gp_val
CACHE "${var}"
PROPERTY "${prop}")
message("get_property: -->${gp_val}<--")
endfunction ()
set(var val CACHE STRING "doc")
set_property(CACHE var PROPERTY VALUE "") # empty
set_property(CACHE var PROPERTY ADVANCED TRUE)
check_cache_property(var VALUE)
check_cache_property(var ADVANCED)
check_cache_property(var noexist)

View File

@ -0,0 +1,6 @@
^get_directory_property: --><--
get_property: --><--
get_directory_property: -->value<--
get_property: -->value<--
get_directory_property: --><--
get_property: --><--$

View File

@ -0,0 +1,15 @@
function (check_directory_property dir prop)
get_directory_property(gdp_val DIRECTORY "${dir}" "${prop}")
get_property(gp_val
DIRECTORY "${dir}"
PROPERTY "${prop}")
message("get_directory_property: -->${gdp_val}<--")
message("get_property: -->${gp_val}<--")
endfunction ()
set_directory_properties(PROPERTIES empty "" custom value)
check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" empty)
check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" custom)
check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" noexist)

View File

@ -0,0 +1,6 @@
^get_cmake_property: --><--
get_property: --><--
get_cmake_property: -->value<--
get_property: -->value<--
get_cmake_property: -->NOTFOUND<--
get_property: --><--$

View File

@ -0,0 +1,16 @@
function (check_global_property prop)
get_cmake_property(gcp_val "${prop}")
get_property(gp_val
GLOBAL
PROPERTY "${prop}")
message("get_cmake_property: -->${gcp_val}<--")
message("get_property: -->${gp_val}<--")
endfunction ()
set_property(GLOBAL PROPERTY empty "")
set_property(GLOBAL PROPERTY custom value)
check_global_property(empty)
check_global_property(custom)
check_global_property(noexist)

View File

@ -0,0 +1,3 @@
^get_property: --><--
get_property: -->value<--
get_property: --><--$

View File

@ -0,0 +1,18 @@
function (check_install_property file prop)
get_property(gp_val
INSTALL "${file}"
PROPERTY "${prop}")
message("get_property: -->${gp_val}<--")
endfunction ()
install(
FILES "${CMAKE_CURRENT_LIST_FILE}"
DESTINATION "${CMAKE_CURRENT_LIST_DIR}"
RENAME "installed-file-dest")
set_property(INSTALL "${CMAKE_CURRENT_LIST_FILE}" PROPERTY empty "")
set_property(INSTALL "${CMAKE_CURRENT_LIST_FILE}" PROPERTY custom value)
check_install_property("${CMAKE_CURRENT_LIST_FILE}" empty)
check_install_property("${CMAKE_CURRENT_LIST_FILE}" custom)
check_install_property("${CMAKE_CURRENT_LIST_FILE}" noexist)

View File

@ -0,0 +1,6 @@
^get_source_file_property: --><--
get_property: --><--
get_source_file_property: -->value<--
get_property: -->value<--
get_source_file_property: -->NOTFOUND<--
get_property: --><--$

View File

@ -0,0 +1,15 @@
function (check_source_file_property file prop)
get_source_file_property(gsfp_val "${file}" "${prop}")
get_property(gp_val
SOURCE "${file}"
PROPERTY "${prop}")
message("get_source_file_property: -->${gsfp_val}<--")
message("get_property: -->${gp_val}<--")
endfunction ()
set_source_files_properties(file.c PROPERTIES empty "" custom value)
check_source_file_property(file.c empty)
check_source_file_property(file.c custom)
check_source_file_property(file.c noexist)

View File

@ -0,0 +1,6 @@
^get_target_property: --><--
get_property: --><--
get_target_property: -->value<--
get_property: -->value<--
get_target_property: -->gtp_val-NOTFOUND<--
get_property: --><--$

View File

@ -0,0 +1,16 @@
function (check_target_property target prop)
get_target_property(gtp_val "${target}" "${prop}")
get_property(gp_val
TARGET "${target}"
PROPERTY "${prop}")
message("get_target_property: -->${gtp_val}<--")
message("get_property: -->${gp_val}<--")
endfunction ()
add_custom_target(tgt)
set_target_properties(tgt PROPERTIES empty "" custom value)
check_target_property(tgt empty)
check_target_property(tgt custom)
check_target_property(tgt noexist)

View File

@ -0,0 +1,6 @@
^get_test_property: --><--
get_property: --><--
get_test_property: -->value<--
get_property: -->value<--
get_test_property: -->NOTFOUND<--
get_property: --><--$

View File

@ -0,0 +1,17 @@
function (check_test_property test prop)
get_test_property("${test}" "${prop}" gtp_val)
get_property(gp_val
TEST "${test}"
PROPERTY "${prop}")
message("get_test_property: -->${gtp_val}<--")
message("get_property: -->${gp_val}<--")
endfunction ()
include(CTest)
add_test(NAME test COMMAND "${CMAKE_COMMAND}" --help)
set_tests_properties(test PROPERTIES empty "" custom value)
check_test_property(test empty)
check_test_property(test custom)
check_test_property(test noexist)