cmake port for libodb

This commit is contained in:
Charles Barto 2016-10-18 17:57:53 -04:00
parent 413dcf6b91
commit f6fcd77e21
3 changed files with 43 additions and 30 deletions

View File

@ -26,3 +26,6 @@ else()
endif()
vcpkg_build_msbuild(PROJECT_PATH "${SOURCE_PATH}\\libodb-sqlite-vc12.sln" PLATFORM ${MSBUILD_PLATFORM}
OPTIONS "/p:useenv=true")
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

@ -0,0 +1,34 @@
cmake_minimum_required(VERSION 3.0)
project(libodb VERSION 2.4.0 LANGUAGES CXX)
set(LIBODB_INSTALL_HEADERS:BOOL CACHE OFF)
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>
)
if(BUILD_SHARED_LIBS)
target_compile_definitions(libodb PRIVATE
-DLIBODB_DYNAMIC_LIB)
else()
target_compile_definitions(libodb PRIVATE
-DLIBODB_STATIC_LIB)
endif()
install(TARGETS libodb EXPORT libodbConfig
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin
)
if(LIBODB_INSTALL_HEADERS)
install(DIRECTORY odb DESTINATION include/
FILES_MATCHING
PATTERN "*.h"
PATTERN "*.hxx"
PATTERN "*.ixx"
PATTERN "*.txx"
)
endif()
install(EXPORT libodbConfig DESTINATION share/libodb)
export(TARGETS libodb NAMESPACE libodb FILE libodbConfig.cmake)

View File

@ -15,36 +15,12 @@ vcpkg_download_distfile(ARCHIVE
SHA512 f1311458634695eb6ba307ebfd492e3b260e7beb06db1c5c46df58c339756be4006322cdc4e42d055bf5b2ad14ce4656ddcafcc4e16c282034db8a77d255c3eb
)
vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_execute_required_process(COMMAND devenv libodb-vc12.sln /upgrade WORKING_DIRECTORY ${SOURCE_PATH} LOGNAME devenv_upgrade.log)
if(${TRIPLET_SYSTEM_ARCH} STREQUAL "x86")
set(MSBUILD_PLATFORM "Win32")
else()
set(MSBUILD_PLATFORM "x64")
endif()
vcpkg_build_msbuild(PROJECT_PATH "${SOURCE_PATH}\\libodb-vc12.sln" PLATFORM ${MSBUILD_PLATFORM})
if(${TRIPLET_SYSTEM_ARCH} STREQUAL "x86")
file(INSTALL ${SOURCE_PATH}/bin/odb-2.4-vc12.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin/odb-2.4-vc14.dll)
file(INSTALL ${SOURCE_PATH}/bin/odb-2.4-vc12.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/bin/odb-2.4-vc14.pdb)
file(INSTALL ${SOURCE_PATH}/bin/odb-d-2.4-vc12.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin/odb-2.4-vc14.dll)
file(INSTALL ${SOURCE_PATH}/bin/odb-d-2.4-vc12.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin/odb-d-2.4-vc14.pdb)
file(INSTALL ${SOURCE_PATH}/lib/odb.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(INSTALL ${SOURCE_PATH}/lib/odb-d.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
elseif(${TRIPLET_SYSTEM_ARCH} STREQUAL "x64")
file(INSTALL ${SOURCE_PATH}/bin64/odb-2.4-vc12.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin/odb-2.4-vc14.dll)
file(INSTALL ${SOURCE_PATH}/bin64/odb-2.4-vc12.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/bin/odb-2.4-vc14.pdb)
file(INSTALL ${SOURCE_PATH}/bin64/odb-d-2.4-vc12.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin/odb-2.4-vc14.dll)
file(INSTALL ${SOURCE_PATH}/bin64/odb-d-2.4-vc12.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/bin/odb-d-2.4-vc14.pdb)
file(INSTALL ${SOURCE_PATH}/lib64/odb.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(INSTALL ${SOURCE_PATH}/lib64/odb-d.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
endif()
#file(GLOB_RECURSE INCLUDE_FILES LIST_DIRECTORIES false RELATIVE ${SOURCE_DIR})
file(INSTALL ${SOURCE_PATH}/odb DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING
PATTERN "*.h"
PATTERN "*.hxx"
PATTERN "*.ixx"
PATTERN "*.txx")
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS_DEBUG
-DLIBODB_INSTALL_HEADERS=OFF
)
# 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)