mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-14 14:59:52 -04:00
Initial support for building on Windows
This commit is contained in:
parent
4901d0b03a
commit
41c975f26f
126
CMakeLists.txt
126
CMakeLists.txt
@ -186,21 +186,25 @@ if(STATIC_BUILD_DO_NOT_USE)
|
|||||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .a)
|
set(CMAKE_FIND_LIBRARY_SUFFIXES .a)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig)
|
||||||
|
|
||||||
if(STATIC_BUILD_DO_NOT_USE)
|
if(STATIC_BUILD_DO_NOT_USE)
|
||||||
list(APPEND PKG_CONFIG_EXECUTABLE "--static")
|
if (PKG_CONFIG_FOUND)
|
||||||
|
list(APPEND PKG_CONFIG_EXECUTABLE "--static")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
pkg_check_modules(FUSE IMPORTED_TARGET fuse>=2.9.9)
|
if(PKG_CONFIG_FOUND)
|
||||||
pkg_check_modules(FUSE3 IMPORTED_TARGET fuse3>=3.10.5)
|
pkg_check_modules(FUSE IMPORTED_TARGET fuse>=2.9.9)
|
||||||
pkg_check_modules(LIBLZ4 IMPORTED_TARGET liblz4>=1.9.3)
|
pkg_check_modules(FUSE3 IMPORTED_TARGET fuse3>=3.10.5)
|
||||||
pkg_check_modules(LIBLZMA IMPORTED_TARGET liblzma>=5.2.5)
|
pkg_check_modules(LIBLZ4 IMPORTED_TARGET liblz4>=1.9.3)
|
||||||
pkg_check_modules(LIBBROTLIDEC IMPORTED_TARGET libbrotlidec>=1.0.9)
|
pkg_check_modules(LIBLZMA IMPORTED_TARGET liblzma>=5.2.5)
|
||||||
pkg_check_modules(LIBBROTLIENC IMPORTED_TARGET libbrotlienc>=1.0.9)
|
pkg_check_modules(LIBBROTLIDEC IMPORTED_TARGET libbrotlidec>=1.0.9)
|
||||||
pkg_check_modules(LIBARCHIVE IMPORTED_TARGET libarchive>=3.6.0)
|
pkg_check_modules(LIBBROTLIENC IMPORTED_TARGET libbrotlienc>=1.0.9)
|
||||||
pkg_check_modules(ZSTD IMPORTED_TARGET libzstd>=1.5.2)
|
pkg_check_modules(LIBARCHIVE IMPORTED_TARGET libarchive>=3.6.0)
|
||||||
pkg_check_modules(XXHASH IMPORTED_TARGET libxxhash>=0.8.1)
|
pkg_check_modules(ZSTD IMPORTED_TARGET libzstd>=1.5.2)
|
||||||
|
pkg_check_modules(XXHASH IMPORTED_TARGET libxxhash>=0.8.1)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(XXHASH_FOUND)
|
if(XXHASH_FOUND)
|
||||||
list(APPEND CMAKE_REQUIRED_LIBRARIES PkgConfig::XXHASH)
|
list(APPEND CMAKE_REQUIRED_LIBRARIES PkgConfig::XXHASH)
|
||||||
@ -215,8 +219,12 @@ if(XXHASH_FOUND)
|
|||||||
XXHASH_VERSION_OK)
|
XXHASH_VERSION_OK)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT FUSE_FOUND AND NOT FUSE3_FOUND)
|
if(WIN32)
|
||||||
message(FATAL_ERROR "No FUSE or FUSE3 library found")
|
# TODO
|
||||||
|
else()
|
||||||
|
if(NOT FUSE_FOUND AND NOT FUSE3_FOUND)
|
||||||
|
message(FATAL_ERROR "No FUSE or FUSE3 library found")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_TESTS)
|
if(WITH_TESTS)
|
||||||
@ -303,28 +311,31 @@ if(NOT
|
|||||||
AND PREFER_SYSTEM_XXHASH))
|
AND PREFER_SYSTEM_XXHASH))
|
||||||
add_library(xxhash xxHash/xxhash.c)
|
add_library(xxhash xxHash/xxhash.c)
|
||||||
|
|
||||||
target_compile_options(
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR
|
||||||
xxhash
|
"${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
PRIVATE -Wall
|
target_compile_options(
|
||||||
-Wextra
|
xxhash
|
||||||
-Wconversion
|
PRIVATE -Wall
|
||||||
-Wcast-qual
|
-Wextra
|
||||||
-Wcast-align
|
-Wconversion
|
||||||
-Wshadow
|
-Wcast-qual
|
||||||
-Wstrict-aliasing=1
|
-Wcast-align
|
||||||
-Wswitch-enum
|
-Wshadow
|
||||||
-Wdeclaration-after-statement
|
-Wstrict-aliasing=1
|
||||||
-Wstrict-prototypes
|
-Wswitch-enum
|
||||||
-Wundef
|
-Wdeclaration-after-statement
|
||||||
-Wpointer-arith
|
-Wstrict-prototypes
|
||||||
-Wformat-security
|
-Wundef
|
||||||
-Wvla
|
-Wpointer-arith
|
||||||
-Wformat=2
|
-Wformat-security
|
||||||
-Winit-self
|
-Wvla
|
||||||
-Wfloat-equal
|
-Wformat=2
|
||||||
-Wwrite-strings
|
-Winit-self
|
||||||
-Wredundant-decls
|
-Wfloat-equal
|
||||||
-Wstrict-overflow=2)
|
-Wwrite-strings
|
||||||
|
-Wredundant-decls
|
||||||
|
-Wstrict-overflow=2)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
list(
|
list(
|
||||||
@ -567,26 +578,31 @@ list(
|
|||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${FROZEN_THRIFT_SRC}
|
OUTPUT ${FROZEN_THRIFT_SRC}
|
||||||
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift
|
||||||
COMMAND
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/thrift/frozen.thrift
|
||||||
cp ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/thrift/frozen.thrift
|
${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/
|
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1
|
||||||
COMMAND cd ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift &&
|
-o ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1 --gen mstch_cpp2 frozen.thrift
|
--gen mstch_cpp2
|
||||||
|
frozen.thrift
|
||||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/thrift/frozen.thrift)
|
${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/thrift/frozen.thrift
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift
|
||||||
|
)
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${METADATA_THRIFT_SRC}
|
OUTPUT ${METADATA_THRIFT_SRC}
|
||||||
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs
|
||||||
COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/thrift/metadata.thrift
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/thrift/metadata.thrift
|
||||||
thrift/dwarfs/metadata.thrift
|
${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/metadata.thrift
|
||||||
COMMAND
|
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1
|
||||||
cd ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs &&
|
-o ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1 --gen mstch_cpp2:frozen2
|
--gen mstch_cpp2:frozen2
|
||||||
metadata.thrift
|
metadata.thrift
|
||||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/thrift/metadata.thrift)
|
${CMAKE_CURRENT_SOURCE_DIR}/thrift/metadata.thrift
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs
|
||||||
|
)
|
||||||
|
|
||||||
list(
|
list(
|
||||||
APPEND
|
APPEND
|
||||||
@ -634,6 +650,7 @@ add_library(
|
|||||||
${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_types.cpp)
|
${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_types.cpp)
|
||||||
|
|
||||||
set_property(TARGET thrift_light PROPERTY CXX_STANDARD 20)
|
set_property(TARGET thrift_light PROPERTY CXX_STANDARD 20)
|
||||||
|
target_link_libraries(thrift_light folly)
|
||||||
|
|
||||||
target_include_directories(thrift_light PRIVATE ${INCLUDE_DIRS})
|
target_include_directories(thrift_light PRIVATE ${INCLUDE_DIRS})
|
||||||
|
|
||||||
@ -671,7 +688,10 @@ foreach(tgt dwarfs dwarfs_compression dwarfs_tool ${BINARY_TARGETS} ${MAIN_TARGE
|
|||||||
target_compile_definitions(${tgt} PRIVATE DWARFS_USE_EXCEPTION_TRACER)
|
target_compile_definitions(${tgt} PRIVATE DWARFS_USE_EXCEPTION_TRACER)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_compile_options(${tgt} PRIVATE -Wall -Wextra -pedantic)
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR
|
||||||
|
"${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
|
target_compile_options(${tgt} PRIVATE -Wall -Wextra -pedantic)
|
||||||
|
endif()
|
||||||
|
|
||||||
set_property(TARGET ${tgt} PROPERTY CXX_STANDARD 20)
|
set_property(TARGET ${tgt} PROPERTY CXX_STANDARD 20)
|
||||||
set_property(TARGET ${tgt} PROPERTY CXX_STANDARD_REQUIRED ON)
|
set_property(TARGET ${tgt} PROPERTY CXX_STANDARD_REQUIRED ON)
|
||||||
@ -745,7 +765,9 @@ if(LIBBROTLIDEC_FOUND AND LIBBROTLIENC_FOUND)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT STATIC_BUILD_DO_NOT_USE)
|
if(NOT STATIC_BUILD_DO_NOT_USE)
|
||||||
target_link_libraries(dwarfs PkgConfig::LIBARCHIVE)
|
if(LIBARCHIVE_FOUND)
|
||||||
|
target_link_libraries(dwarfs PkgConfig::LIBARCHIVE)
|
||||||
|
endif()
|
||||||
endif(NOT STATIC_BUILD_DO_NOT_USE)
|
endif(NOT STATIC_BUILD_DO_NOT_USE)
|
||||||
|
|
||||||
if(ZSTD_FOUND AND PREFER_SYSTEM_ZSTD)
|
if(ZSTD_FOUND AND PREFER_SYSTEM_ZSTD)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user