Browse Source

find_package: add test for setting Foo_FOUND to FALSE in a Config file

Alex
Alex Neundorf 13 years ago
parent
commit
56ae3f9412

+ 12 - 0
Tests/FindPackageTest/CMakeLists.txt

@@ -82,6 +82,7 @@ SET(PACKAGES
   RecursiveA RecursiveB RecursiveC
   ArchA ArchB ArchC ArchD
   EnvA EnvB
+  SetFoundTRUE SetFoundFALSE
   ${CMakeTestSystemPackage}
   )
 FOREACH(p ${PACKAGES})
@@ -117,6 +118,10 @@ FIND_PACKAGE(VersionedC 4.0 EXACT NAMES zot)
 FIND_PACKAGE(VersionedD 1.1 EXACT NAMES Baz)
 FIND_PACKAGE(VersionedE 1.2 EXACT NAMES Baz)
 
+# Test Config files which set Xyz_FOUND themselves:
+FIND_PACKAGE(SetFoundTRUE NO_MODULE)
+FIND_PACKAGE(SetFoundFALSE NO_MODULE)
+
 # Test wrong initial path when result is present.
 SET(WrongA_DIR "${VersionedD_DIR}")
 FIND_PACKAGE(WrongA 1.2 EXACT NAMES Baz)
@@ -201,6 +206,8 @@ SET(ArchC_EXPECTED "lib/arch/zot-3.1/zot-config.cmake")
 SET(ArchD_EXPECTED "lib/arch/cmake/zot-4.0/zot-config.cmake")
 SET(EnvA_EXPECTED "lib/zot-3.1/zot-config.cmake")
 SET(EnvB_MISSING "EnvB_DIR-NOTFOUND")
+SET(SetFoundTRUE_EXPECTED "cmake/SetFoundTRUEConfig.cmake")
+SET(SetFoundFALSE_MISSING "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
 SET(CMakeTestSystemPackage_EXPECTED "SystemPackage/CMakeTestSystemPackageConfig.cmake")
 
 # Check the results.
@@ -212,6 +219,11 @@ FOREACH(p ${PACKAGES})
         "Package ${p} should have been [${${p}_MISSING}] but "
         "was [${${p}_DIR}]")
     ENDIF()
+    IF(${p}_FOUND)
+      MESSAGE(SEND_ERROR
+        "Package ${p} should not have been found, but ${p}_FOUND is set to "
+        "\"${${p}_FOUND}\"")
+    ENDIF()
   ELSEIF(${p}_FOUND)
     # Convert to relative path for comparison to expected location.
     FILE(RELATIVE_PATH REL_${p}_CONFIG "${CMAKE_CURRENT_SOURCE_DIR}"

+ 1 - 0
Tests/FindPackageTest/cmake/SetFoundFALSEConfig.cmake

@@ -0,0 +1 @@
+set(SetFoundFALSE_FOUND FALSE)

+ 1 - 0
Tests/FindPackageTest/cmake/SetFoundTRUEConfig.cmake

@@ -0,0 +1 @@
+set(SetFoundTRUE_FOUND TRUE)