aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Christensen <philc@microsoft.com>2019-02-27 12:17:22 -0800
committerGitHub <noreply@github.com>2019-02-27 12:17:22 -0800
commit473dac7265b03c5fa7655495adfa99ca95288f8e (patch)
tree19e07baa95df2e4db1ee6cbb717b3d0af912331e
parent423c9a2e3a49c5af879482dda2f425ff20769236 (diff)
parentb8188cbc4ef81fd5f41f4c7601f49930322af941 (diff)
downloadvcpkg-473dac7265b03c5fa7655495adfa99ca95288f8e.tar.gz
vcpkg-473dac7265b03c5fa7655495adfa99ca95288f8e.zip
[stxxl] Add new port (#5254)
* [stxxl] Add new port * [stxxl] Fix missing include directory exporting * [stxxl] Fix STXXL_INCLUDE_DIRS
-rw-r--r--ports/stxxl/CONTROL3
-rw-r--r--ports/stxxl/fix-include-dir.patch31
-rw-r--r--ports/stxxl/portfile.cmake76
3 files changed, 110 insertions, 0 deletions
diff --git a/ports/stxxl/CONTROL b/ports/stxxl/CONTROL
new file mode 100644
index 000000000..e8541a27d
--- /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 000000000..043252fb6
--- /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_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}
diff --git a/ports/stxxl/portfile.cmake b/ports/stxxl/portfile.cmake
new file mode 100644
index 000000000..14d39d38e
--- /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()