You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.0 KiB
CMake
76 lines
2.0 KiB
CMake
#[==[
|
|
Provides the following variables:
|
|
|
|
* `ODBC_INCLUDE_DIRS`: Include directories necessary to use ODBC.
|
|
* `ODBC_LIBRARIES`: Libraries necessary to use ODBC.
|
|
* A `ODBC::ODBC` imported target.
|
|
#]==]
|
|
|
|
# No .pc files are shipped with ODBC on Windows.
|
|
set(_ODBC_use_pkgconfig 0)
|
|
if (NOT WIN32)
|
|
find_package(PkgConfig)
|
|
if (PkgConfig_FOUND)
|
|
set(_ODBC_use_pkgconfig 1)
|
|
endif ()
|
|
endif ()
|
|
|
|
if (_ODBC_use_pkgconfig)
|
|
pkg_check_modules(_iodbc "libiodbc" QUIET IMPORTED_TARGET)
|
|
unset(_odbc_target)
|
|
if (NOT _iodbc_FOUND)
|
|
pkg_check_modules(_unixodbc "odbc" QUIET IMPORTED_TARGET)
|
|
if (_unixodbc_FOUND)
|
|
set(_odbc_target "_unixodbc")
|
|
endif ()
|
|
else ()
|
|
set(_odbc_target "_iodbc")
|
|
endif ()
|
|
|
|
set(ODBC_FOUND 0)
|
|
if (_odbc_target)
|
|
set(ODBC_FOUND 1)
|
|
set(ODBC_INCLUDE_DIRS ${${_odbc_target}_INCLUDE_DIRS})
|
|
set(ODBC_LIBRARIES ${${_odbc_target}_LINK_LIBRARIES})
|
|
if (NOT TARGET ODBC::ODBC)
|
|
add_library(ODBC::ODBC INTERFACE IMPORTED)
|
|
target_link_libraries(ODBC::ODBC
|
|
INTERFACE "PkgConfig::${_odbc_target}")
|
|
endif ()
|
|
endif ()
|
|
unset(_odbc_target)
|
|
else ()
|
|
find_path(ODBC_INCLUDE_DIR
|
|
NAMES sql.h
|
|
PATHS
|
|
"C:/Program Files/ODBC"
|
|
"C:/ODBC"
|
|
PATH_SUFFIXES include include/odbc
|
|
DOC "Location of sql.h")
|
|
mark_as_advanced(ODBC_INCLUDE_DIR)
|
|
find_library(ODBC_LIBRARY
|
|
NAMES odbc iodbc unixodbc odbc32
|
|
PATHS
|
|
"C:/Program Files/ODBC"
|
|
"C:/ODBC"
|
|
PATH_SUFFIXES lib lib/debug
|
|
DOC "Location of the ODBC library")
|
|
mark_as_advanced(ODBC_LIBRARY)
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(ODBC
|
|
REQUIRED_VARS ODBC_INCLUDE_DIR ODBC_LIBRARY)
|
|
|
|
if (ODBC_FOUND)
|
|
set(ODBC_INCLUDE_DIRS "${ODBC_INCLUDE_DIR}")
|
|
set(ODBC_LIBRARIES "${ODBC_LIBRARY}")
|
|
if (NOT TARGET ODBC::ODBC)
|
|
add_library(ODBC::ODBC UNKNOWN IMPORTED)
|
|
set_target_properties(ODBC::ODBC PROPERTIES
|
|
IMPORTED_LOCATION "${ODBC_LIBRARY}"
|
|
INTERFACE_INCLUDE_DIRECTORIES "${ODBC_INCLUDE_DIR}")
|
|
endif ()
|
|
endif ()
|
|
endif ()
|
|
unset(_ODBC_use_pkgconfig)
|