CMAKE_MINIMUM_REQUIRED(VERSION 2.8...3.20) PROJECT(TDengine) IF (TD_LINUX_64) find_program(HAVE_ODBCINST NAMES odbcinst) IF (HAVE_ODBCINST) include(CheckSymbolExists) # shall we revert CMAKE_REQUIRED_LIBRARIES and how? set(CMAKE_REQUIRED_LIBRARIES odbc) check_symbol_exists(SQLExecute "sql.h" HAVE_ODBC_DEV) if(NOT (HAVE_ODBC_DEV)) unset(HAVE_ODBC_DEV CACHE) message(WARNING "unixodbc-dev is not installed yet, you may install it under ubuntu by typing: sudo apt install unixodbc-dev") else () message(STATUS "unixodbc/unixodbc-dev are installed, and odbc connector will be built") find_package(FLEX) if(NOT FLEX_FOUND) message(WARNING "you need to install flex first") else () if (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0.0) message(WARNING "gcc 4.8.0 will complain too much about flex-generated code, we just bypass building ODBC driver in such case") else () SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ") ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(tools) ADD_SUBDIRECTORY(examples) endif () endif() endif() ELSE () message(WARNING "unixodbc is not installed yet, you may install it under ubuntu by typing: sudo apt install unixodbc") ENDIF () ENDIF () IF (TD_DARWIN) find_program(HAVE_ODBCINST NAMES odbcinst) IF (HAVE_ODBCINST) include(CheckSymbolExists) # shall we revert CMAKE_REQUIRED_LIBRARIES and how? set(CMAKE_REQUIRED_LIBRARIES odbc) set(CMAKE_REQUIRED_INCLUDES /usr/local/include) set(CMAKE_REQUIRED_LINK_OPTIONS -L/usr/local/lib) check_symbol_exists(SQLExecute "sql.h" HAVE_ODBC_DEV) if(NOT (HAVE_ODBC_DEV)) unset(HAVE_ODBC_DEV CACHE) message(WARNING "unixodbc-dev is not installed yet, you may install it with homebrew by typing: brew install unixodbc") else () message(STATUS "unixodbc/unixodbc-dev are installed, and odbc connector will be built") find_package(FLEX) if(NOT FLEX_FOUND) message(WARNING "you need to install flex first") else () if (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0.0) message(WARNING "gcc 4.8.0 will complain too much about flex-generated code, we just bypass building ODBC driver in such case") else () SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wconversion") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Wconversion") ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(tools) ADD_SUBDIRECTORY(examples) endif () endif() endif() ELSE () message(WARNING "unixodbc is not installed yet, you may install it under ubuntu by typing: brew install unixodbc") ENDIF () ENDIF () IF (TD_WINDOWS_64) find_package(ODBC) if (NOT ODBC_FOUND) message(WARNING "you need to install ODBC first") else () message(STATUS "ODBC_INCLUDE_DIRS: ${ODBC_INCLUDE_DIRS}") message(STATUS "ODBC_LIBRARIES: ${ODBC_LIBRARIES}") message(STATUS "ODBC_CONFIG: ${ODBC_CONFIG}") endif () find_package(FLEX) if(NOT FLEX_FOUND) message(WARNING "you need to install flex first\n" "you may go to: https://github.com/lexxmark/winflexbison\n" "or download from: https://github.com/lexxmark/winflexbison/releases") else () ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(tools) ADD_SUBDIRECTORY(examples) endif() ENDIF ()