diff --git a/ports/libodb-pgsql/CMakeLists.txt b/ports/libodb-pgsql/CMakeLists.txt new file mode 100644 index 0000000000..cb510e8058 --- /dev/null +++ b/ports/libodb-pgsql/CMakeLists.txt @@ -0,0 +1,43 @@ +cmake_minimum_required(VERSION 3.0) +project(libodb-pgsql VERSION 2.4.0 LANGUAGES CXX) +find_package(odb 2.4.0 REQUIRED COMPONENTS libodb) +find_package(PostgreSQL REQUIRED) +set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)") +file(GLOB_RECURSE libodb_src LIST_DIRECTORIES False + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + *.cxx) +list(FILTER libodb_src EXCLUDE REGEX /posix/.*) +add_library(libodb-pgsql ${libodb_src}) +target_include_directories(libodb-pgsql + PUBLIC + $ + $ + +) + +target_link_libraries(libodb-pgsql PRIVATE odb::libodb ${PostgreSQL_LIBRARY}) +if(BUILD_SHARED_LIBS) + target_compile_definitions(libodb-pgsql PRIVATE + -DLIBODB_PGSQL_DYNAMIC_LIB) +else() + target_compile_definitions(libodb-pgsql PRIVATE + -DLIBODB_PGSQL_STATIC_LIB) +endif() +install(TARGETS libodb-pgsql EXPORT odb_pgsqlConfig + COMPONENT pgsql + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin +) +if(LIBODB_INSTALL_HEADERS) +install(DIRECTORY odb DESTINATION include/ + COMPONENT sqlite + FILES_MATCHING + PATTERN "*.h" + PATTERN "*.hxx" + PATTERN "*.ixx" + PATTERN "*.txx" +) +endif() +install(EXPORT odb_pgsqlConfig NAMESPACE odb:: COMPONENT pgsql DESTINATION share/odb) +export(TARGETS libodb-pgsql NAMESPACE odb:: FILE odb_pgsqlConfig.cmake) \ No newline at end of file diff --git a/ports/libodb-pgsql/CONTROL b/ports/libodb-pgsql/CONTROL new file mode 100644 index 0000000000..a2daa777a4 --- /dev/null +++ b/ports/libodb-pgsql/CONTROL @@ -0,0 +1,4 @@ +Source: libodb-pgsql +Version: 2.4.0 +Description: Description: PostgreSQL support for the ODB ORM library +Build-Depends: libodb, libpq \ No newline at end of file diff --git a/ports/libodb-pgsql/portfile.cmake b/ports/libodb-pgsql/portfile.cmake new file mode 100644 index 0000000000..752f98b70b --- /dev/null +++ b/ports/libodb-pgsql/portfile.cmake @@ -0,0 +1,25 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libodb-pgsql-2.4.0) +vcpkg_download_distfile(ARCHIVE + URLS "http://www.codesynthesis.com/download/odb/2.4/libodb-pgsql-2.4.0.tar.gz" + FILENAME "libodb-pgsql-2.4.0.tar.gz" + SHA512 535515356233b815f144c0098940174f7a530e7fa4e930c0a9ebdc255fdb8bac8cdcceac31f25be4864105323e00bfe50808efa648e7c8ffb5a944e52f514b69 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS_DEBUG + -DLIBODB_INSTALL_HEADERS=OFF +) +vcpkg_build_cmake() +vcpkg_install_cmake() + +file(READ ${CURRENT_PACKAGES_DIR}/debug/share/odb/odb_pgsqlConfig-debug.cmake LIBODB_DEBUG_TARGETS) +string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" LIBODB_DEBUG_TARGETS "${LIBODB_DEBUG_TARGETS}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/odb/odb_pgsqlConfig-debug.cmake "${LIBODB_DEBUG_TARGETS}") +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libodb-pgsql) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/libodb-pgsql/LICENSE ${CURRENT_PACKAGES_DIR}/share/libodb-pgsql/copyright) +vcpkg_copy_pdbs() diff --git a/ports/libodb/odbConfig.cmake b/ports/libodb/odbConfig.cmake index 21631fadfb..afe51dc16a 100644 --- a/ports/libodb/odbConfig.cmake +++ b/ports/libodb/odbConfig.cmake @@ -1,4 +1,4 @@ -set(_supported_components libodb sqlite) +set(_supported_components libodb sqlite pgsql) foreach(_comp ${odb_FIND_COMPONENTS}) if(NOT ";${_supported_components};" MATCHES _comp)