]> git.proxmox.com Git - ceph.git/blob - ceph/src/compressor/brotli/CMakeLists.txt
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / compressor / brotli / CMakeLists.txt
1 # brotli
2
3 set(brotli_sources
4 CompressionPluginBrotli.cc
5 BrotliCompressor.cc
6 )
7 include(ExternalProject)
8 ExternalProject_Add(brotli_ext
9 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/src/
10 GIT_REPOSITORY "https://github.com/google/brotli.git"
11 GIT_TAG "v1.0.7"
12 SOURCE_DIR ${CMAKE_BINARY_DIR}/src/brotli
13 CONFIGURE_COMMAND ./configure-cmake --disable-debug
14 INSTALL_COMMAND ""
15 BUILD_COMMAND $(MAKE)
16 BUILD_IN_SOURCE 1
17 INSTALL_COMMAND "")
18
19 ExternalProject_Add_Step(brotli_ext forcebuild
20 DEPENDEES configure
21 DEPENDERS build
22 COMMAND "true"
23 ALWAYS 1)
24
25 set(bortli_libs enc dec common)
26 file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/src/brotli/c/include")
27 foreach(lib ${bortli_libs})
28 add_library(brotli::${lib} STATIC IMPORTED)
29 add_dependencies(brotli::${lib} brotli_ext)
30 set_target_properties(brotli::${lib} PROPERTIES
31 INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}/src/brotli/c/include"
32 IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/src/brotli/libbrotli${lib}-static.a")
33 list(APPEND BROTLI_LIBRARIES brotli::${lib})
34 endforeach()
35
36 add_library(ceph_brotli SHARED ${brotli_sources})
37 list(REVERSE bortli_libs)
38 target_link_libraries(ceph_brotli PRIVATE ${BROTLI_LIBRARIES})
39 install(TARGETS ceph_brotli DESTINATION ${compressor_plugin_dir})