1 cmake_minimum_required(VERSION 3.0)
2 project(libodb-pgsql VERSION 2.4.0 LANGUAGES CXX)
3 find_package(odb 2.4.0 REQUIRED COMPONENTS libodb)
4 find_package(PostgreSQL REQUIRED)
5 configure_file(config.unix.h.in
6 ${CMAKE_CURRENT_SOURCE_DIR}/odb/pgsql/details/config.h COPYONLY)
8 set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)")
9 file(GLOB_RECURSE libodb_src LIST_DIRECTORIES False
10 RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
12 list(FILTER libodb_src EXCLUDE REGEX /posix/.*)
13 add_library(libodb-pgsql ${libodb_src})
14 target_include_directories(libodb-pgsql
16 $<INSTALL_INTERFACE:include>
17 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
21 target_link_libraries(libodb-pgsql PRIVATE odb::libodb ${PostgreSQL_LIBRARY})
23 target_compile_definitions(libodb-pgsql PRIVATE
24 -DLIBODB_PGSQL_DYNAMIC_LIB)
26 target_compile_definitions(libodb-pgsql PRIVATE
27 -DLIBODB_PGSQL_STATIC_LIB)
29 install(TARGETS libodb-pgsql EXPORT odb_pgsqlConfig
31 ARCHIVE DESTINATION lib
32 LIBRARY DESTINATION lib
33 RUNTIME DESTINATION bin
35 if(LIBODB_INSTALL_HEADERS)
36 install(DIRECTORY odb DESTINATION include/
45 install(EXPORT odb_pgsqlConfig NAMESPACE odb:: COMPONENT pgsql DESTINATION share/odb)
46 export(TARGETS libodb-pgsql NAMESPACE odb:: FILE odb_pgsqlConfig.cmake)