aboutsummaryrefslogtreecommitdiff
path: root/ports/libodb
diff options
context:
space:
mode:
Diffstat (limited to 'ports/libodb')
-rw-r--r--ports/libodb/CMakeLists.txt39
-rw-r--r--ports/libodb/CONTROL3
-rw-r--r--ports/libodb/odbConfig.cmake10
-rw-r--r--ports/libodb/portfile.cmake40
4 files changed, 92 insertions, 0 deletions
diff --git a/ports/libodb/CMakeLists.txt b/ports/libodb/CMakeLists.txt
new file mode 100644
index 000000000..b4aef5817
--- /dev/null
+++ b/ports/libodb/CMakeLists.txt
@@ -0,0 +1,39 @@
+cmake_minimum_required(VERSION 3.0)
+project(libodb VERSION 2.4.0 LANGUAGES CXX)
+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 ${libodb_src})
+target_include_directories(libodb
+ PUBLIC
+ $<INSTALL_INTERFACE:include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+
+)
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(libodb PRIVATE
+ -DLIBODB_DYNAMIC_LIB)
+else()
+ target_compile_definitions(libodb PRIVATE
+ -DLIBODB_STATIC_LIB)
+endif()
+install(TARGETS libodb EXPORT odb_libodbConfig
+ COMPONENT libodb
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+ RUNTIME DESTINATION bin
+)
+if(LIBODB_INSTALL_HEADERS)
+install(DIRECTORY odb DESTINATION include/
+ COMPONENT libodb
+ FILES_MATCHING
+ PATTERN "*.h"
+ PATTERN "*.hxx"
+ PATTERN "*.ixx"
+ PATTERN "*.txx"
+)
+endif()
+install(EXPORT odb_libodbConfig NAMESPACE odb:: COMPONENT libodb DESTINATION share/odb)
+export(TARGETS libodb NAMESPACE odb:: FILE odb_libodbConfig.cmake)
diff --git a/ports/libodb/CONTROL b/ports/libodb/CONTROL
new file mode 100644
index 000000000..f9645d098
--- /dev/null
+++ b/ports/libodb/CONTROL
@@ -0,0 +1,3 @@
+Source: libodb
+Version: 2.4.0
+Description: ODB library, base runtime for the ODB ORM solution
diff --git a/ports/libodb/odbConfig.cmake b/ports/libodb/odbConfig.cmake
new file mode 100644
index 000000000..21631fadf
--- /dev/null
+++ b/ports/libodb/odbConfig.cmake
@@ -0,0 +1,10 @@
+set(_supported_components libodb sqlite)
+
+foreach(_comp ${odb_FIND_COMPONENTS})
+ if(NOT ";${_supported_components};" MATCHES _comp)
+ set(odb_FOUND False)
+ set(odb_NOTFOUND_MESSAGE "Unsupported component: ${_comp}")
+ endif()
+ include("${CMAKE_CURRENT_LIST_DIR}/odb_${_comp}Config.cmake")
+endforeach()
+set(odb_FOUND True) \ No newline at end of file
diff --git a/ports/libodb/portfile.cmake b/ports/libodb/portfile.cmake
new file mode 100644
index 000000000..770cc0948
--- /dev/null
+++ b/ports/libodb/portfile.cmake
@@ -0,0 +1,40 @@
+# Common Ambient Variables:
+# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
+# TARGET_TRIPLET is the current triplet (x86-windows, etc)
+# PORT is the current port name (zlib, etc)
+# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
+# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
+#
+
+include(${CMAKE_TRIPLET_FILE})
+include(vcpkg_common_functions)
+include(CMakePackageConfigHelpers)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libodb-2.4.0)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.codesynthesis.com/download/odb/2.4/libodb-2.4.0.tar.gz"
+ FILENAME "libodb-2.4.0.tar.gz"
+ SHA512 f1311458634695eb6ba307ebfd492e3b260e7beb06db1c5c46df58c339756be4006322cdc4e42d055bf5b2ad14ce4656ddcafcc4e16c282034db8a77d255c3eb
+)
+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_libodbConfig-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_libodbConfig-debug.cmake "${LIBODB_DEBUG_TARGETS}")
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/odbConfig.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/odb)
+write_basic_package_version_file(${CURRENT_PACKAGES_DIR}/share/odb/odbConfigVersion.cmake
+ VERSION 2.4.0
+ COMPATIBILITY SameMajorVersion
+)
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libodb)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libodb/LICENSE ${CURRENT_PACKAGES_DIR}/share/libodb/copyright)
+
+vcpkg_copy_pdbs()