[stxxl] Add new port (#5254)

* [stxxl] Add new port

* [stxxl] Fix missing include directory exporting

* [stxxl] Fix STXXL_INCLUDE_DIRS
This commit is contained in:
Phil Christensen 2019-02-27 12:17:22 -08:00 committed by GitHub
commit 473dac7265
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 110 additions and 0 deletions

3
ports/stxxl/CONTROL Normal file
View File

@ -0,0 +1,3 @@
Source: stxxl
Version: 2018-11-15
Description: Standard Template Library for Extra Large Data Sets

View File

@ -0,0 +1,31 @@
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 06f9e50a..281e1f04 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -94,6 +94,8 @@ if(BUILD_SHARED_LIBS)
add_library(stxxl SHARED ${LIBSTXXL_SOURCES})
set_target_properties(stxxl PROPERTIES OUTPUT_NAME "${STXXL_LIBNAME}")
set_target_properties(stxxl PROPERTIES VERSION "${STXXL_VERSION_STRING}")
+ target_include_directories(stxxl PUBLIC $<INSTALL_INTERFACE:include>)
+
install(TARGETS stxxl
EXPORT stxxl-targets
ARCHIVE DESTINATION ${INSTALL_LIB_DIR}
@@ -104,6 +106,8 @@ if(BUILD_SHARED_LIBS)
add_library(stxxl_static STATIC ${LIBSTXXL_SOURCES})
set_target_properties(stxxl_static PROPERTIES OUTPUT_NAME "${STXXL_LIBNAME}")
set_target_properties(stxxl_static PROPERTIES VERSION "${STXXL_VERSION_STRING}")
+ target_include_directories(stxxl_static PUBLIC $<INSTALL_INTERFACE:include>)
+
install(TARGETS stxxl_static
EXPORT stxxl-targets
ARCHIVE DESTINATION ${INSTALL_LIB_DIR})
@@ -122,6 +126,8 @@ else()
add_library(stxxl STATIC ${LIBSTXXL_SOURCES})
set_target_properties(stxxl PROPERTIES OUTPUT_NAME "${STXXL_LIBNAME}")
set_target_properties(stxxl PROPERTIES VERSION "${STXXL_VERSION_STRING}")
+ target_include_directories(stxxl PUBLIC $<INSTALL_INTERFACE:include>)
+
install(TARGETS stxxl
EXPORT stxxl-targets
ARCHIVE DESTINATION ${INSTALL_LIB_DIR}

View File

@ -0,0 +1,76 @@
include(vcpkg_common_functions)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
message("stxxl currently only supports static library linkage.")
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_CRT_LINKAGE static)
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO stxxl/stxxl
REF b9e44f0ecba7d7111fbb33f3330c3e53f2b75236
SHA512 800a8fb95b52b21256cecb848f95645c54851f4dc070e0cd64fb5009f7663c0c962a24ca3f246e54d6d45e81a5c734309268d7ea6f0b0987336a50a3dcb99616
HEAD_REF master
PATCHES
# This patch can be removed when stxxl/stxxl/#95 is accepted
fix-include-dir.patch
)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS
-DBUILD_STATIC_LIBS=ON
-DBUILD_EXAMPLES=OFF
-DBUILD_TESTS=OFF
-DBUILD_EXTRAS=OFF
-DUSE_BOOST=OFF
-DTRY_COMPILE_HEADERS=OFF
-DUSE_STD_THREADS=ON
-DNO_CXX11=OFF
-DUSE_VALGRIND=OFF
-DUSE_MALLOC_COUNT=OFF
-DUSE_GCOV=OFF
-DUSE_TPIE=OFF
OPTIONS_DEBUG
-DSTXXL_DEBUG_ASSERTIONS=ON
OPTIONS_RELEASE
-DSTXXL_DEBUG_ASSERTIONS=OFF
)
vcpkg_install_cmake()
if(EXISTS ${CURRENT_PACKAGES_DIR}/cmake)
vcpkg_fixup_cmake_targets(CONFIG_PATH cmake)
endif()
if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake/${PORT})
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT})
endif()
vcpkg_replace_string(
${CURRENT_PACKAGES_DIR}/share/${PORT}/stxxl-config.cmake
"\${STXXL_CMAKE_DIR}/../include"
"\${STXXL_CMAKE_DIR}/../../include"
)
if(CMAKE_HOST_WIN32)
set(EXECUTABLE_SUFFIX ".exe")
else()
set(EXECUTABLE_SUFFIX "")
endif()
file(INSTALL ${CURRENT_PACKAGES_DIR}/bin/stxxl_tool${EXECUTABLE_SUFFIX}
DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
file(REMOVE_RECURSE
${CURRENT_PACKAGES_DIR}/debug/include
${CURRENT_PACKAGES_DIR}/debug/bin
${CURRENT_PACKAGES_DIR}/debug/share
${CURRENT_PACKAGES_DIR}/bin
)
# Handle copyright
configure_file(${SOURCE_PATH}/LICENSE_1_0.txt ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
vcpkg_copy_pdbs()