aboutsummaryrefslogtreecommitdiff
path: root/ports/woff2/0001-unofficial-brotli.patch
blob: a0163a02c151e0e37cd18ab262bb1b26a523e169 (plain)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ecfbb83..7fb7a15 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,13 +34,23 @@ endif()
 # Find Brotli dependencies
 set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
 find_package(BrotliDec)
-if (NOT BROTLIDEC_FOUND)
-    message(FATAL_ERROR "librotlidec is needed to build woff2.")
-endif ()
 find_package(BrotliEnc)
-if (NOT BROTLIENC_FOUND)
-    message(FATAL_ERROR "librotlienc is needed to build woff2.")
-endif ()
+if(BROTLIDEC_FOUND AND BROTLIENC_FOUND)
+  include_directories("${BROTLIDEC_INCLUDE_DIRS}" "${BROTLIENC_INCLUDE_DIRS}")
+  set(WOFF2_BROTLIDEC libbrotlidec)
+  set(WOFF2_BROTLIENC libbrotlienc)
+  set(WOFF2_BORTLIDEC_LIBRARIES "${BROTLIDEC_LIBRARIES}")
+  set(WOFF2_BORTLIENC_LIBRARIES "${BROTLIENC_LIBRARIES}")
+else()
+  find_package(unofficial-brotli REQUIRED)
+  if(TARGET unofficial::brotli::brotlidec-static)
+    set(BROTLI_LINKAGE -static)
+  endif()
+  set(WOFF2_BROTLIDEC unofficial::brotli::brotlidec${BROTLI_LINKAGE})
+  set(WOFF2_BROTLIENC unofficial::brotli::brotlienc${BROTLI_LINKAGE})
+  set(WOFF2_BORTLIDEC_LIBRARIES unofficial::brotli::brotlidec${BROTLI_LINKAGE} unofficial::brotli::brotlicommon${BROTLI_LINKAGE})
+  set(WOFF2_BORTLIENC_LIBRARIES unofficial::brotli::brotlienc${BROTLI_LINKAGE} unofficial::brotli::brotlicommon${BROTLI_LINKAGE})
+endif()
 
 # Set compiler flags
 if (NOT CANONICAL_PREFIXES)
@@ -63,9 +73,8 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAG}")
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAG}")
 set(CMAKE_CXX_STANDARD 11)
 
-# Set search path for our private/public headers as well as Brotli headers
-include_directories("src" "include"
-                    "${BROTLIDEC_INCLUDE_DIRS}" "${BROTLIENC_INCLUDE_DIRS}")
+# Set search path for our private/public headers
+include_directories("src" "include")
 
 # Common part used by decoder and encoder
 add_library(woff2common
@@ -77,7 +86,7 @@ add_library(woff2common
 add_library(woff2dec
             src/woff2_dec.cc
             src/woff2_out.cc)
-target_link_libraries(woff2dec woff2common "${BROTLIDEC_LIBRARIES}")
+target_link_libraries(woff2dec woff2common ${WOFF2_BORTLIDEC_LIBRARIES})
 add_executable(woff2_decompress src/woff2_decompress.cc)
 target_link_libraries(woff2_decompress woff2dec)
 
@@ -88,7 +97,7 @@ add_library(woff2enc
             src/normalize.cc
             src/transform.cc
             src/woff2_enc.cc)
-target_link_libraries(woff2enc woff2common "${BROTLIENC_LIBRARIES}")
+target_link_libraries(woff2enc woff2common ${WOFF2_BORTLIENC_LIBRARIES})
 add_executable(woff2_compress src/woff2_compress.cc)
 target_link_libraries(woff2_compress woff2enc)
 
@@ -246,7 +255,7 @@ generate_pkg_config ("${CMAKE_CURRENT_BINARY_DIR}/libwoff2dec.pc"
   DESCRIPTION "WOFF2 decoder library"
   URL "https://github.com/google/woff2"
   VERSION "${WOFF2_VERSION}"
-  DEPENDS libbrotlidec
+  DEPENDS ${WOFF2_BROTLIDEC}
   DEPENDS_PRIVATE libwoff2common
   LIBRARIES woff2dec)
 
@@ -255,7 +264,7 @@ generate_pkg_config ("${CMAKE_CURRENT_BINARY_DIR}/libwoff2enc.pc"
   DESCRIPTION "WOFF2 encoder library"
   URL "https://github.com/google/woff2"
   VERSION "${WOFF2_VERSION}"
-  DEPENDS libbrotlienc
+  DEPENDS ${WOFF2_BROTLIENC}
   DEPENDS_PRIVATE libwoff2common
   LIBRARIES woff2enc)
 
@@ -264,6 +273,7 @@ if (NOT BUILD_SHARED_LIBS)
   install(
     TARGETS woff2_decompress woff2_compress woff2_info
     RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+    BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}"
   )
 endif()