# Find opencad # ~~~~~~~~~ # Copyright (c) 2016, Dmitry Baryshnikov # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # # CMake module to search for opencad library # # If it's found it sets OPENCAD_FOUND to TRUE # and following variables are set: # OPENCAD_INCLUDE_DIR # OPENCAD_LIBRARY # FIND_PATH and FIND_LIBRARY normally search standard locations # before the specified paths. To search non-standard paths first, # FIND_* is invoked first with specified paths and NO_DEFAULT_PATH # and then again with no specified paths to search the default # locations. When an earlier FIND_* succeeds, subsequent FIND_*s # searching for the same item do nothing. # try to use framework on mac # want clean framework path, not unix compatibility path # Try to use OSGeo4W installation IF(WIN32) SET(OPENCAD_OSGEO4W_HOME "C:/OSGeo4W") IF($ENV{OSGEO4W_HOME}) SET(OPENCAD_OSGEO4W_HOME "$ENV{OSGEO4W_HOME}") ENDIF() ENDIF(WIN32) FIND_PATH(OPENCAD_INCLUDE_DIR opencad.h PATHS ${OPENCAD_OSGEO4W_HOME}/include PATH_SUFFIXES opencad DOC "Path to OPENCAD library include directory") SET(OPENCAD_NAMES ${OPENCAD_NAMES} opencad opencad_i) FIND_LIBRARY(OPENCAD_LIBRARY NAMES ${OPENCAD_NAMES} NAMES_PER_DIR PATHS ${OPENCAD_OSGEO4W_HOME}/lib DOC "Path to OPENCAD library file") if(OPENCAD_INCLUDE_DIR) set(OPENCAD_VERSION_MAJOR 0) set(OPENCAD_VERSION_MINOR 0) set(OPENCAD_VERSION_PATCH 0) set(OPENCAD_VERSION_NAME "EARLY RELEASE") if(EXISTS "${OPENCAD_INCLUDE_DIR}/opencad.h") file(READ "${OPENCAD_INCLUDE_DIR}/opencad.h" OPENCAD_API_H_CONTENTS) string(REGEX MATCH "OCAD_VERSION_MAJOR[ \t]+([0-9]+)" OPENCAD_VERSION_MAJOR ${OPENCAD_API_H_CONTENTS}) string (REGEX MATCH "([0-9]+)" OPENCAD_VERSION_MAJOR ${OPENCAD_VERSION_MAJOR}) string(REGEX MATCH "OCAD_VERSION_MINOR[ \t]+([0-9]+)" OPENCAD_VERSION_MINOR ${OPENCAD_API_H_CONTENTS}) string (REGEX MATCH "([0-9]+)" OPENCAD_VERSION_MINOR ${OPENCAD_VERSION_MINOR}) string(REGEX MATCH "OCAD_VERSION_REV[ \t]+([0-9]+)" OPENCAD_VERSION_PATCH ${OPENCAD_API_H_CONTENTS}) string (REGEX MATCH "([0-9]+)" OPENCAD_VERSION_PATCH ${OPENCAD_VERSION_PATCH}) unset(OPENCAD_API_H_CONTENTS) endif() set(OPENCAD_VERSION_STRING "${OPENCAD_VERSION_MAJOR}.${OPENCAD_VERSION_MINOR}.${OPENCAD_VERSION_PATCH}") endif () # Handle the QUIETLY and REQUIRED arguments and set SPATIALINDEX_FOUND to TRUE # if all listed variables are TRUE include(FindPackageHandleStandardArgs) find_package_handle_standard_args(OpenCAD FOUND_VAR OPENCAD_FOUND REQUIRED_VARS OPENCAD_LIBRARY OPENCAD_INCLUDE_DIR VERSION_VAR OPENCAD_VERSION_STRING) IF(OPENCAD_FOUND) set(OPENCAD_LIBRARIES ${OPENCAD_LIBRARY}) set(OPENCAD_INCLUDE_DIRS ${OPENCAD_INCLUDE_DIR}) if(NOT TARGET OpenCAD::opencad) add_library(OpenCAD::opencad UNKNOWN IMPORTED) set_target_properties(OpenCAD::opencad PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${OPENCAD_INCLUDE_DIR}" IMPORTED_LINK_INTERFACE_LANGUAGES C IMPORTED_LOCATION "${OPENCAD_LIBRARY}") endif() ENDIF() # Hide internal variables mark_as_advanced( OPENCAD_INCLUDE_DIR OPENCAD_LIBRARY) #======================