Solvespace

Форк
0
/
libpng-macos-arm64.patch 
117 строк · 4.5 Кб
1
diff --git a/extlib/libpng/CMakeLists.txt b/extlib/libpng/CMakeLists.txt
2
index 42ff0f9025..6834ea332e 100644
3
--- a/extlib/libpng/CMakeLists.txt
4
+++ b/extlib/libpng/CMakeLists.txt
5
@@ -65,11 +65,22 @@ option(PNG_HARDWARE_OPTIMIZATIONS "Enable hardware optimizations" ON)
6
 set(PNG_PREFIX "" CACHE STRING "Prefix to add to the API function names")
7
 set(DFA_XTRA "" CACHE FILEPATH "File containing extra configuration settings")
8
 
9
+# CMake currently sets CMAKE_SYSTEM_PROCESSOR to one of x86_64 or arm64 on macOS,
10
+# based upon the OS architecture, not the target architecture. As such, we need
11
+# to check CMAKE_OSX_ARCHITECTURES to identify which hardware-specific flags to
12
+# enable. Note that this will fail if you attempt to build a universal binary in
13
+# a single cmake invocation.
14
+if (APPLE AND CMAKE_OSX_ARCHITECTURES)
15
+  set(TARGET_ARCH ${CMAKE_OSX_ARCHITECTURES})
16
+else()
17
+  set(TARGET_ARCH ${CMAKE_SYSTEM_PROCESSOR})
18
+endif()
19
+
20
 if(PNG_HARDWARE_OPTIMIZATIONS)
21
 
22
 # Set definitions and sources for ARM.
23
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR
24
-  CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
25
+if(TARGET_ARCH MATCHES "^arm" OR
26
+  TARGET_ARCH MATCHES "^aarch64")
27
   set(PNG_ARM_NEON_POSSIBLE_VALUES check on off)
28
   set(PNG_ARM_NEON "check"
29
       CACHE STRING "Enable ARM NEON optimizations: check|on|off; check is default")
30
@@ -95,8 +106,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR
31
 endif()
32
 
33
 # Set definitions and sources for PowerPC.
34
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR
35
-   CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*")
36
+if(TARGET_ARCH MATCHES "^powerpc*" OR
37
+   TARGET_ARCH MATCHES "^ppc64*")
38
   set(PNG_POWERPC_VSX_POSSIBLE_VALUES on off)
39
   set(PNG_POWERPC_VSX "on"
40
       CACHE STRING "Enable POWERPC VSX optimizations: on|off; on is default")
41
@@ -118,8 +129,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR
42
 endif()
43
 
44
 # Set definitions and sources for Intel.
45
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR
46
-   CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*")
47
+if(TARGET_ARCH MATCHES "^i?86" OR
48
+   TARGET_ARCH MATCHES "^x86_64*")
49
   set(PNG_INTEL_SSE_POSSIBLE_VALUES on off)
50
   set(PNG_INTEL_SSE "on"
51
       CACHE STRING "Enable INTEL_SSE optimizations: on|off; on is default")
52
@@ -141,8 +152,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR
53
 endif()
54
 
55
 # Set definitions and sources for MIPS.
56
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR
57
-   CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*")
58
+if(TARGET_ARCH MATCHES "mipsel*" OR
59
+   TARGET_ARCH MATCHES "mips64el*")
60
   set(PNG_MIPS_MSA_POSSIBLE_VALUES on off)
61
   set(PNG_MIPS_MSA "on"
62
       CACHE STRING "Enable MIPS_MSA optimizations: on|off; on is default")
63
@@ -166,26 +177,26 @@ endif()
64
 else(PNG_HARDWARE_OPTIMIZATIONS)
65
 
66
 # Set definitions and sources for ARM.
67
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR
68
-   CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
69
+if(TARGET_ARCH MATCHES "^arm" OR
70
+   TARGET_ARCH MATCHES "^aarch64")
71
   add_definitions(-DPNG_ARM_NEON_OPT=0)
72
 endif()
73
 
74
 # Set definitions and sources for PowerPC.
75
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR
76
-   CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*")
77
+if(TARGET_ARCH MATCHES "^powerpc*" OR
78
+   TARGET_ARCH MATCHES "^ppc64*")
79
   add_definitions(-DPNG_POWERPC_VSX_OPT=0)
80
 endif()
81
 
82
 # Set definitions and sources for Intel.
83
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR
84
-   CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*")
85
+if(TARGET_ARCH MATCHES "^i?86" OR
86
+   TARGET_ARCH MATCHES "^x86_64*")
87
   add_definitions(-DPNG_INTEL_SSE_OPT=0)
88
 endif()
89
 
90
 # Set definitions and sources for MIPS.
91
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR
92
-   CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*")
93
+if(TARGET_ARCH MATCHES "mipsel*" OR
94
+   TARGET_ARCH MATCHES "mips64el*")
95
   add_definitions(-DPNG_MIPS_MSA_OPT=0)
96
 endif()
97

98
@@ -412,19 +412,11 @@ else()
99
                DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/scripts/checksym.awk"
100
                        "${CMAKE_CURRENT_SOURCE_DIR}/scripts/symbols.def")
101
 
102
-  add_custom_target(symbol-check
103
-                    DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk")
104
-
105
   generate_copy("${CMAKE_CURRENT_BINARY_DIR}/scripts/sym.out"
106
                 "${CMAKE_CURRENT_BINARY_DIR}/libpng.sym")
107
   generate_copy("${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out"
108
                 "${CMAKE_CURRENT_BINARY_DIR}/libpng.vers")
109

110
-  add_custom_target(genvers
111
-                    DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/libpng.vers")
112
-  add_custom_target(gensym
113
-                    DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/libpng.sym")
114
-
115
   add_custom_target("genprebuilt"
116
                     COMMAND "${CMAKE_COMMAND}"
117
                             "-DOUTPUT=scripts/pnglibconf.h.prebuilt"
118

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.