# CMake script for informix sql driver
CMAKE_MINIMUM_REQUIRED(VERSION 3.5)

SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})

SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CXX_STANDARD_REQUIRED 11)
SET(CMAKE_CXX_VISIBILITY_PRESET hidden)
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
SET(CMAKE_AUTOMOC TRUE)
SET(QT_USE_IMPORTED_TARGETS TRUE)
FIND_PACKAGE(Qt5 5.9.0 COMPONENTS Core Sql Test REQUIRED)

FIND_PACKAGE(IClientSDK REQUIRED)

ADD_DEFINITIONS(-DQT_NO_CAST_FROM_ASCII)
ADD_DEFINITIONS(-DIT_DO_NOT_SIMULATE_BOOL)
INCLUDE_DIRECTORIES(${ICLIENT_SDK_INCLUDE_DIR})
SET(ifx_SRCS
  qsql_informix.cpp
  qsql_informix.h
  qsql_informix_plugin.cpp
  qsql_informix_utils.cpp
  qsql_informix_utils.h
)

ADD_LIBRARY(qsql_informix SHARED ${ifx_SRCS})
TARGET_LINK_LIBRARIES(qsql_informix
  Qt5::Core
  Qt5::Sql
  ${ICLIENT_SDK_LIBRARIES}
  ${ICLIENT_SDK_LIBRARIES_CPP}
  ${ICLIENT_SDK_ESQL_OBJECT_FILE}
)
TARGET_COMPILE_DEFINITIONS(qsql_informix PRIVATE MAKE_QSQL_INFORMIX_LIB)
INSTALL(TARGETS qsql_informix DESTINATION lib/sqldrivers)

SET(test_SRCS
  qsql_informix_test.cpp
)
ADD_EXECUTABLE(qsql_informix_test ${test_SRCS})
TARGET_LINK_LIBRARIES(qsql_informix_test
  qsql_informix
  Qt5::Test
  dl
)
ADD_TEST(NAME qsql_informix_test COMMAND $<TARGET_FILE:qsql_informix_test>)
