diff --git a/ports/stxxl/CONTROL b/ports/stxxl/CONTROL new file mode 100644 index 0000000000..e8541a27d1 --- /dev/null +++ b/ports/stxxl/CONTROL @@ -0,0 +1,3 @@ +Source: stxxl +Version: 2018-11-15 +Description: Standard Template Library for Extra Large Data Sets diff --git a/ports/stxxl/fix-include-dir.patch b/ports/stxxl/fix-include-dir.patch new file mode 100644 index 0000000000..043252fb69 --- /dev/null +++ b/ports/stxxl/fix-include-dir.patch @@ -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(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(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(TARGETS stxxl + EXPORT stxxl-targets + ARCHIVE DESTINATION ${INSTALL_LIB_DIR} diff --git a/ports/stxxl/portfile.cmake b/ports/stxxl/portfile.cmake new file mode 100644 index 0000000000..14d39d38e3 --- /dev/null +++ b/ports/stxxl/portfile.cmake @@ -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()