FindODBC.cmake
Go to the documentation of this file.
1 #[==[
2 Provides the following variables:
3 
4  * `ODBC_INCLUDE_DIRS`: Include directories necessary to use ODBC.
5  * `ODBC_LIBRARIES`: Libraries necessary to use ODBC.
6  * A `ODBC::ODBC` imported target.
7 #]==]
8 
9 # No .pc files are shipped with ODBC on Windows.
10 set(_ODBC_use_pkgconfig 0)
11 if (NOT WIN32)
12  find_package(PkgConfig)
13  if (PkgConfig_FOUND)
14  set(_ODBC_use_pkgconfig 1)
15  endif ()
16 endif ()
17 
18 if (_ODBC_use_pkgconfig)
19  pkg_check_modules(_iodbc "libiodbc" QUIET IMPORTED_TARGET)
20  unset(_odbc_target)
21  if (NOT _iodbc_FOUND)
22  pkg_check_modules(_unixodbc "odbc" QUIET IMPORTED_TARGET)
23  if (_unixodbc_FOUND)
24  set(_odbc_target "_unixodbc")
25  endif ()
26  else ()
27  set(_odbc_target "_iodbc")
28  endif ()
29 
30  set(ODBC_FOUND 0)
31  if (_odbc_target)
32  set(ODBC_FOUND 1)
33  set(ODBC_INCLUDE_DIRS ${${_odbc_target}_INCLUDE_DIRS})
34  set(ODBC_LIBRARIES ${${_odbc_target}_LINK_LIBRARIES})
35  if (NOT TARGET ODBC::ODBC)
36  add_library(ODBC::ODBC INTERFACE IMPORTED)
37  target_link_libraries(ODBC::ODBC
38  INTERFACE "PkgConfig::${_odbc_target}")
39  endif ()
40  endif ()
41  unset(_odbc_target)
42 else ()
43  find_path(ODBC_INCLUDE_DIR
44  NAMES sql.h
45  PATHS
46  "C:/Program Files/ODBC"
47  "C:/ODBC"
48  PATH_SUFFIXES include include/odbc
49  DOC "Location of sql.h")
50  mark_as_advanced(ODBC_INCLUDE_DIR)
51  find_library(ODBC_LIBRARY
52  NAMES odbc iodbc unixodbc odbc32
53  PATHS
54  "C:/Program Files/ODBC"
55  "C:/ODBC"
56  PATH_SUFFIXES lib lib/debug
57  DOC "Location of the ODBC library")
58  mark_as_advanced(ODBC_LIBRARY)
59 
60  include(FindPackageHandleStandardArgs)
61  find_package_handle_standard_args(ODBC
62  REQUIRED_VARS ODBC_INCLUDE_DIR ODBC_LIBRARY)
63 
64  if (ODBC_FOUND)
65  set(ODBC_INCLUDE_DIRS "${ODBC_INCLUDE_DIR}")
66  set(ODBC_LIBRARIES "${ODBC_LIBRARY}")
67  if (NOT TARGET ODBC::ODBC)
68  add_library(ODBC::ODBC UNKNOWN IMPORTED)
69  set_target_properties(ODBC::ODBC PROPERTIES
70  IMPORTED_LOCATION "${ODBC_LIBRARY}"
71  INTERFACE_INCLUDE_DIRECTORIES "${ODBC_INCLUDE_DIR}")
72  endif ()
73  endif ()
74 endif ()
75 unset(_ODBC_use_pkgconfig)
boost::graph_traits< vtkGraph *>::vertex_descriptor target(boost::graph_traits< vtkGraph *>::edge_descriptor e, vtkGraph *)