Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Utilities/cmliblzma/CMakeLists.txt
3148 views
1
PROJECT(CMLIBLZMA C)
2
3
include(CheckCSourceCompiles)
4
include(CheckIncludeFile)
5
include(CheckSymbolExists)
6
include(CheckTypeSize)
7
include(TestBigEndian)
8
9
if(WIN32)
10
add_definitions(-DMYTHREAD_VISTA)
11
else()
12
add_definitions(-DMYTHREAD_POSIX)
13
endif()
14
15
CHECK_INCLUDE_FILE(byteswap.h HAVE_BYTESWAP_H)
16
CHECK_INCLUDE_FILE(limits.h HAVE_LIMITS_H)
17
CHECK_INCLUDE_FILE(memory.h HAVE_MEMORY_H)
18
CHECK_INCLUDE_FILE(strings.h HAVE_STRINGS_H)
19
set(HAVE_STRING_H 1)
20
CHECK_INCLUDE_FILE(sys/sysctl.h HAVE_SYS_SYSCTL_H)
21
22
CHECK_INCLUDE_FILE(stdbool.h HAVE_STDBOOL_H)
23
if(NOT HAVE_STDBOOL_H)
24
CHECK_TYPE_SIZE(_Bool _BOOL)
25
endif()
26
27
CHECK_C_SOURCE_COMPILES (
28
"#include<byteswap.h>\nint main(void){bswap_16(0);return 0;}"
29
HAVE_BSWAP_16)
30
CHECK_C_SOURCE_COMPILES (
31
"#include<byteswap.h>\nint main(void){bswap_32(0);return 0;}"
32
HAVE_BSWAP_32)
33
CHECK_C_SOURCE_COMPILES (
34
"#include<byteswap.h>\nint main(void){bswap_64(0);return 0;}"
35
HAVE_BSWAP_64)
36
37
TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
38
39
set(HAVE_CHECK_CRC64 1)
40
set(HAVE_CHECK_SHA256 1)
41
42
set(HAVE_DECODER_ARM 1)
43
set(HAVE_DECODER_ARMTHUMB 1)
44
set(HAVE_DECODER_DELTA 1)
45
set(HAVE_DECODER_IA64 1)
46
set(HAVE_DECODER_LZMA1 1)
47
set(HAVE_DECODER_LZMA2 1)
48
set(HAVE_DECODER_POWERPC 1)
49
set(HAVE_DECODER_SPARC 1)
50
set(HAVE_DECODER_X86 1)
51
52
set(HAVE_ENCODER_ARM 1)
53
set(HAVE_ENCODER_ARMTHUMB 1)
54
set(HAVE_ENCODER_DELTA 1)
55
set(HAVE_ENCODER_IA64 1)
56
set(HAVE_ENCODER_LZMA1 1)
57
set(HAVE_ENCODER_LZMA2 1)
58
set(HAVE_ENCODER_POWERPC 1)
59
set(HAVE_ENCODER_SPARC 1)
60
set(HAVE_ENCODER_X86 1)
61
62
set(HAVE_MF_BT2 1)
63
set(HAVE_MF_BT3 1)
64
set(HAVE_MF_BT4 1)
65
set(HAVE_MF_HC3 1)
66
set(HAVE_MF_HC4 1)
67
68
SET(LZMA_SRCS
69
common/mythread.h
70
common/sysdefs.h
71
common/tuklib_cpucores.c
72
common/tuklib_cpucores.h
73
common/tuklib_integer.h
74
liblzma/check/check.c
75
liblzma/check/crc32_fast.c
76
liblzma/check/crc32_table.c
77
liblzma/check/crc64_fast.c
78
liblzma/check/crc64_table.c
79
liblzma/check/sha256.c
80
liblzma/common/alone_decoder.c
81
liblzma/common/alone_encoder.c
82
liblzma/common/auto_decoder.c
83
liblzma/common/block_buffer_decoder.c
84
liblzma/common/block_buffer_encoder.c
85
liblzma/common/block_decoder.c
86
liblzma/common/block_encoder.c
87
liblzma/common/block_header_decoder.c
88
liblzma/common/block_header_encoder.c
89
liblzma/common/block_util.c
90
liblzma/common/common.c
91
liblzma/common/easy_buffer_encoder.c
92
liblzma/common/easy_decoder_memusage.c
93
liblzma/common/easy_encoder.c
94
liblzma/common/easy_encoder_memusage.c
95
liblzma/common/easy_preset.c
96
liblzma/common/filter_buffer_decoder.c
97
liblzma/common/filter_buffer_encoder.c
98
liblzma/common/filter_common.c
99
liblzma/common/filter_decoder.c
100
liblzma/common/filter_encoder.c
101
liblzma/common/filter_flags_decoder.c
102
liblzma/common/filter_flags_encoder.c
103
liblzma/common/hardware_cputhreads.c
104
liblzma/common/index.c
105
liblzma/common/index_decoder.c
106
liblzma/common/index_encoder.c
107
liblzma/common/index_hash.c
108
liblzma/common/outqueue.c
109
liblzma/common/stream_buffer_decoder.c
110
liblzma/common/stream_buffer_encoder.c
111
liblzma/common/stream_decoder.c
112
liblzma/common/stream_encoder.c
113
liblzma/common/stream_encoder_mt.c
114
liblzma/common/stream_flags_common.c
115
liblzma/common/stream_flags_decoder.c
116
liblzma/common/stream_flags_encoder.c
117
liblzma/common/vli_decoder.c
118
liblzma/common/vli_encoder.c
119
liblzma/common/vli_size.c
120
liblzma/delta/delta_common.c
121
liblzma/delta/delta_decoder.c
122
liblzma/delta/delta_encoder.c
123
liblzma/lz/lz_decoder.c
124
liblzma/lz/lz_encoder.c
125
liblzma/lz/lz_encoder_mf.c
126
liblzma/lzma/fastpos_table.c
127
liblzma/lzma/lzma2_decoder.c
128
liblzma/lzma/lzma2_encoder.c
129
liblzma/lzma/lzma_decoder.c
130
liblzma/lzma/lzma_encoder.c
131
liblzma/lzma/lzma_encoder_optimum_fast.c
132
liblzma/lzma/lzma_encoder_optimum_normal.c
133
liblzma/lzma/lzma_encoder_presets.c
134
liblzma/rangecoder/price_table.c
135
liblzma/simple/arm.c
136
liblzma/simple/armthumb.c
137
liblzma/simple/ia64.c
138
liblzma/simple/powerpc.c
139
liblzma/simple/simple_coder.c
140
liblzma/simple/simple_decoder.c
141
liblzma/simple/simple_encoder.c
142
liblzma/simple/sparc.c
143
liblzma/simple/x86.c
144
)
145
146
CONFIGURE_FILE(config.h.in config.h @ONLY)
147
148
INCLUDE_DIRECTORIES(
149
"${CMLIBLZMA_SOURCE_DIR}/common"
150
"${CMLIBLZMA_SOURCE_DIR}/liblzma/api"
151
"${CMLIBLZMA_SOURCE_DIR}/liblzma/check"
152
"${CMLIBLZMA_SOURCE_DIR}/liblzma/common"
153
"${CMLIBLZMA_SOURCE_DIR}/liblzma/delta"
154
"${CMLIBLZMA_SOURCE_DIR}/liblzma/lz"
155
"${CMLIBLZMA_SOURCE_DIR}/liblzma/lzma"
156
"${CMLIBLZMA_SOURCE_DIR}/liblzma/rangecoder"
157
"${CMLIBLZMA_SOURCE_DIR}/liblzma/simple"
158
"${CMLIBLZMA_BINARY_DIR}"
159
)
160
161
# Disable warnings to avoid changing 3rd party code.
162
IF(CMAKE_C_COMPILER_ID MATCHES
163
"^(GNU|LCC|Clang|AppleClang|IBMClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
164
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
165
ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
166
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
167
ENDIF()
168
169
# Activate POSIX APIs.
170
if(CMAKE_SYSTEM_NAME MATCHES "^(AIX|OS400)$")
171
add_definitions(-D_ALL_SOURCE)
172
endif()
173
if(NOT CMAKE_SYSTEM_NAME MATCHES "BSD|Darwin|Windows")
174
add_definitions(-D_XOPEN_SOURCE=600)
175
endif()
176
177
ADD_LIBRARY(cmliblzma STATIC ${LZMA_SRCS})
178
179
# Disable inline assembly in a case where it does not compile.
180
if(CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_C_FLAGS MATCHES "-ftrapv")
181
set_property(SOURCE liblzma/lzma/lzma_decoder.c PROPERTY COMPILE_DEFINITIONS LZMA_RANGE_DECODER_CONFIG=0)
182
endif()
183
184
IF(CMAKE_C_COMPILER_ID STREQUAL "XL")
185
# Disable the XL compiler optimizer because it causes crashes
186
# and other bad behavior in liblzma code.
187
SET_PROPERTY(TARGET cmliblzma PROPERTY COMPILE_FLAGS "-qnooptimize")
188
ELSEIF((CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "LCC") AND
189
CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
190
# Disable the old GNU compiler optimizer.
191
SET_PROPERTY(TARGET cmliblzma PROPERTY COMPILE_FLAGS "-O0")
192
ENDIF()
193
194
if(WIN32 AND CMake_BUILD_PCH)
195
target_precompile_headers(cmliblzma PRIVATE "common/mythread.h")
196
endif()
197
198
INSTALL(FILES COPYING DESTINATION ${CMAKE_DOC_DIR}/cmliblzma)
199
200