1 find_path(LibPROJ_INCLUDE_DIR
2 NAMES proj_api.h proj.h
3 DOC
"libproj include directories")
4 mark_as_advanced(LibPROJ_INCLUDE_DIR)
6 find_library(LibPROJ_LIBRARY_RELEASE
8 DOC
"libproj release library")
9 mark_as_advanced(LibPROJ_LIBRARY_RELEASE)
11 find_library(LibPROJ_LIBRARY_DEBUG
13 DOC
"libproj debug library")
14 mark_as_advanced(LibPROJ_LIBRARY_DEBUG)
16 include(SelectLibraryConfigurations)
17 select_library_configurations(LibPROJ)
19 if (LibPROJ_INCLUDE_DIR)
20 if (EXISTS
"${LibPROJ_INCLUDE_DIR}/proj.h")
21 file(STRINGS
"${LibPROJ_INCLUDE_DIR}/proj.h" _libproj_version_lines REGEX
"#define[ \t]+PROJ_VERSION_(MAJOR|MINOR|PATCH)")
22 string(REGEX REPLACE
".*PROJ_VERSION_MAJOR *\([0-9]*\).*" "\\1" _libproj_version_major
"${_libproj_version_lines}")
23 string(REGEX REPLACE
".*PROJ_VERSION_MINOR *\([0-9]*\).*" "\\1" _libproj_version_minor
"${_libproj_version_lines}")
24 string(REGEX REPLACE
".*PROJ_VERSION_PATCH *\([0-9]*\).*" "\\1" _libproj_version_patch
"${_libproj_version_lines}")
26 file(STRINGS
"${LibPROJ_INCLUDE_DIR}/proj_api.h" _libproj_version_lines REGEX
"#define[ \t]+PJ_VERSION")
27 string(REGEX REPLACE
".*PJ_VERSION *\([0-9]*\).*" "\\1" _libproj_version
"${_libproj_version_lines}")
28 math(EXPR _libproj_version_major
"${_libproj_version} / 100")
29 math(EXPR _libproj_version_minor
"(${_libproj_version} % 100) / 10")
30 math(EXPR _libproj_version_patch
"${_libproj_version} % 10")
32 set(LibPROJ_VERSION "${_libproj_version_major}.${_libproj_version_minor}.${_libproj_version_patch}
") 33 set(LibPROJ_MAJOR_VERSION "${_libproj_version_major}
") 34 unset(_libproj_version_major) 35 unset(_libproj_version_minor) 36 unset(_libproj_version_patch) 37 unset(_libproj_version) 38 unset(_libproj_version_lines) 41 include(FindPackageHandleStandardArgs) 42 find_package_handle_standard_args(LibPROJ 43 REQUIRED_VARS LibPROJ_LIBRARY LibPROJ_INCLUDE_DIR 44 VERSION_VAR LibPROJ_VERSION) 47 set(LibPROJ_INCLUDE_DIRS "${LibPROJ_INCLUDE_DIR}
") 48 set(LibPROJ_LIBRARIES "${LibPROJ_LIBRARY}
") 50 if (NOT TARGET LibPROJ::LibPROJ) 51 add_library(LibPROJ::LibPROJ UNKNOWN IMPORTED) 52 set_target_properties(LibPROJ::LibPROJ PROPERTIES 53 INTERFACE_INCLUDE_DIRECTORIES "${LibPROJ_INCLUDE_DIR}
") 54 if (LibPROJ_LIBRARY_RELEASE) 55 set_property(TARGET LibPROJ::LibPROJ APPEND PROPERTY 56 IMPORTED_CONFIGURATIONS RELEASE) 57 set_target_properties(LibPROJ::LibPROJ PROPERTIES 58 IMPORTED_LOCATION_RELEASE "${LibPROJ_LIBRARY_RELEASE}
") 60 if (LibPROJ_LIBRARY_DEBUG) 61 set_property(TARGET LibPROJ::LibPROJ APPEND PROPERTY 62 IMPORTED_CONFIGURATIONS DEBUG) 63 set_target_properties(LibPROJ::LibPROJ PROPERTIES 64 IMPORTED_LOCATION_DEBUG "${LibPROJ_LIBRARY_DEBUG}
")