diff options
Diffstat (limited to 'vcpkg/ports/libodb-mysql')
| -rw-r--r-- | vcpkg/ports/libodb-mysql/CMakeLists.txt | 47 | ||||
| -rw-r--r-- | vcpkg/ports/libodb-mysql/adapter_mysql_8.0.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/libodb-mysql/config.unix.h.in | 19 | ||||
| -rw-r--r-- | vcpkg/ports/libodb-mysql/fix-redefinttion.patch | 32 | ||||
| -rw-r--r-- | vcpkg/ports/libodb-mysql/portfile.cmake | 44 | ||||
| -rw-r--r-- | vcpkg/ports/libodb-mysql/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/libodb-mysql/vcpkg.json | 19 |
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 + } + ] +} |