File: brotli.cmake

package info (click to toggle)
apitrace 11.1%2Brepack-1.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 13,620 kB
  • sloc: cpp: 183,110; python: 33,685; ansic: 25,073; sh: 143; makefile: 88
file content (68 lines) | stat: -rw-r--r-- 1,982 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
    set (BROTLI_OS "OS_LINUX")
elseif (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
    set (BROTLI_OS "OS_FREEBSD")
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
    set (BROTLI_OS "DOS_MACOSX")
endif ()

add_convenience_library(brotli_common STATIC EXCLUDE_FROM_ALL
    brotli/c/common/dictionary.c
    brotli/c/common/transform.c
)

target_include_directories (brotli_common PUBLIC
    ${CMAKE_CURRENT_SOURCE_DIR}/brotli/c/include
)

add_convenience_library (brotli_dec STATIC EXCLUDE_FROM_ALL
    brotli/c/dec/bit_reader.c
    brotli/c/dec/decode.c
    brotli/c/dec/huffman.c
    brotli/c/dec/state.c
)

add_convenience_library (brotli_enc STATIC EXCLUDE_FROM_ALL
    brotli/c/enc/backward_references.c
    brotli/c/enc/backward_references_hq.c
    brotli/c/enc/bit_cost.c
    brotli/c/enc/block_splitter.c
    brotli/c/enc/brotli_bit_stream.c
    brotli/c/enc/cluster.c
    brotli/c/enc/compress_fragment.c
    brotli/c/enc/compress_fragment_two_pass.c
    brotli/c/enc/dictionary_hash.c
    brotli/c/enc/encode.c
    brotli/c/enc/encoder_dict.c
    brotli/c/enc/entropy_encode.c
    brotli/c/enc/histogram.c
    brotli/c/enc/literal_cost.c
    brotli/c/enc/memory.c
    brotli/c/enc/metablock.c
    brotli/c/enc/static_dict.c
    brotli/c/enc/utf8_util.c
)

target_compile_definitions (brotli_common PRIVATE ${BROTLI_OS})
target_compile_definitions (brotli_dec    PRIVATE ${BROTLI_OS})
target_compile_definitions (brotli_enc    PRIVATE ${BROTLI_OS})

target_link_libraries (brotli_dec PUBLIC brotli_common)
target_link_libraries (brotli_enc PUBLIC brotli_common)

target_optimize (brotli_common)
target_optimize (brotli_dec)
target_optimize (brotli_enc)

install (
    FILES brotli/LICENSE
    DESTINATION ${DOC_INSTALL_DIR}
    RENAME LICENSE-brotli.txt
)

if (NOT BROTLIDEC_FOUND)
    add_library (PkgConfig::BROTLIDEC ALIAS brotli_dec)
endif ()
if (NOT BROTLIENC_FOUND)
    add_library (PkgConfig::BROTLIENC ALIAS brotli_enc)
endif ()