[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
This commit is contained in:
Marco Craveiro 2019-02-01 20:25:28 +00:00 committed by Victor Romero
parent 9be25c17aa
commit 52390cf481
16 changed files with 203 additions and 8 deletions

View File

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

View File

@ -0,0 +1,4 @@
Source: libodb-boost
Version: 2.4.0-1
Description: Description: Boost support for the ODB ORM library
Build-Depends: libodb

View File

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

View File

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

View File

@ -1,6 +1,9 @@
cmake_minimum_required(VERSION 3.0) cmake_minimum_required(VERSION 3.0)
project(libodb-mysql VERSION 2.4.0 LANGUAGES CXX) project(libodb-mysql VERSION 2.4.0 LANGUAGES CXX)
find_package(odb 2.4.0 REQUIRED COMPONENTS libodb) 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}) INCLUDE_DIRECTORIES(${MYSQL_INCLUDE_DIR})
set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)") set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)")
file(GLOB_RECURSE libodb_src file(GLOB_RECURSE libodb_src

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

@ -25,7 +25,11 @@ vcpkg_apply_patches(
${CMAKE_CURRENT_LIST_DIR}/adapter_mysql_8.0.patch ${CMAKE_CURRENT_LIST_DIR}/adapter_mysql_8.0.patch
) )
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) 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") set(MYSQL_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include/mysql")
set(MYSQL_LIB "${CURRENT_INSTALLED_DIR}/lib/libmysql.lib") set(MYSQL_LIB "${CURRENT_INSTALLED_DIR}/lib/libmysql.lib")
set(MYSQL_LIB_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib/libmysql.lib") set(MYSQL_LIB_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib/libmysql.lib")
@ -48,4 +52,4 @@ file(WRITE ${CURRENT_PACKAGES_DIR}/share/odb/odb_mysqlConfig-debug.cmake "${LIBO
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libodb-mysql) file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libodb-mysql)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libodb-mysql/LICENSE ${CURRENT_PACKAGES_DIR}/share/libodb-mysql/copyright) file(RENAME ${CURRENT_PACKAGES_DIR}/share/libodb-mysql/LICENSE ${CURRENT_PACKAGES_DIR}/share/libodb-mysql/copyright)
vcpkg_copy_pdbs() vcpkg_copy_pdbs()

View File

@ -2,6 +2,9 @@ cmake_minimum_required(VERSION 3.0)
project(libodb-pgsql VERSION 2.4.0 LANGUAGES CXX) project(libodb-pgsql VERSION 2.4.0 LANGUAGES CXX)
find_package(odb 2.4.0 REQUIRED COMPONENTS libodb) find_package(odb 2.4.0 REQUIRED COMPONENTS libodb)
find_package(PostgreSQL REQUIRED) find_package(PostgreSQL REQUIRED)
configure_file(config.unix.h.in
${CMAKE_CURRENT_SOURCE_DIR}/odb/pgsql/details/config.h COPYONLY)
set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)") set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)")
file(GLOB_RECURSE libodb_src LIST_DIRECTORIES False file(GLOB_RECURSE libodb_src LIST_DIRECTORIES False
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}

View File

@ -0,0 +1,14 @@
/* odb/pgsql/details/config.h. Generated from config.h.in by configure. */
/* file : odb/pgsql/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_PGSQL_DETAILS_CONFIG_H
#define ODB_PGSQL_DETAILS_CONFIG_H
/* #undef LIBODB_PGSQL_STATIC_LIB */
#endif /* ODB_PGSQL_DETAILS_CONFIG_H */

View File

@ -7,7 +7,11 @@ vcpkg_download_distfile(ARCHIVE
) )
vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY
${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt
${CMAKE_CURRENT_LIST_DIR}/config.unix.h.in
DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake( vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH} SOURCE_PATH ${SOURCE_PATH}
OPTIONS_DEBUG OPTIONS_DEBUG

View File

@ -2,6 +2,9 @@ cmake_minimum_required(VERSION 3.0)
project(libodb-sqlite VERSION 2.4.0 LANGUAGES CXX) project(libodb-sqlite VERSION 2.4.0 LANGUAGES CXX)
find_package(odb 2.4.0 REQUIRED COMPONENTS libodb) find_package(odb 2.4.0 REQUIRED COMPONENTS libodb)
find_package(sqlite3 REQUIRED) find_package(sqlite3 REQUIRED)
configure_file(config.unix.h.in
${CMAKE_CURRENT_SOURCE_DIR}/odb/sqlite/details/config.h COPYONLY)
set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)") set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)")
file(GLOB_RECURSE libodb_src LIST_DIRECTORIES False file(GLOB_RECURSE libodb_src LIST_DIRECTORIES False
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}

View File

@ -0,0 +1,15 @@
/* odb/sqlite/details/config.h. Generated from config.h.in by configure. */
/* file : odb/sqlite/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_SQLITE_DETAILS_CONFIG_H
#define ODB_SQLITE_DETAILS_CONFIG_H
/* #undef LIBODB_SQLITE_STATIC_LIB */
#define LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY 1
#endif /* ODB_SQLITE_DETAILS_CONFIG_H */

View File

@ -15,7 +15,11 @@ vcpkg_download_distfile(ARCHIVE
) )
vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY
${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt
${CMAKE_CURRENT_LIST_DIR}/config.unix.h.in
DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake( vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH} SOURCE_PATH ${SOURCE_PATH}
OPTIONS_DEBUG OPTIONS_DEBUG
@ -30,4 +34,4 @@ file(WRITE ${CURRENT_PACKAGES_DIR}/share/odb/odb_sqliteConfig-debug.cmake "${LIB
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libodb-sqlite) file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libodb-sqlite)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libodb-sqlite/LICENSE ${CURRENT_PACKAGES_DIR}/share/libodb-sqlite/copyright) file(RENAME ${CURRENT_PACKAGES_DIR}/share/libodb-sqlite/LICENSE ${CURRENT_PACKAGES_DIR}/share/libodb-sqlite/copyright)
vcpkg_copy_pdbs() vcpkg_copy_pdbs()

View File

@ -1,13 +1,21 @@
cmake_minimum_required(VERSION 3.0) cmake_minimum_required(VERSION 3.0)
project(libodb VERSION 2.4.0 LANGUAGES CXX) project(libodb VERSION 2.4.0 LANGUAGES CXX)
set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)") set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)")
configure_file(config.unix.h.in
${CMAKE_CURRENT_SOURCE_DIR}/odb/details/config.h COPYONLY)
file(GLOB_RECURSE libodb_src LIST_DIRECTORIES False file(GLOB_RECURSE libodb_src LIST_DIRECTORIES False
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
*.cxx) *.cxx)
list(FILTER libodb_src EXCLUDE REGEX /posix/.*) if (WIN32)
list(FILTER libodb_src EXCLUDE REGEX /posix/.*)
elseif (UNIX)
list(FILTER libodb_src EXCLUDE REGEX /win32/.*)
endif()
add_library(libodb ${libodb_src}) add_library(libodb ${libodb_src})
target_include_directories(libodb target_include_directories(libodb
PUBLIC PUBLIC
$<INSTALL_INTERFACE:include> $<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>

View File

@ -0,0 +1,20 @@
/* odb/details/config.h. Generated from config.h.in by configure. */
/* file : odb/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_DETAILS_CONFIG_H
#define ODB_DETAILS_CONFIG_H
/* #undef ODB_THREADS_NONE */
#define ODB_THREADS_POSIX 1
/* #undef ODB_THREADS_WIN32 */
#define ODB_THREADS_TLS_KEYWORD 1
/* #undef ODB_THREADS_TLS_DECLSPEC */
/* #undef LIBODB_STATIC_LIB */
#endif /* ODB_DETAILS_CONFIG_H */

View File

@ -15,7 +15,11 @@ vcpkg_download_distfile(ARCHIVE
SHA512 f1311458634695eb6ba307ebfd492e3b260e7beb06db1c5c46df58c339756be4006322cdc4e42d055bf5b2ad14ce4656ddcafcc4e16c282034db8a77d255c3eb SHA512 f1311458634695eb6ba307ebfd492e3b260e7beb06db1c5c46df58c339756be4006322cdc4e42d055bf5b2ad14ce4656ddcafcc4e16c282034db8a77d255c3eb
) )
vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY
${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt
${CMAKE_CURRENT_LIST_DIR}/config.unix.h.in
DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake( vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH} SOURCE_PATH ${SOURCE_PATH}
OPTIONS_DEBUG OPTIONS_DEBUG