aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/libodb-pgsql/CMakeLists.txt43
-rw-r--r--ports/libodb-pgsql/CONTROL4
-rw-r--r--ports/libodb-pgsql/portfile.cmake25
-rw-r--r--ports/libodb/odbConfig.cmake2
4 files changed, 73 insertions, 1 deletions
diff --git a/ports/libodb-pgsql/CMakeLists.txt b/ports/libodb-pgsql/CMakeLists.txt
new file mode 100644
index 000000000..cb510e805
--- /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
+ $<INSTALL_INTERFACE:include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+
+)
+
+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 000000000..a2daa777a
--- /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 000000000..752f98b70
--- /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 21631fadf..afe51dc16 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)