Initial commit.
[CMakeLuaTailorHgBridge.git] / CMakeLua / Tests / FindPackageTest / CMakeLists.txt
blob2925db0a9c017d67a6f00417d6a7f549635f0cf6
1 PROJECT(FindPackageTest)
3 # Look for a package that has a find module and may be found.
4 FIND_PACKAGE(OpenGL QUIET)
6 # Look for a package that has no find module and will not be found.
7 FIND_PACKAGE(NotAPackage QUIET)
9 # Look for a package that has an advanced find module.
10 FIND_PACKAGE(VTK QUIET)
12 ADD_EXECUTABLE(FindPackageTest FindPackageTest.cxx)
14 # test behaviour of cmFindBase wrt. the CMAKE_PREFIX_PATH variable
15 # foo.h should be found in ${CMAKE_CURRENT_SOURCE_DIR}/include:
17 SET(CMAKE_PREFIX_PATH /blub /blah "${CMAKE_CURRENT_SOURCE_DIR}")
18 FIND_PATH(FOO_DIR foo.h)
20 IF(NOT FOO_DIR)
21   MESSAGE(FATAL_ERROR "Did not find foo.h which is in ${CMAKE_CURRENT_SOURCE_DIR}/include
22   CMAKE_PREFIX_PATH = ${CMAKE_PREFIX_PATH}")
23 ENDIF(NOT FOO_DIR)
25 LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
26 FIND_PACKAGE(VersionTestA 1)
27 FIND_PACKAGE(VersionTestB 1.2)
28 FIND_PACKAGE(VersionTestC 1.2.3)
30 #-----------------------------------------------------------------------------
32 #SET(CMAKE_FIND_DEBUG_MODE 1)
34 # For purposes of the test wipe out previous find results.
35 SET(PACKAGES
36   foo Foo Bar TFramework Tframework TApp Tapp Special
37   VersionedA VersionedB
38   )
39 FOREACH(p ${PACKAGES})
40   SET(${p}_DIR "" CACHE FILEPATH "Wipe out find results for testing." FORCE)
41 ENDFOREACH(p)
43 # Enable framework and bundle searching.  Make sure bundles are found
44 # before unix-syle packages.
45 SET(CMAKE_FIND_FRAMEWORK LAST)
46 SET(CMAKE_FIND_APPBUNDLE FIRST)
48 # Look for packages with new-style signatures.
49 FIND_PACKAGE(foo NO_MODULE)
50 FIND_PACKAGE(Foo CONFIGS FooConfig.cmake)
51 FIND_PACKAGE(Bar)
52 FIND_PACKAGE(TFramework CONFIGS TFrameworkConfig.cmake)
53 FIND_PACKAGE(Tframework)
54 FIND_PACKAGE(TApp)
55 FIND_PACKAGE(Tapp CONFIGS tapp-config.cmake)
56 FIND_PACKAGE(Special NAMES Suffix SuffixTest PATH_SUFFIXES test)
57 FIND_PACKAGE(VersionedA 2 NAMES zot)
58 FIND_PACKAGE(VersionedB 3.1 EXACT NAMES zot)
60 # Expected locations at which packages should be found.
61 SET(foo_EXPECTED "lib/foo-1.2/foo-config.cmake")
62 SET(Foo_EXPECTED "lib/foo-1.2/CMake/FooConfig.cmake")
63 SET(Bar_EXPECTED "lib/Bar/BarConfig.cmake")
64 SET(Special_EXPECTED "lib/suffix/test/SuffixTestConfig.cmake")
65 SET(TFramework_EXPECTED
66   "TFramework.framework/Versions/A/Resources/CMake/TFrameworkConfig.cmake")
67 SET(Tframework_EXPECTED
68   "TFramework.framework/Versions/A/Resources/tframework-config.cmake")
69 SET(TApp_EXPECTED
70   "TApp.app/Contents/Resources/TAppConfig.cmake")
71 SET(Tapp_EXPECTED
72   "TApp.app/Contents/Resources/cmake/tapp-config.cmake")
73 SET(VersionedA_EXPECTED "lib/zot-2.0/zot-config.cmake")
74 SET(VersionedB_EXPECTED "lib/zot-3.1/zot-config.cmake")
76 # Check the results.
77 FOREACH(p ${PACKAGES})
78   IF(${p}_FOUND)
79     # Convert to relative path for comparison to expected location.
80     FILE(RELATIVE_PATH REL_${p}_CONFIG "${CMAKE_CURRENT_SOURCE_DIR}"
81       "${${p}_CONFIG}")
83     # Debugging output.
84     IF(CMAKE_FIND_DEBUG_MODE)
85       MESSAGE("Package ${p} found [${REL_${p}_CONFIG}]")
86     ENDIF(CMAKE_FIND_DEBUG_MODE)
88     # Check and report failure.
89     IF(NOT "${REL_${p}_CONFIG}" STREQUAL "${${p}_EXPECTED}")
90       MESSAGE(SEND_ERROR
91         "Package ${p} should have been [${${p}_EXPECTED}] but "
92         "was [${REL_${p}_CONFIG}]")
93     ENDIF(NOT "${REL_${p}_CONFIG}" STREQUAL "${${p}_EXPECTED}")
94   ELSE(${p}_FOUND)
95     MESSAGE(SEND_ERROR "Package ${p} not found!")
96   ENDIF(${p}_FOUND)
97 ENDFOREACH(p)
99 # Check that version information was extracted.
100 IF(NOT "${VersionedA_VERSION}" STREQUAL "2.0")
101   MESSAGE(SEND_ERROR
102     "Package VersionedA is version [${VersionedA_VERSION}], not [2.0]")
103 ENDIF(NOT "${VersionedA_VERSION}" STREQUAL "2.0")
104 IF(NOT "${VersionedA_VERSION_MAJOR}" STREQUAL "2")
105   MESSAGE(SEND_ERROR
106     "Package VersionedA is major version [${VersionedA_VERSION_MAJOR}], not [2]")
107 ENDIF(NOT "${VersionedA_VERSION_MAJOR}" STREQUAL "2")
108 IF(NOT "${VersionedA_VERSION_MINOR}" STREQUAL "0")
109   MESSAGE(SEND_ERROR
110     "Package VersionedA is minor version [${VersionedA_VERSION_MINOR}], not [0]")
111 ENDIF(NOT "${VersionedA_VERSION_MINOR}" STREQUAL "0")
113 IF(NOT "${VersionedB_VERSION}" STREQUAL "3.1")
114   MESSAGE(SEND_ERROR
115     "Package VersionedB is version [${VersionedB_VERSION}], not [3.1]")
116 ENDIF(NOT "${VersionedB_VERSION}" STREQUAL "3.1")
117 IF(NOT "${VersionedB_VERSION_MAJOR}" STREQUAL "3")
118   MESSAGE(SEND_ERROR
119     "Package VersionedB is major version [${VersionedB_VERSION_MAJOR}], not [3]")
120 ENDIF(NOT "${VersionedB_VERSION_MAJOR}" STREQUAL "3")
121 IF(NOT "${VersionedB_VERSION_MINOR}" STREQUAL "1")
122   MESSAGE(SEND_ERROR
123     "Package VersionedB is minor version [${VersionedB_VERSION_MINOR}], not [1]")
124 ENDIF(NOT "${VersionedB_VERSION_MINOR}" STREQUAL "1")
126 IF(NOT "${Special_VERSION}" STREQUAL "1.2")
127   MESSAGE(SEND_ERROR
128     "Package Special is version [${Special_VERSION}], not [1.2]")
129 ENDIF(NOT "${Special_VERSION}" STREQUAL "1.2")
130 IF(NOT "${Special_VERSION_MAJOR}" STREQUAL "1")
131   MESSAGE(SEND_ERROR
132     "Package Special is major version [${Special_VERSION_MAJOR}], not [1]")
133 ENDIF(NOT "${Special_VERSION_MAJOR}" STREQUAL "1")
134 IF(NOT "${Special_VERSION_MINOR}" STREQUAL "2")
135   MESSAGE(SEND_ERROR
136     "Package Special is minor version [${Special_VERSION_MINOR}], not [2]")
137 ENDIF(NOT "${Special_VERSION_MINOR}" STREQUAL "2")