set(PROJ_PREFIX "" CACHE PATH "The path to the prefix of an Proj installation") find_path(PROJ_INCLUDE_DIR NAMES proj.h proj_api.h PATHS ${PROJ_PREFIX}/include /opt/local/include /usr/include /usr/local/include ) find_library(PROJ_LIBRARIES NAMES proj PATHS ${PROJ_PREFIX}/lib /opt/local/lib /usr/lib /usr/local/lib ) if(PROJ_INCLUDE_DIR AND PROJ_LIBRARIES AND NOT TARGET PROJ) get_filename_component(PROJ_LIBRARY_DIR ${PROJ_LIBRARIES} PATH) set(PROJ_FOUND TRUE) add_library(Proj::Proj INTERFACE IMPORTED) set_target_properties(Proj::Proj PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${PROJ_INCLUDE_DIR}" INTERFACE_LINK_LIBRARIES "${PROJ_LIBRARIES}" ) endif() if(PROJ_FOUND) if(NOT PROJ_FIND_QUIETLY) MESSAGE(STATUS "Found Proj: ${PROJ_LIBRARIES}") endif() set(HAVE_PROJ 1) if(EXISTS ${PROJ_INCLUDE_DIR}/proj.h) file(READ ${PROJ_INCLUDE_DIR}/proj.h proj_version) string(REGEX REPLACE "^.*PROJ_VERSION_MAJOR +([0-9]+).*$" "\\1" PROJ_VERSION_MAJOR "${proj_version}") elseif(EXISTS ${PROJ_INCLUDE_DIR}/proj_api.h) file(READ ${PROJ_INCLUDE_DIR}/proj_api.h proj_version) string(REGEX REPLACE "^.*PJ_VERSION ([0-9]+).*$" "\\1" PJ_VERSION "${proj_version}") string(REGEX REPLACE "([0-9])([0-9])([0-9])" "\\1" PROJ_VERSION_MAJOR "${PJ_VERSION}") endif() set(PROJ_VERSION_MAJOR "${PROJ_VERSION_MAJOR}" CACHE INTERNAL "") elseif(PROJ_FOUND) if(PROJ_FIND_REQUIRED) message(FATAL_ERROR "Could not find Proj") endif() endif()