more work on libodb

This commit is contained in:
Charles Barto 2016-10-18 19:53:43 -04:00
parent f6fcd77e21
commit cc6fdbeb8b
4 changed files with 66 additions and 14 deletions

View File

@ -0,0 +1,43 @@
cmake_minimum_required(VERSION 3.0)
project(libodb-sqlite VERSION 2.4.0 LANGUAGES CXX)
find_package(libodb REQUIRED VERSION 2.4.0)
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(sqlite ${libodb_src})
target_include_directories(sqlite
PUBLIC
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
)
target_link_libraries(sqlite libodb::libodb)
if(BUILD_SHARED_LIBS)
target_compile_definitions(sqlite PRIVATE
-DLIBODB_SQLITE_DYNAMIC_LIB
-DLIBODB_SQLITE_HAVE_UNLOCK_NOTIFY)
else()
target_compile_definitions(sqlite PRIVATE
-DLIBODB_SQLITE_STATIC_LIB
-DLIBODB_SQLITE_HAVE_UNLOCK_NOTIFY)
endif()
install(TARGETS sqlite EXPORT libodb_sqliteConfig
COMPONENT sqlite
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"
)
endif()
install(EXPORT libodb_sqliteConfig DESTINATION share/libodb)
export(TARGETS sqlite NAMESPACE libodb FILE libodb_sqliteConfig.cmake)

View File

@ -16,16 +16,14 @@ vcpkg_download_distfile(ARCHIVE
)
vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_execute_required_process(COMMAND devenv libodb-sqlite-vc12.sln /upgrade WORKING_DIRECTORY ${SOURCE_PATH} LOGNAME devenv_upgrade.log)
set(ENV{INCLUDE} "$ENV{INCLUDE};${CURRENT_INSTALLED_DIR}/include")
set(ENV{LIB} "$ENV{LIB};${CURRENT_INSTALLED_DIR}/lib;${CURRENT_INSTALLED_DIR}/debug/lib")
if(${TRIPLET_SYSTEM_ARCH} STREQUAL "x86")
set(MSBUILD_PLATFORM "Win32")
else()
set(MSBUILD_PLATFORM "x64")
endif()
vcpkg_build_msbuild(PROJECT_PATH "${SOURCE_PATH}\\libodb-sqlite-vc12.sln" PLATFORM ${MSBUILD_PLATFORM}
OPTIONS "/p:useenv=true")
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(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libodb)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libodb/LICENSE ${CURRENT_PACKAGES_DIR}/share/libodb/copyright)

View File

@ -1,13 +1,16 @@
cmake_minimum_required(VERSION 3.0)
project(libodb VERSION 2.4.0 LANGUAGES CXX)
set(LIBODB_INSTALL_HEADERS:BOOL CACHE OFF)
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>
PUBLIC
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
)
if(BUILD_SHARED_LIBS)
target_compile_definitions(libodb PRIVATE
@ -30,5 +33,5 @@ install(DIRECTORY odb DESTINATION include/
PATTERN "*.txx"
)
endif()
install(EXPORT libodbConfig DESTINATION share/libodb)
export(TARGETS libodb NAMESPACE libodb FILE libodbConfig.cmake)
install(EXPORT libodbConfig NAMESPACE libodb:: DESTINATION share/libodb)
export(TARGETS libodb NAMESPACE libodb:: FILE libodbConfig.cmake)

View File

@ -21,6 +21,14 @@ vcpkg_configure_cmake(
OPTIONS_DEBUG
-DLIBODB_INSTALL_HEADERS=OFF
)
vcpkg_build_cmake()
vcpkg_install_cmake()
file(READ ${CURRENT_PACKAGES_DIR}/debug/share/libodb/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/libodb/libodbConfig-debug.cmake "${LIBODB_DEBUG_TARGETS}")
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
# 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()