early-access version 2853

This commit is contained in:
pineappleEA
2022-07-23 03:01:36 +02:00
parent 1f2b5081b5
commit 1f111bb69c
8955 changed files with 418777 additions and 999 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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 */

View File

@@ -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

View File

@@ -0,0 +1,45 @@
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_ex(
ARCHIVE ${ARCHIVE}
OUT_SOURCE_PATH SOURCE_PATH
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 REQUIRED)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
DISABLE_PARALLEL_CONFIGURE
PREFER_NINJA
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_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH share/odb TARGET_PATH share/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)

4
externals/vcpkg/ports/libodb-mysql/usage vendored Executable file
View File

@@ -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)

11
externals/vcpkg/ports/libodb-mysql/vcpkg.json vendored Executable file
View File

@@ -0,0 +1,11 @@
{
"name": "libodb-mysql",
"version": "2.4.0",
"port-version": 9,
"description": "MySQL support for the ODB ORM library",
"homepage": "https://www.codesynthesis.com/products/odb/",
"dependencies": [
"libmysql",
"libodb"
]
}