diff options
Diffstat (limited to 'vcpkg/ports/stxxl')
| -rw-r--r-- | vcpkg/ports/stxxl/0001-fix-visual-studio.patch | 289 | ||||
| -rw-r--r-- | vcpkg/ports/stxxl/fix-include-dir.patch | 31 | ||||
| -rw-r--r-- | vcpkg/ports/stxxl/portfile.cmake | 53 | ||||
| -rw-r--r-- | vcpkg/ports/stxxl/vcpkg.json | 17 |
4 files changed, 390 insertions, 0 deletions
diff --git a/vcpkg/ports/stxxl/0001-fix-visual-studio.patch b/vcpkg/ports/stxxl/0001-fix-visual-studio.patch new file mode 100644 index 0000000..287b0ae --- /dev/null +++ b/vcpkg/ports/stxxl/0001-fix-visual-studio.patch @@ -0,0 +1,289 @@ +diff --git a/include/stxxl/bits/algo/ksort.h b/include/stxxl/bits/algo/ksort.h +index 33ec8cf..8101741 100644 +--- a/include/stxxl/bits/algo/ksort.h ++++ b/include/stxxl/bits/algo/ksort.h +@@ -299,11 +299,7 @@ create_runs( + template <typename BlockType, + typename prefetcher_type, + typename KeyExtractor> +-struct run_cursor2_cmp : public std::binary_function< +- run_cursor2<BlockType, prefetcher_type>, +- run_cursor2<BlockType, prefetcher_type>, +- bool +- > ++struct run_cursor2_cmp
+ { + typedef run_cursor2<BlockType, prefetcher_type> cursor_type; + KeyExtractor keyobj; +@@ -327,7 +323,7 @@ private: + }; + + template <typename RecordType, typename KeyExtractor> +-class key_comparison : public std::binary_function<RecordType, RecordType, bool> ++class key_comparison
+ { + KeyExtractor ke; + +diff --git a/include/stxxl/bits/algo/sort_helper.h b/include/stxxl/bits/algo/sort_helper.h +index 524e40d..69234c4 100644 +--- a/include/stxxl/bits/algo/sort_helper.h ++++ b/include/stxxl/bits/algo/sort_helper.h +@@ -51,7 +51,6 @@ struct trigger_entry + + template <typename TriggerEntryType, typename ValueCmp> + struct trigger_entry_cmp +- : public std::binary_function<TriggerEntryType, TriggerEntryType, bool> + { + typedef TriggerEntryType trigger_entry_type; + ValueCmp cmp; +@@ -67,11 +66,6 @@ template <typename BlockType, + typename PrefetcherType, + typename ValueCmp> + struct run_cursor2_cmp +- : public std::binary_function< +- run_cursor2<BlockType, PrefetcherType>, +- run_cursor2<BlockType, PrefetcherType>, +- bool +- > + { + typedef BlockType block_type; + typedef PrefetcherType prefetcher_type; +diff --git a/include/stxxl/bits/compat/unique_ptr.h b/include/stxxl/bits/compat/unique_ptr.h +index 9df12ff..7110246 100644 +--- a/include/stxxl/bits/compat/unique_ptr.h ++++ b/include/stxxl/bits/compat/unique_ptr.h +@@ -22,12 +22,7 @@ STXXL_BEGIN_NAMESPACE + + template <class Type> + struct compat_unique_ptr { +-#if __cplusplus >= 201103L && ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100) >= 40400) + typedef std::unique_ptr<Type> result; +-#else +- // auto_ptr is inherently broken and is deprecated by unique_ptr in c++0x +- typedef std::auto_ptr<Type> result; +-#endif + }; + + STXXL_END_NAMESPACE +diff --git a/include/stxxl/bits/containers/btree/leaf.h b/include/stxxl/bits/containers/btree/leaf.h +index d7c619f..969adfd 100644 +--- a/include/stxxl/bits/containers/btree/leaf.h ++++ b/include/stxxl/bits/containers/btree/leaf.h +@@ -66,7 +66,7 @@ public: + typedef node_cache<normal_leaf, btree_type> leaf_cache_type; + + public: +- struct value_compare : public std::binary_function<value_type, value_type, bool> ++ struct value_compare
+ { + key_compare comp; + +diff --git a/include/stxxl/bits/containers/btree/node.h b/include/stxxl/bits/containers/btree/node.h +index 13dec7b..c26cfff 100644 +--- a/include/stxxl/bits/containers/btree/node.h ++++ b/include/stxxl/bits/containers/btree/node.h +@@ -71,7 +71,7 @@ public: + typedef node_cache<normal_node, btree_type> node_cache_type; + + private: +- struct value_compare : public std::binary_function<value_type, value_type, bool> ++ struct value_compare
+ { + key_compare comp; + +diff --git a/include/stxxl/bits/containers/hash_map/hash_map.h b/include/stxxl/bits/containers/hash_map/hash_map.h +index 0759bd2..edcc2ac 100644 +--- a/include/stxxl/bits/containers/hash_map/hash_map.h ++++ b/include/stxxl/bits/containers/hash_map/hash_map.h +@@ -1258,10 +1258,7 @@ protected: + * lexicographically by <hash-value, key> Note: the hash-value has already + * been computed. + */ +- struct Cmp : public std::binary_function< +- std::pair<internal_size_type, value_type>, +- std::pair<internal_size_type, value_type>, bool +- > ++ struct Cmp
+ { + self_type& map_; + Cmp(self_type& map) : map_(map) { } +@@ -1520,7 +1517,7 @@ protected: + + public: + //! Construct an equality predicate from the comparison operator +- struct equal_to : public std::binary_function<key_type, key_type, bool> ++ struct equal_to
+ { + //! reference to hash_map + const self_type& m_map; +diff --git a/include/stxxl/bits/io/wbtl_file.h b/include/stxxl/bits/io/wbtl_file.h +index 933a216..d9f0674 100644 +--- a/include/stxxl/bits/io/wbtl_file.h ++++ b/include/stxxl/bits/io/wbtl_file.h +@@ -65,7 +65,7 @@ class wbtl_file : public disk_queued_file + size_type curpos; + request_ptr backend_request; + +- struct FirstFit : public std::binary_function<place, offset_type, bool> ++ struct FirstFit
+ { + bool operator () ( + const place& entry, +diff --git a/include/stxxl/bits/mng/block_alloc.h b/include/stxxl/bits/mng/block_alloc.h +index 19ade8b..dac408f 100644 +--- a/include/stxxl/bits/mng/block_alloc.h ++++ b/include/stxxl/bits/mng/block_alloc.h +@@ -138,7 +138,7 @@ private: + perm[i] = i; + + stxxl::random_number<random_uniform_fast> rnd; +- std::random_shuffle(perm.begin(), perm.end(), rnd _STXXL_FORCE_SEQUENTIAL); ++ std::shuffle(perm.begin(), perm.end(), std::mt19937(std::random_device()()));
+ } + + public: +diff --git a/include/stxxl/bits/mng/block_alloc_interleaved.h b/include/stxxl/bits/mng/block_alloc_interleaved.h +index a82ee34..83925a3 100644 +--- a/include/stxxl/bits/mng/block_alloc_interleaved.h ++++ b/include/stxxl/bits/mng/block_alloc_interleaved.h +@@ -93,7 +93,7 @@ struct interleaved_RC : public interleaved_striping + perms[i][j] = j; + + random_number<random_uniform_fast> rnd; +- std::random_shuffle(perms[i].begin(), perms[i].end(), rnd _STXXL_FORCE_SEQUENTIAL); ++ std::shuffle(perms[i].begin(), perms[i].end(), std::mt19937(std::random_device()()));
+ } + } + +diff --git a/include/stxxl/bits/mng/disk_allocator.h b/include/stxxl/bits/mng/disk_allocator.h +index 59ad085..a4e534e 100644 +--- a/include/stxxl/bits/mng/disk_allocator.h ++++ b/include/stxxl/bits/mng/disk_allocator.h +@@ -44,7 +44,7 @@ class disk_allocator : private noncopyable + { + typedef std::pair<stxxl::int64, stxxl::int64> place; + +- struct first_fit : public std::binary_function<place, stxxl::int64, bool> ++ struct first_fit
+ { + bool operator () ( + const place& entry, +@@ -189,7 +189,7 @@ void disk_allocator::new_blocks(BID<BlockSize>* begin, BID<BlockSize>* end) + + sortseq::iterator space; + space = std::find_if(free_space.begin(), free_space.end(), +- bind2nd(first_fit(), requested_size) _STXXL_FORCE_SEQUENTIAL); ++ std::bind(first_fit(), std::placeholders::_1, requested_size) _STXXL_FORCE_SEQUENTIAL);
+ + if (space == free_space.end() && requested_size == BlockSize) + { +@@ -207,7 +207,7 @@ void disk_allocator::new_blocks(BID<BlockSize>* begin, BID<BlockSize>* end) + grow_file(BlockSize); + + space = std::find_if(free_space.begin(), free_space.end(), +- bind2nd(first_fit(), requested_size) _STXXL_FORCE_SEQUENTIAL); ++ std::bind(first_fit(), std::placeholders::_1, requested_size) _STXXL_FORCE_SEQUENTIAL);
+ } + + if (space != free_space.end()) +diff --git a/include/stxxl/bits/msvc_compatibility.h b/include/stxxl/bits/msvc_compatibility.h +index c2c937d..0cb22e5 100644 +--- a/include/stxxl/bits/msvc_compatibility.h ++++ b/include/stxxl/bits/msvc_compatibility.h +@@ -19,10 +19,12 @@ + + #include <cmath> + ++#if _MSC_VER < 1900 + inline double log2(double x) + { + return (log(x) / log(2.)); + } ++#endif // ^^^ _MSC_VER < 1900 + + // http://msdn.microsoft.com/en-us/library/2ts7cx93.aspx + #define snprintf _snprintf +diff --git a/include/stxxl/bits/parallel.h b/include/stxxl/bits/parallel.h +index d973861..c858d87 100644 +--- a/include/stxxl/bits/parallel.h ++++ b/include/stxxl/bits/parallel.h +@@ -121,7 +121,6 @@ using __gnu_parallel::random_shuffle; + #elif STXXL_PARALLEL + + using std::sort; +-using std::random_shuffle; + + #else + +diff --git a/include/stxxl/bits/parallel/base.h b/include/stxxl/bits/parallel/base.h +index 141d515..1c970f9 100644 +--- a/include/stxxl/bits/parallel/base.h ++++ b/include/stxxl/bits/parallel/base.h +@@ -33,7 +33,6 @@ namespace parallel { + */ + template <class Predicate, typename first_argument_type, typename second_argument_type> + class binary_negate +- : public std::binary_function<first_argument_type, second_argument_type, bool> + { + protected: + Predicate pred; +@@ -80,7 +79,7 @@ static inline void decode2(lcas_t x, int& a, int& b) + * Constructs predicate for equality from strict weak ordering predicate + */ + template <class Comparator, typename T1, typename T2> +-class equal_from_less : public std::binary_function<T1, T2, bool> ++class equal_from_less
+ { + private: + Comparator& comp; +@@ -126,7 +125,7 @@ median_of_three_iterators(RandomAccessIterator a, RandomAccessIterator b, + + /** Similar to std::equal_to, but allows two different types. */ + template <typename T1, typename T2> +-struct equal_to : std::binary_function<T1, T2, bool> ++struct equal_to
+ { + bool operator () (const T1& t1, const T2& t2) const + { +@@ -136,7 +135,7 @@ struct equal_to : std::binary_function<T1, T2, bool> + + /** Similar to std::less, but allows two different types. */ + template <typename T1, typename T2> +-struct less : std::binary_function<T1, T2, bool> ++struct less
+ { + bool operator () (const T1& t1, const T2& t2) const + { +diff --git a/include/stxxl/bits/parallel/multiseq_selection.h b/include/stxxl/bits/parallel/multiseq_selection.h +index 57e7599..f41d9aa 100644 +--- a/include/stxxl/bits/parallel/multiseq_selection.h ++++ b/include/stxxl/bits/parallel/multiseq_selection.h +@@ -35,7 +35,6 @@ namespace parallel { + //! Compare a pair of types lexcigraphically, ascending. + template <typename T1, typename T2, typename Comparator> + class lexicographic +- : public std::binary_function<std::pair<T1, T2>, std::pair<T1, T2>, bool> + { + protected: + Comparator& m_comp; +@@ -60,7 +59,6 @@ public: + //! Compare a pair of types lexcigraphically, descending. + template <typename T1, typename T2, typename Comparator> + class lexicographic_rev +- : public std::binary_function<std::pair<T1, T2>, std::pair<T1, T2>, bool> + { + protected: + Comparator& m_comp; +diff --git a/lib/io/wbtl_file.cpp b/lib/io/wbtl_file.cpp +index 310d76a..5f1a766 100644 +--- a/lib/io/wbtl_file.cpp ++++ b/lib/io/wbtl_file.cpp +@@ -304,7 +304,7 @@ wbtl_file::offset_type wbtl_file::get_next_write_block() + // mapping_lock has to be aquired by caller + sortseq::iterator space = + std::find_if(free_space.begin(), free_space.end(), +- bind2nd(FirstFit(), write_block_size) _STXXL_FORCE_SEQUENTIAL); ++ std::bind(FirstFit(), std::placeholders::_1, write_block_size) _STXXL_FORCE_SEQUENTIAL);
+ + if (space != free_space.end()) + { diff --git a/vcpkg/ports/stxxl/fix-include-dir.patch b/vcpkg/ports/stxxl/fix-include-dir.patch new file mode 100644 index 0000000..043252f --- /dev/null +++ b/vcpkg/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/vcpkg/ports/stxxl/portfile.cmake b/vcpkg/ports/stxxl/portfile.cmake new file mode 100644 index 0000000..0a173f5 --- /dev/null +++ b/vcpkg/ports/stxxl/portfile.cmake @@ -0,0 +1,53 @@ +if(VCPKG_TARGET_IS_WINDOWS) + vcpkg_check_linkage(ONLY_STATIC_LIBRARY) +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 + 0001-fix-visual-studio.patch +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DINSTALL_CMAKE_DIR:STRING=share/${PORT} + -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} + -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_cmake_install() +vcpkg_copy_pdbs() +vcpkg_fixup_pkgconfig() +vcpkg_cmake_config_fixup() + +vcpkg_copy_tools(TOOL_NAMES stxxl_tool AUTO_CLEAN) + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" +) + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") diff --git a/vcpkg/ports/stxxl/vcpkg.json b/vcpkg/ports/stxxl/vcpkg.json new file mode 100644 index 0000000..4b43f28 --- /dev/null +++ b/vcpkg/ports/stxxl/vcpkg.json @@ -0,0 +1,17 @@ +{ + "name": "stxxl", + "version-date": "2018-11-15", + "port-version": 9, + "description": "Standard Template Library for Extra Large Data Sets", + "supports": "!uwp", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |