@@ -6,7 +6,18 @@ cmake_minimum_required(VERSION 2.8.6)
6
6
7
7
project (brotli C)
8
8
9
- option (BROTLI_DISABLE_SHARED "do not build shared libraries" )
9
+ include (CheckCSourceCompiles)
10
+ check_c_source_compiles(
11
+ "#if defined(__EMSCRIPTEN__)
12
+ int main() {return 0;}
13
+ #endif"
14
+ BROTLI_EMSCRIPTEN
15
+ )
16
+ if (BROTLI_EMSCRIPTEN)
17
+ message ("-- Compiler is EMSCRIPTEN" )
18
+ else ()
19
+ message ("-- Compiler is not EMSCRIPTEN" )
20
+ endif ()
10
21
11
22
# If Brotli is being bundled in another project, we don't want to
12
23
# install anything. However, we want to let people override this, so
@@ -139,7 +150,7 @@ endfunction()
139
150
transform_sources_list("scripts/sources.lst" "${CMAKE_CURRENT_BINARY_DIR} /sources.lst.cmake" )
140
151
include ("${CMAKE_CURRENT_BINARY_DIR} /sources.lst.cmake" )
141
152
142
- if (BROTLI_DISABLE_SHARED )
153
+ if (BROTLI_EMSCRIPTEN )
143
154
set (BROTLI_SHARED_LIBS "" )
144
155
else ()
145
156
set (BROTLI_SHARED_LIBS brotlicommon brotlidec brotlienc)
@@ -167,12 +178,14 @@ foreach(lib IN LISTS BROTLI_SHARED_LIBS BROTLI_STATIC_LIBS)
167
178
set_property (TARGET ${lib} APPEND PROPERTY INCLUDE_DIRECTORIES ${BROTLI_INCLUDE_DIRS} )
168
179
set_target_properties (${lib} PROPERTIES
169
180
VERSION "${BROTLI_ABI_COMPATIBILITY} .${BROTLI_ABI_AGE} .${BROTLI_ABI_REVISION} "
170
- SOVERSION "${BROTLI_ABI_COMPATIBILITY} "
171
- POSITION_INDEPENDENT_CODE TRUE )
181
+ SOVERSION "${BROTLI_ABI_COMPATIBILITY} " )
182
+ if (NOT BROTLI_EMSCRIPTEN)
183
+ set_target_properties (${lib} PROPERTIES POSITION_INDEPENDENT_CODE TRUE )
184
+ endif ()
172
185
set_property (TARGET ${lib} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${BROTLI_INCLUDE_DIRS} " )
173
186
endforeach ()
174
187
175
- if (NOT BROTLI_DISABLE_SHARED )
188
+ if (NOT BROTLI_EMSCRIPTEN )
176
189
target_link_libraries (brotlidec brotlicommon)
177
190
target_link_libraries (brotlienc brotlicommon)
178
191
endif ()
@@ -196,6 +209,7 @@ add_executable(brotli ${BROTLI_CLI_C})
196
209
target_link_libraries (brotli ${BROTLI_LIBRARIES_STATIC} )
197
210
198
211
# Installation
212
+ if (NOT BROTLI_EMSCRIPTEN)
199
213
if (NOT BROTLI_BUNDLED_MODE)
200
214
install (
201
215
TARGETS brotli
@@ -220,7 +234,8 @@ if(NOT BROTLI_BUNDLED_MODE)
220
234
DIRECTORY ${BROTLI_INCLUDE_DIRS} /brotli
221
235
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} "
222
236
)
223
- endif ()
237
+ endif () # BROTLI_BUNDLED_MODE
238
+ endif () # BROTLI_EMSCRIPTEN
224
239
225
240
# Tests
226
241
@@ -376,14 +391,16 @@ transform_pc_file("scripts/libbrotlidec.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libb
376
391
377
392
transform_pc_file("scripts/libbrotlienc.pc.in" "${CMAKE_CURRENT_BINARY_DIR} /libbrotlienc.pc" "${BROTLI_VERSION} " )
378
393
394
+ if (NOT BROTLI_EMSCRIPTEN)
379
395
if (NOT BROTLI_BUNDLED_MODE)
380
396
install (FILES "${CMAKE_CURRENT_BINARY_DIR} /libbrotlicommon.pc"
381
397
DESTINATION "${CMAKE_INSTALL_LIBDIR} /pkgconfig" )
382
398
install (FILES "${CMAKE_CURRENT_BINARY_DIR} /libbrotlidec.pc"
383
399
DESTINATION "${CMAKE_INSTALL_LIBDIR} /pkgconfig" )
384
400
install (FILES "${CMAKE_CURRENT_BINARY_DIR} /libbrotlienc.pc"
385
401
DESTINATION "${CMAKE_INSTALL_LIBDIR} /pkgconfig" )
386
- endif ()
402
+ endif () # BROTLI_BUNDLED_MODE
403
+ endif () # BROTLI_EMSCRIPTEN
387
404
388
405
if (ENABLE_COVERAGE STREQUAL "yes" )
389
406
SETUP_TARGET_FOR_COVERAGE(coverage test coverage)
0 commit comments