Browse Source

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

Brad King 11 years ago
parent
commit
ca5fe169aa

+ 4 - 4
Help/command/get_test_property.rst

@@ -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.

+ 1 - 1
Help/command/set_tests_properties.rst

@@ -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:
 

+ 4 - 1
Source/cmGetTargetPropertyCommand.cxx

@@ -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;

+ 1 - 0
Tests/RunCMake/CMakeLists.txt

@@ -102,6 +102,7 @@ add_RunCMake_test(cmake_minimum_required)
 add_RunCMake_test(file)
 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)

+ 3 - 0
Tests/RunCMake/get_property/CMakeLists.txt

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

+ 9 - 0
Tests/RunCMake/get_property/RunCMakeTest.cmake

@@ -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)

+ 3 - 0
Tests/RunCMake/get_property/cache_properties-stderr.txt

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

+ 15 - 0
Tests/RunCMake/get_property/cache_properties.cmake

@@ -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)

+ 6 - 0
Tests/RunCMake/get_property/directory_properties-stderr.txt

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

+ 15 - 0
Tests/RunCMake/get_property/directory_properties.cmake

@@ -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)

+ 6 - 0
Tests/RunCMake/get_property/global_properties-stderr.txt

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

+ 16 - 0
Tests/RunCMake/get_property/global_properties.cmake

@@ -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)

+ 3 - 0
Tests/RunCMake/get_property/install_properties-stderr.txt

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

+ 18 - 0
Tests/RunCMake/get_property/install_properties.cmake

@@ -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)

+ 6 - 0
Tests/RunCMake/get_property/source_properties-stderr.txt

@@ -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: --><--$

+ 15 - 0
Tests/RunCMake/get_property/source_properties.cmake

@@ -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)

+ 6 - 0
Tests/RunCMake/get_property/target_properties-stderr.txt

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

+ 16 - 0
Tests/RunCMake/get_property/target_properties.cmake

@@ -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)

+ 6 - 0
Tests/RunCMake/get_property/test_properties-stderr.txt

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

+ 17 - 0
Tests/RunCMake/get_property/test_properties.cmake

@@ -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)