aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libodb-mysql
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/libodb-mysql
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/libodb-mysql')
-rw-r--r--vcpkg/ports/libodb-mysql/CMakeLists.txt47
-rw-r--r--vcpkg/ports/libodb-mysql/adapter_mysql_8.0.patch13
-rw-r--r--vcpkg/ports/libodb-mysql/config.unix.h.in19
-rw-r--r--vcpkg/ports/libodb-mysql/fix-redefinttion.patch32
-rw-r--r--vcpkg/ports/libodb-mysql/portfile.cmake44
-rw-r--r--vcpkg/ports/libodb-mysql/usage4
-rw-r--r--vcpkg/ports/libodb-mysql/vcpkg.json19
7 files changed, 178 insertions, 0 deletions
diff --git a/vcpkg/ports/libodb-mysql/CMakeLists.txt b/vcpkg/ports/libodb-mysql/CMakeLists.txt
new file mode 100644
index 0000000..fe02585
--- /dev/null
+++ b/vcpkg/ports/libodb-mysql/CMakeLists.txt
@@ -0,0 +1,47 @@
+cmake_minimum_required(VERSION 3.0)
+project(libodb-mysql 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/mysql/details/config.h COPYONLY)
+
+INCLUDE_DIRECTORIES(${MYSQL_INCLUDE_DIR})
+set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)")
+file(GLOB_RECURSE libodb_src
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ *.cxx)
+add_library(libodb-mysql ${libodb_src})
+target_include_directories(libodb-mysql
+ PUBLIC
+ $<INSTALL_INTERFACE:include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+
+)
+
+target_link_libraries(libodb-mysql PRIVATE odb::libodb ${MYSQL_LIB})
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(libodb-mysql PRIVATE
+ -DLIBODB_MYSQL_DYNAMIC_LIB
+ -DLIBODB_MYSQL_HAVE_UNLOCK_NOTIFY)
+else()
+ target_compile_definitions(libodb-mysql PRIVATE
+ -DLIBODB_MYSQL_STATIC_LIB
+ -DLIBODB_MYSQL_HAVE_UNLOCK_NOTIFY)
+endif()
+install(TARGETS libodb-mysql EXPORT odb_mysqlConfig
+ COMPONENT mysql
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+ RUNTIME DESTINATION bin
+)
+if(LIBODB_INSTALL_HEADERS)
+install(DIRECTORY odb DESTINATION include/
+ COMPONENT mysql
+ FILES_MATCHING
+ PATTERN "*.h"
+ PATTERN "*.hxx"
+ PATTERN "*.ixx"
+ PATTERN "*.txx"
+)
+endif()
+install(EXPORT odb_mysqlConfig NAMESPACE odb:: COMPONENT mysql DESTINATION share/odb)
+export(TARGETS libodb-mysql NAMESPACE odb:: FILE odb_mysqlConfig.cmake) \ No newline at end of file
diff --git a/vcpkg/ports/libodb-mysql/adapter_mysql_8.0.patch b/vcpkg/ports/libodb-mysql/adapter_mysql_8.0.patch
new file mode 100644
index 0000000..9e2f237
--- /dev/null
+++ b/vcpkg/ports/libodb-mysql/adapter_mysql_8.0.patch
@@ -0,0 +1,13 @@
+diff --git a/odb/mysql/mysql-types.hxx b/odb/mysql/mysql-types.hxx
+index 1254ccd..5396791 100644
+--- a/odb/mysql/mysql-types.hxx
++++ b/odb/mysql/mysql-types.hxx
+@@ -7,7 +7,7 @@
+
+ #include <odb/mysql/details/config.hxx>
+
+-typedef char my_bool;
++typedef bool my_bool;
+ typedef struct st_mysql_bind MYSQL_BIND;
+
+ #ifdef LIBODB_MYSQL_INCLUDE_SHORT
diff --git a/vcpkg/ports/libodb-mysql/config.unix.h.in b/vcpkg/ports/libodb-mysql/config.unix.h.in
new file mode 100644
index 0000000..b1270e2
--- /dev/null
+++ b/vcpkg/ports/libodb-mysql/config.unix.h.in
@@ -0,0 +1,19 @@
+/* odb/mysql/details/config.h. Generated from config.h.in by configure. */
+/* file : odb/mysql/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_MYSQL_DETAILS_CONFIG_H
+#define ODB_MYSQL_DETAILS_CONFIG_H
+
+/* #undef LIBODB_MYSQL_STATIC_LIB */
+
+/* #undef LIBODB_MYSQL_INCLUDE_SHORT */
+#define LIBODB_MYSQL_INCLUDE_LONG 1
+
+/* #undef LIBODB_MYSQL_THR_KEY_VISIBLE */
+
+#endif /* ODB_MYSQL_DETAILS_CONFIG_H */
diff --git a/vcpkg/ports/libodb-mysql/fix-redefinttion.patch b/vcpkg/ports/libodb-mysql/fix-redefinttion.patch
new file mode 100644
index 0000000..ec6dab4
--- /dev/null
+++ b/vcpkg/ports/libodb-mysql/fix-redefinttion.patch
@@ -0,0 +1,32 @@
+diff --git a/odb/mysql/mysql-types.hxx b/odb/mysql/mysql-types.hxx
+index 5396791..32a2a03 100644
+--- a/odb/mysql/mysql-types.hxx
++++ b/odb/mysql/mysql-types.hxx
+@@ -7,13 +7,24 @@
+
+ #include <odb/mysql/details/config.hxx>
+
++#include <odb/mysql/version.hxx>
++
+ typedef bool my_bool;
++
++#if !defined(LIBODB_MYSQL_MARIADB) && MYSQL_VERSION_ID >= 80011
++struct MYSQL_BIND;
++#else
+ typedef struct st_mysql_bind MYSQL_BIND;
++#endif
+
+-#ifdef LIBODB_MYSQL_INCLUDE_SHORT
+-# include <mysql_time.h>
++#ifdef LIBODB_MYSQL_MARIADB
++# include <mysql/mysql.h>
+ #else
+-# include <mysql/mysql_time.h>
++# ifdef LIBODB_MYSQL_INCLUDE_SHORT
++# include <mysql_time.h>
++# else
++# include <mysql/mysql_time.h>
++# endif
+ #endif
+
+ #endif // ODB_MYSQL_MYSQL_TYPES_HXX
diff --git a/vcpkg/ports/libodb-mysql/portfile.cmake b/vcpkg/ports/libodb-mysql/portfile.cmake
new file mode 100644
index 0000000..a865089
--- /dev/null
+++ b/vcpkg/ports/libodb-mysql/portfile.cmake
@@ -0,0 +1,44 @@
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://www.codesynthesis.com/download/odb/2.4/libodb-mysql-2.4.0.tar.gz"
+ FILENAME "libodb-mysql-2.4.0.tar.gz"
+ SHA512 c27b73c3f61dccdd149c11c122185f645a00d5bc346b366ee65b738f8719c39d03fad07a0d55b62b3db9e3ad2507679c24ddda331e5d110f367ad32f7cf8b910
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+ PATCHES
+ adapter_mysql_8.0.patch
+ fix-redefinttion.patch
+)
+file(REMOVE "${SOURCE_PATH}/version")
+
+file(COPY
+ "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt"
+ "${CMAKE_CURRENT_LIST_DIR}/config.unix.h.in"
+ DESTINATION "${SOURCE_PATH}")
+
+set(MYSQL_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include/mysql")
+find_library(MYSQL_LIB NAMES libmysql mysqlclient PATH_SUFFIXES lib PATHS "${CURRENT_INSTALLED_DIR}" NO_DEFAULT_PATH REQUIRED)
+find_library(MYSQL_LIB_DEBUG NAMES libmysql mysqlclient PATH_SUFFIXES lib PATHS "${CURRENT_INSTALLED_DIR}/debug" NO_DEFAULT_PATH)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ DISABLE_PARALLEL_CONFIGURE
+ OPTIONS
+ -DMYSQL_INCLUDE_DIR=${MYSQL_INCLUDE_DIR}
+ OPTIONS_RELEASE
+ -DMYSQL_LIB=${MYSQL_LIB}
+ OPTIONS_DEBUG
+ -DLIBODB_INSTALL_HEADERS=OFF
+ -DMYSQL_LIB=${MYSQL_LIB_DEBUG}
+)
+
+vcpkg_cmake_install()
+
+vcpkg_cmake_config_fixup(CONFIG_PATH share/odb PACKAGE_NAME odb)
+
+vcpkg_copy_pdbs()
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/vcpkg/ports/libodb-mysql/usage b/vcpkg/ports/libodb-mysql/usage
new file mode 100644
index 0000000..2ddd455
--- /dev/null
+++ b/vcpkg/ports/libodb-mysql/usage
@@ -0,0 +1,4 @@
+The package libodb-mysql provides CMake integration:
+
+ find_package(odb CONFIG COMPONENTS libodb mysql REQUIRED)
+ target_link_libraries(main PRIVATE odb::libodb-mysql)
diff --git a/vcpkg/ports/libodb-mysql/vcpkg.json b/vcpkg/ports/libodb-mysql/vcpkg.json
new file mode 100644
index 0000000..35509f1
--- /dev/null
+++ b/vcpkg/ports/libodb-mysql/vcpkg.json
@@ -0,0 +1,19 @@
+{
+ "name": "libodb-mysql",
+ "version": "2.4.0",
+ "port-version": 11,
+ "description": "MySQL support for the ODB ORM library",
+ "homepage": "https://www.codesynthesis.com/products/odb/",
+ "dependencies": [
+ "libmysql",
+ "libodb",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}