Merge branch 'fix-empty-target-property-queries' into release

This commit is contained in:
Brad King 2015-01-11 11:50:14 -05:00
commit ca5fe169aa
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_test_property(test property VAR)
Get a property from the Test. The value of the property is stored in 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 the variable VAR. If the test or property is not found, VAR will be
"NOTFOUND". For a list of standard properties you can type cmake set to "NOTFOUND". For a list of standard properties you can type cmake
--help-property-list --help-property-list.
See also the more general get_property() command. 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_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 will report an error. Generator expressions will be expanded the same
as supported by the test's add_test call. The properties include: 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]; std::string var = args[0];
const std::string& targetName = args[1]; const std::string& targetName = args[1];
std::string prop; std::string prop;
bool prop_exists = false;
if(args[2] == "ALIASED_TARGET") if(args[2] == "ALIASED_TARGET")
{ {
@ -32,6 +33,7 @@ bool cmGetTargetPropertyCommand
this->Makefile->FindTargetToUse(targetName)) this->Makefile->FindTargetToUse(targetName))
{ {
prop = target->GetName(); prop = target->GetName();
prop_exists = true;
} }
} }
} }
@ -42,6 +44,7 @@ bool cmGetTargetPropertyCommand
if(prop_cstr) if(prop_cstr)
{ {
prop = prop_cstr; prop = prop_cstr;
prop_exists = true;
} }
} }
else else
@ -74,7 +77,7 @@ bool cmGetTargetPropertyCommand
} }
} }
} }
if (!prop.empty()) if (prop_exists)
{ {
this->Makefile->AddDefinition(var, prop.c_str()); this->Makefile->AddDefinition(var, prop.c_str());
return true; return true;

View File

@ -102,6 +102,7 @@ add_RunCMake_test(cmake_minimum_required)
add_RunCMake_test(file) add_RunCMake_test(file)
add_RunCMake_test(find_package) add_RunCMake_test(find_package)
add_RunCMake_test(get_filename_component) add_RunCMake_test(get_filename_component)
add_RunCMake_test(get_property)
add_RunCMake_test(if) add_RunCMake_test(if)
add_RunCMake_test(include) add_RunCMake_test(include)
add_RunCMake_test(include_directories) 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)