mirror of
https://github.com/webmproject/libwebp.git
synced 2025-08-28 14:52:28 +02:00
Merge "Fix universal macOS binaries builds" into main
This commit is contained in:
@@ -18,11 +18,36 @@ function(webp_check_compiler_flag WEBP_SIMD_FLAG ENABLE_SIMD)
|
|||||||
unset(WEBP_HAVE_FLAG_${WEBP_SIMD_FLAG} CACHE)
|
unset(WEBP_HAVE_FLAG_${WEBP_SIMD_FLAG} CACHE)
|
||||||
cmake_push_check_state()
|
cmake_push_check_state()
|
||||||
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR})
|
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
|
# If building a universal binary on macOS, we need to check if one of the
|
||||||
|
# architectures supports the SIMD flag.
|
||||||
|
set(OSX_CHECK "")
|
||||||
|
if(APPLE AND CMAKE_OSX_ARCHITECTURES)
|
||||||
|
list(LENGTH CMAKE_OSX_ARCHITECTURES ARCH_COUNT)
|
||||||
|
if(ARCH_COUNT EQUAL 2)
|
||||||
|
set(OSX_CHECK "defined(WEBP_CAN_HAVE_${WEBP_SIMD_FLAG}) &&")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
check_c_source_compiles(
|
check_c_source_compiles(
|
||||||
"
|
"
|
||||||
#include \"${CMAKE_CURRENT_LIST_DIR}/../src/dsp/dsp.h\"
|
#include \"${CMAKE_CURRENT_LIST_DIR}/../src/dsp/dsp.h\"
|
||||||
|
#if defined(__APPLE__)
|
||||||
|
#if defined(__x86_64__)
|
||||||
|
#define WEBP_CAN_HAVE_SSE2
|
||||||
|
#define WEBP_CAN_HAVE_SSE41
|
||||||
|
#define WEBP_CAN_HAVE_AVX2
|
||||||
|
#elif defined(__aarch64__)
|
||||||
|
#define WEBP_CAN_HAVE_NEON
|
||||||
|
#endif
|
||||||
|
// MIPS intrinsics are not supported on macOS, but we have to define them
|
||||||
|
// so that the check happens.
|
||||||
|
#define WEBP_CAN_HAVE_MIPS32
|
||||||
|
#define WEBP_CAN_HAVE_MIPS_DSP_R2
|
||||||
|
#define WEBP_CAN_HAVE_MSA
|
||||||
|
#endif
|
||||||
int main(void) {
|
int main(void) {
|
||||||
#if !defined(WEBP_USE_${WEBP_SIMD_FLAG})
|
#if ${OSX_CHECK} !defined(WEBP_USE_${WEBP_SIMD_FLAG})
|
||||||
this is not valid code
|
this is not valid code
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user