mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
cmake: Fix cross-compilation on macOS
Co-authored-by: Owen Rudge <owen@owenrudge.net> Co-authored-by: Cosmin Truta <ctruta@gmail.com> Signed-off-by: Cosmin Truta <ctruta@gmail.com>
This commit is contained in:
parent
0fe598d2f6
commit
8a354b41e9
@ -16,6 +16,7 @@
|
|||||||
# Revised by Steve Robinson, 2020
|
# Revised by Steve Robinson, 2020
|
||||||
# Revised by Simon Hausmann, 2020
|
# Revised by Simon Hausmann, 2020
|
||||||
# Revised by Alex Gaynor, 2020
|
# Revised by Alex Gaynor, 2020
|
||||||
|
# Revised by Owen Rudge, 2020
|
||||||
# Revised by Gleb Mazovetskiy, 2021
|
# Revised by Gleb Mazovetskiy, 2021
|
||||||
|
|
||||||
# This code is released under the libpng license.
|
# This code is released under the libpng license.
|
||||||
@ -66,13 +67,24 @@ option(PNG_HARDWARE_OPTIMIZATIONS "Enable hardware optimizations" ON)
|
|||||||
set(PNG_PREFIX "" CACHE STRING "Prefix to add to the API function names")
|
set(PNG_PREFIX "" CACHE STRING "Prefix to add to the API function names")
|
||||||
set(DFA_XTRA "" CACHE FILEPATH "File containing extra configuration settings")
|
set(DFA_XTRA "" CACHE FILEPATH "File containing extra configuration settings")
|
||||||
|
|
||||||
|
# CMake currently sets CMAKE_SYSTEM_PROCESSOR to one of x86_64 or arm64 on macOS,
|
||||||
|
# based upon the OS architecture, not the target architecture. As such, we need
|
||||||
|
# to check CMAKE_OSX_ARCHITECTURES to identify which hardware-specific flags to
|
||||||
|
# enable. Note that this will fail if you attempt to build a universal binary in
|
||||||
|
# a single CMake invocation.
|
||||||
|
if (APPLE AND CMAKE_OSX_ARCHITECTURES)
|
||||||
|
set(TARGET_ARCH ${CMAKE_OSX_ARCHITECTURES})
|
||||||
|
else()
|
||||||
|
set(TARGET_ARCH ${CMAKE_SYSTEM_PROCESSOR})
|
||||||
|
endif()
|
||||||
|
|
||||||
if(PNG_HARDWARE_OPTIMIZATIONS)
|
if(PNG_HARDWARE_OPTIMIZATIONS)
|
||||||
|
|
||||||
# Set definitions and sources for ARM.
|
# Set definitions and sources for ARM.
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR
|
if(TARGET_ARCH MATCHES "^arm" OR
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
|
TARGET_ARCH MATCHES "^aarch64")
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm64" OR
|
if(TARGET_ARCH MATCHES "^arm64" OR
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
|
TARGET_ARCH MATCHES "^aarch64")
|
||||||
set(PNG_ARM_NEON_POSSIBLE_VALUES on off)
|
set(PNG_ARM_NEON_POSSIBLE_VALUES on off)
|
||||||
set(PNG_ARM_NEON "on"
|
set(PNG_ARM_NEON "on"
|
||||||
CACHE STRING "Enable ARM NEON optimizations: on|off; on is default")
|
CACHE STRING "Enable ARM NEON optimizations: on|off; on is default")
|
||||||
@ -103,8 +115,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set definitions and sources for PowerPC.
|
# Set definitions and sources for PowerPC.
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR
|
if(TARGET_ARCH MATCHES "^powerpc*" OR
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*")
|
TARGET_ARCH MATCHES "^ppc64*")
|
||||||
set(PNG_POWERPC_VSX_POSSIBLE_VALUES on off)
|
set(PNG_POWERPC_VSX_POSSIBLE_VALUES on off)
|
||||||
set(PNG_POWERPC_VSX "on"
|
set(PNG_POWERPC_VSX "on"
|
||||||
CACHE STRING "Enable POWERPC VSX optimizations: on|off; on is default")
|
CACHE STRING "Enable POWERPC VSX optimizations: on|off; on is default")
|
||||||
@ -126,8 +138,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set definitions and sources for Intel.
|
# Set definitions and sources for Intel.
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR
|
if(TARGET_ARCH MATCHES "^i?86" OR
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*")
|
TARGET_ARCH MATCHES "^x86_64*")
|
||||||
set(PNG_INTEL_SSE_POSSIBLE_VALUES on off)
|
set(PNG_INTEL_SSE_POSSIBLE_VALUES on off)
|
||||||
set(PNG_INTEL_SSE "on"
|
set(PNG_INTEL_SSE "on"
|
||||||
CACHE STRING "Enable INTEL_SSE optimizations: on|off; on is default")
|
CACHE STRING "Enable INTEL_SSE optimizations: on|off; on is default")
|
||||||
@ -149,8 +161,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set definitions and sources for MIPS.
|
# Set definitions and sources for MIPS.
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR
|
if(TARGET_ARCH MATCHES "mipsel*" OR
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*")
|
TARGET_ARCH MATCHES "mips64el*")
|
||||||
set(PNG_MIPS_MSA_POSSIBLE_VALUES on off)
|
set(PNG_MIPS_MSA_POSSIBLE_VALUES on off)
|
||||||
set(PNG_MIPS_MSA "on"
|
set(PNG_MIPS_MSA "on"
|
||||||
CACHE STRING "Enable MIPS_MSA optimizations: on|off; on is default")
|
CACHE STRING "Enable MIPS_MSA optimizations: on|off; on is default")
|
||||||
@ -174,26 +186,26 @@ endif()
|
|||||||
else(PNG_HARDWARE_OPTIMIZATIONS)
|
else(PNG_HARDWARE_OPTIMIZATIONS)
|
||||||
|
|
||||||
# Set definitions and sources for ARM.
|
# Set definitions and sources for ARM.
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR
|
if(TARGET_ARCH MATCHES "^arm" OR
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
|
TARGET_ARCH MATCHES "^aarch64")
|
||||||
add_definitions(-DPNG_ARM_NEON_OPT=0)
|
add_definitions(-DPNG_ARM_NEON_OPT=0)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set definitions and sources for PowerPC.
|
# Set definitions and sources for PowerPC.
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR
|
if(TARGET_ARCH MATCHES "^powerpc*" OR
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*")
|
TARGET_ARCH MATCHES "^ppc64*")
|
||||||
add_definitions(-DPNG_POWERPC_VSX_OPT=0)
|
add_definitions(-DPNG_POWERPC_VSX_OPT=0)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set definitions and sources for Intel.
|
# Set definitions and sources for Intel.
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR
|
if(TARGET_ARCH MATCHES "^i?86" OR
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*")
|
TARGET_ARCH MATCHES "^x86_64*")
|
||||||
add_definitions(-DPNG_INTEL_SSE_OPT=0)
|
add_definitions(-DPNG_INTEL_SSE_OPT=0)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set definitions and sources for MIPS.
|
# Set definitions and sources for MIPS.
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR
|
if(TARGET_ARCH MATCHES "mipsel*" OR
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*")
|
TARGET_ARCH MATCHES "mips64el*")
|
||||||
add_definitions(-DPNG_MIPS_MSA_OPT=0)
|
add_definitions(-DPNG_MIPS_MSA_OPT=0)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user