sys-fs/dwarfs: unbundle libraries

Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
Alessandro Barbieri
2021-10-28 17:15:15 +02:00
parent b9e2f79ecb
commit fbbb893b13
3 changed files with 58 additions and 235 deletions

View File

@@ -9,19 +9,12 @@ inherit check-reqs cmake flag-o-matic python-single-r1
DESCRIPTION="A fast very high compression read-only FUSE file system"
HOMEPAGE="https://github.com/mhx/dwarfs"
SRC_URI="https://github.com/mhx/dwarfs/releases/download/v${PV}/${P}.tar.bz2"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS=""
KEYWORDS="~amd64"
IUSE="python +jemalloc test"
RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
PATCHES=( "${FILESDIR}/unbundle.patch" )
#TODO: unbundle libfsst
RDEPEND="
${PYTHON_DEPS}
@@ -36,7 +29,7 @@ RDEPEND="
dev-cpp/glog[gflags]
dev-cpp/parallel-hashmap:=
dev-cpp/sparsehash
dev-libs/boost[context,threads,python?]
dev-libs/boost[context,threads(+),python?]
dev-libs/double-conversion
dev-libs/fsst:=
dev-libs/libevent
@@ -61,24 +54,24 @@ BDEPEND="
test? ( dev-cpp/gtest )
"
CHECKREQS_DISK_BUILD="1300M"
DOCS=( "README.md" "CHANGES.md" "TODO" )
RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
PATCHES=( "${FILESDIR}/${P}-unbundle.patch" )
CHECKREQS_DISK_BUILD="1300M"
CMAKE_IN_SOURCE_BUILD=1
CMAKE_WARN_UNUSED_CLI=0
src_prepare(){
rm -r fsst zstd fbthrift folly xxHash parallel-hashmap || die
rm -r fsst zstd fbthrift/* folly xxHash parallel-hashmap || die
cmake_src_prepare
einfo "setting library path to $(get_libdir)"
sed "s/DESTINATION lib/DESTINATION $(get_libdir)/" -i CMakeLists.txt || die
}
src_configure(){
append-cxxflags "-I/usr/include"
einfo "setting configuration flags to:"
mycmakeargs=(
-DUSE_JEMALLOC=$(usex jemalloc ON OFF)
-DWITH_PYTHON=$(usex python ON OFF)
@@ -88,8 +81,7 @@ src_configure(){
-DPREFER_SYSTEM_GTEST=1
-DWITH_LEGACY_FUSE=0
)
if use python; then mycmakeargs+=( -DWITH_PYTHON_VERSION=${EPYTHON#python} ); fi
einfo ${mycmakeargs}
use python && mycmakeargs+=( "-DWITH_PYTHON_VERSION=${EPYTHON#python}" )
cmake_src_configure
}

View File

@@ -1,6 +1,6 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -142,8 +142,6 @@
@@ -151,8 +151,6 @@
ON
CACHE BOOL "only build thrift compiler")
@@ -9,15 +9,7 @@
if(NOT (ZSTD_FOUND AND PREFER_SYSTEM_ZSTD))
add_subdirectory(zstd/build/cmake EXCLUDE_FROM_ALL)
endif()
@@ -298,7 +296,6 @@
if(WITH_TESTS OR WITH_BENCHMARKS)
add_library(test_helpers test/test_helpers.cpp test/test_strings.cpp
test/loremipsum.cpp)
- target_link_libraries(test_helpers dwarfs folly)
set_property(TARGET test_helpers PROPERTY CXX_STANDARD 17)
endif()
@@ -364,70 +361,7 @@
@@ -383,23 +381,6 @@
list(
APPEND
@@ -38,24 +30,13 @@
-
-list(
- APPEND
- METADATA_THRIFT_SRC
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_constants.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_constants.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_data.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_data.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_for_each_field.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_layouts.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_layouts.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_metadata.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_metadata.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types.tcc
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types_custom_protocol.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_visit_union.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_visitation.h)
-
-add_custom_command(
METADATA_THRIFT_SRC
${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_constants.cpp
${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_constants.h
@@ -418,35 +399,20 @@
${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_visitation.h)
add_custom_command(
- OUTPUT ${FROZEN_THRIFT_SRC}
- COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift
- COMMAND
@@ -67,32 +48,33 @@
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/thrift/frozen.thrift)
-
-add_custom_command(
- OUTPUT ${METADATA_THRIFT_SRC}
- COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs
- COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/thrift/metadata.thrift
- thrift/dwarfs/metadata.thrift
- COMMAND
- cd ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs &&
OUTPUT ${METADATA_THRIFT_SRC}
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs
COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/thrift/metadata.thrift
thrift/dwarfs/metadata.thrift
COMMAND
cd ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs &&
- ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1 --gen mstch_cpp2:frozen2
- metadata.thrift
+ thrift1 --gen mstch_cpp2:frozen2
metadata.thrift
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1
- ${CMAKE_CURRENT_SOURCE_DIR}/thrift/metadata.thrift)
-
-list(
- APPEND
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/thrift/metadata.thrift)
list(
APPEND
INCLUDE_DIRS
- ${CMAKE_CURRENT_BINARY_DIR}/folly
- ${CMAKE_CURRENT_BINARY_DIR}/thrift
${CMAKE_CURRENT_BINARY_DIR}/thrift
- ${CMAKE_CURRENT_SOURCE_DIR}/folly
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift
${CMAKE_CURRENT_BINARY_DIR})
if(NOT (ZSTD_FOUND AND PREFER_SYSTEM_ZSTD))
@@ -445,39 +379,6 @@
list(APPEND INCLUDE_DIRS ${Jemalloc_INCLUDE_DIRS})
@@ -472,43 +438,24 @@
endif()
-add_library(
add_library(
- thrift_light
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/FieldRef.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/protocol/CompactProtocol.cpp
@@ -114,30 +96,32 @@
-target_include_directories(thrift_light PRIVATE ${INCLUDE_DIRS})
-
-add_library(
- metadata_thrift
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_layouts.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_data.cpp)
metadata_thrift
+ STATIC
${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_layouts.cpp
${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types.cpp
${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_data.cpp)
set_property(TARGET metadata_thrift PROPERTY CXX_STANDARD 17)
-
-set_property(TARGET metadata_thrift PROPERTY CXX_STANDARD 17)
-
-target_include_directories(metadata_thrift PRIVATE ${INCLUDE_DIRS})
+set_property(TARGET metadata_thrift PROPERTY POSITION_INDEPENDENT_CODE ON)
+set_property(TARGET metadata_thrift PROPERTY CXX_VISIBILITY_PRESET hidden)
+set_property(TARGET metadata_thrift PROPERTY VISIBILITY_INLINES_HIDDEN 1)
target_include_directories(metadata_thrift PRIVATE ${INCLUDE_DIRS})
-
-add_dependencies(metadata_thrift thrift_light)
-
+target_link_libraries(metadata_thrift fmt glog folly)
foreach(tgt dwarfs ${BINARY_TARGETS})
target_include_directories(
${tgt} SYSTEM
@@ -501,8 +402,6 @@
set_property(TARGET ${tgt} PROPERTY CXX_STANDARD_REQUIRED ON)
set_property(TARGET ${tgt} PROPERTY CXX_EXTENSIONS OFF)
PRIVATE ${Boost_INCLUDE_DIRS} ${Python3_INCLUDE_DIRS} ${INCLUDE_DIRS}
- ${CMAKE_CURRENT_SOURCE_DIR}/parallel-hashmap)
+ )
- add_dependencies(${tgt} metadata_thrift)
-
if(ENABLE_ASAN)
target_compile_options(${tgt} PRIVATE -fsanitize=address
-fno-omit-frame-pointer)
@@ -535,25 +434,8 @@
target_include_directories(${tgt} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
@@ -565,23 +512,11 @@
endif()
endforeach()
@@ -156,18 +140,18 @@
-
target_link_libraries(
dwarfs
- metadata_thrift
+ thriftprotocol
+ thriftfrozen2
metadata_thrift
- thrift_light
- folly
- fsst
folly
fsst
${Boost_LIBRARIES}
PkgConfig::LIBARCHIVE
PkgConfig::LIBLZ4
@@ -582,11 +464,6 @@
@@ -612,11 +547,6 @@
if(USE_JEMALLOC)
target_link_libraries(${tgt} ${Jemalloc_LIBRARIES})
endif()
- if(TARGET folly_exception_tracer)
- if(DWARFS_USE_EXCEPTION_TRACER)
- target_link_libraries(
- ${tgt} -Wl,--whole-archive folly_exception_tracer_base
- folly_exception_tracer -Wl,--no-whole-archive)

View File

@@ -1,153 +0,0 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -298,7 +298,7 @@
if(WITH_TESTS OR WITH_BENCHMARKS)
add_library(test_helpers test/test_helpers.cpp test/test_strings.cpp
test/loremipsum.cpp)
- target_link_libraries(test_helpers dwarfs folly)
+ target_link_libraries(test_helpers dwarfs)
set_property(TARGET test_helpers PROPERTY CXX_STANDARD 17)
endif()
@@ -364,70 +364,7 @@
list(
APPEND
- FROZEN_THRIFT_SRC
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_data.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_data.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_types.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_types.tcc
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_types.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_types_custom_protocol.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_constants.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_constants.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_metadata.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_metadata.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_visitation.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_for_each_field.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_visit_union.h)
-
-list(
- APPEND
- METADATA_THRIFT_SRC
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_constants.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_constants.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_data.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_data.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_for_each_field.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_layouts.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_layouts.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_metadata.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_metadata.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types.tcc
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types_custom_protocol.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_visit_union.h
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_visitation.h)
-
-add_custom_command(
- OUTPUT ${FROZEN_THRIFT_SRC}
- COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift
- COMMAND
- cp ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/thrift/frozen.thrift
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/
- COMMAND cd ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift &&
- ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1 --gen mstch_cpp2 frozen.thrift
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/thrift/frozen.thrift)
-
-add_custom_command(
- OUTPUT ${METADATA_THRIFT_SRC}
- COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs
- COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/thrift/metadata.thrift
- thrift/dwarfs/metadata.thrift
- COMMAND
- cd ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs &&
- ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1 --gen mstch_cpp2:frozen2
- metadata.thrift
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1
- ${CMAKE_CURRENT_SOURCE_DIR}/thrift/metadata.thrift)
-
-list(
- APPEND
INCLUDE_DIRS
- ${CMAKE_CURRENT_BINARY_DIR}/folly
- ${CMAKE_CURRENT_BINARY_DIR}/thrift
- ${CMAKE_CURRENT_SOURCE_DIR}/folly
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift
${CMAKE_CURRENT_BINARY_DIR})
if(NOT (ZSTD_FOUND AND PREFER_SYSTEM_ZSTD))
@@ -445,39 +382,6 @@
list(APPEND INCLUDE_DIRS ${Jemalloc_INCLUDE_DIRS})
endif()
-add_library(
- thrift_light
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/FieldRef.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/protocol/CompactProtocol.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/protocol/BinaryProtocol.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/protocol/DebugProtocol.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/protocol/JSONProtocolCommon.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/protocol/JSONProtocol.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp/protocol/TProtocolException.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp/util/VarintUtils.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/gen/module_types_cpp.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/frozen/Frozen.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/frozen/FrozenUtil.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/frozen/schema/MemorySchema.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_data.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_types.cpp)
-
-set_property(TARGET thrift_light PROPERTY CXX_STANDARD 17)
-
-target_include_directories(thrift_light PRIVATE ${INCLUDE_DIRS})
-
-add_library(
- metadata_thrift
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_layouts.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_data.cpp)
-
-set_property(TARGET metadata_thrift PROPERTY CXX_STANDARD 17)
-
-target_include_directories(metadata_thrift PRIVATE ${INCLUDE_DIRS})
-
-add_dependencies(metadata_thrift thrift_light)
-
foreach(tgt dwarfs ${BINARY_TARGETS})
target_include_directories(
${tgt} SYSTEM
@@ -501,8 +405,6 @@
set_property(TARGET ${tgt} PROPERTY CXX_STANDARD_REQUIRED ON)
set_property(TARGET ${tgt} PROPERTY CXX_EXTENSIONS OFF)
- add_dependencies(${tgt} metadata_thrift)
-
if(ENABLE_ASAN)
target_compile_options(${tgt} PRIVATE -fsanitize=address
-fno-omit-frame-pointer)
@@ -550,9 +452,6 @@
target_link_libraries(
dwarfs
- metadata_thrift
- thrift_light
- folly
fsst
${Boost_LIBRARIES}
PkgConfig::LIBARCHIVE
@@ -582,11 +481,6 @@
if(USE_JEMALLOC)
target_link_libraries(${tgt} ${Jemalloc_LIBRARIES})
endif()
- if(TARGET folly_exception_tracer)
- target_link_libraries(
- ${tgt} -Wl,--whole-archive folly_exception_tracer_base
- folly_exception_tracer -Wl,--no-whole-archive)
- endif()
endforeach()
if(STATIC_BUILD_DO_NOT_USE)