aboutsummaryrefslogtreecommitdiff
path: root/ports/libodb-boost
diff options
context:
space:
mode:
authorMarco Craveiro <mcraveiro@users.noreply.github.com>2019-02-01 20:25:28 +0000
committerVictor Romero <romerosanchezv@gmail.com>2019-02-01 12:25:28 -0800
commit52390cf481f6fe3962bbbd2b84a62ab4d9702484 (patch)
treef52f1f6259b2762ab8d2dcbe771e606999db560f /ports/libodb-boost
parent9be25c17aaf1fc9a1cf2c86a9225879f5ee45f57 (diff)
downloadvcpkg-52390cf481f6fe3962bbbd2b84a62ab4d9702484.tar.gz
vcpkg-52390cf481f6fe3962bbbd2b84a62ab4d9702484.zip
[libodb] Assorted fixes to get ODB v2.4 libraries to compile on x64 Linux (#5260)
* [libodb] Add configure headers to all libs for Linux * [libodb] Include options files in install
Diffstat (limited to 'ports/libodb-boost')
-rw-r--r--ports/libodb-boost/CMakeLists.txt47
-rw-r--r--ports/libodb-boost/CONTROL4
-rw-r--r--ports/libodb-boost/config.unix.h.in14
-rw-r--r--ports/libodb-boost/portfile.cmake29
4 files changed, 94 insertions, 0 deletions
diff --git a/ports/libodb-boost/CMakeLists.txt b/ports/libodb-boost/CMakeLists.txt
new file mode 100644
index 000000000..5dd0eb9b8
--- /dev/null
+++ b/ports/libodb-boost/CMakeLists.txt
@@ -0,0 +1,47 @@
+cmake_minimum_required(VERSION 3.0)
+project(libodb-boost VERSION 2.4.0 LANGUAGES CXX)
+find_package(odb 2.4.0 REQUIRED COMPONENTS libodb)
+configure_file(config.unix.h.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/odb/boost/details/config.h COPYONLY)
+
+# FIXME: should we require boost? which packages?
+# 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)
+add_library(libodb-boost ${libodb_src})
+target_include_directories(libodb-boost
+ PUBLIC
+ $<INSTALL_INTERFACE:include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+
+)
+
+target_link_libraries(libodb-boost PRIVATE odb::libodb)
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(libodb-boost PRIVATE
+ -DLIBODB_BOOST_DYNAMIC_LIB)
+else()
+ target_compile_definitions(libodb-boost PRIVATE
+ -DLIBODB_BOOST_STATIC_LIB)
+endif()
+install(TARGETS libodb-boost EXPORT odb_boostConfig
+ COMPONENT boost
+ 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"
+ PATTERN "*.options"
+)
+endif()
+install(EXPORT odb_boostConfig NAMESPACE odb:: COMPONENT boost DESTINATION share/odb)
+export(TARGETS libodb-boost NAMESPACE odb:: FILE odb_boostConfig.cmake)
diff --git a/ports/libodb-boost/CONTROL b/ports/libodb-boost/CONTROL
new file mode 100644
index 000000000..5913d752b
--- /dev/null
+++ b/ports/libodb-boost/CONTROL
@@ -0,0 +1,4 @@
+Source: libodb-boost
+Version: 2.4.0-1
+Description: Description: Boost support for the ODB ORM library
+Build-Depends: libodb
diff --git a/ports/libodb-boost/config.unix.h.in b/ports/libodb-boost/config.unix.h.in
new file mode 100644
index 000000000..b049efd09
--- /dev/null
+++ b/ports/libodb-boost/config.unix.h.in
@@ -0,0 +1,14 @@
+/* odb/boost/details/config.h. Generated from config.h.in by configure. */
+/* file : odb/boost/details/config.h.in
+ * copyright : Copyright (c) 2009-2015 Code Synthesis Tools CC
+ * license : GNU GPL v2; see accompanying LICENSE file
+ */
+
+/* This file is automatically processed by configure. */
+
+#ifndef ODB_BOOST_DETAILS_CONFIG_H
+#define ODB_BOOST_DETAILS_CONFIG_H
+
+/* #undef LIBODB_BOOST_STATIC_LIB */
+
+#endif /* ODB_BOOST_DETAILS_CONFIG_H */
diff --git a/ports/libodb-boost/portfile.cmake b/ports/libodb-boost/portfile.cmake
new file mode 100644
index 000000000..3f8dfc061
--- /dev/null
+++ b/ports/libodb-boost/portfile.cmake
@@ -0,0 +1,29 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libodb-boost-2.4.0)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.codesynthesis.com/download/odb/2.4/libodb-boost-2.4.0.tar.gz"
+ FILENAME "libodb-boost-2.4.0.tar.gz"
+ SHA512 af716b0385cf4ea18b20dcd5880c69c43cfc195eec4ff196a8e438833306489c39ab06a494e5d60cd08ba0d94caa05bd07e5f3fa836d835bad15c8a2ad7de306
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY
+ ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt
+ ${CMAKE_CURRENT_LIST_DIR}/config.unix.h.in
+ 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_boostConfig-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_boostConfig-debug.cmake "${LIBODB_DEBUG_TARGETS}")
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libodb-boost)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libodb-boost/LICENSE ${CURRENT_PACKAGES_DIR}/share/libodb-boost/copyright)
+vcpkg_copy_pdbs()