set(WARNFLAGS "/W3")
set(WARNFLAGS_MAINTAINER "/W4")
set(WARNFLAGS_DISABLE "")
- if(BASEARCH_X86_FOUND)
+ if(BASEARCH_ARM_FOUND)
+ add_definitions(-D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE)
+ set(NEONFLAG "/arch:VFPv4")
+ elseif(BASEARCH_X86_FOUND)
if(NOT ${ARCH} MATCHES "x86_64")
set(SSE2FLAG "/arch:SSE2")
endif()
- elseif(BASEARCH_ARM_FOUND)
- add_definitions(-D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE)
- set(NEONFLAG "/arch:VFPv4")
endif()
if(WITH_NATIVE_INSTRUCTIONS)
message(STATUS "Ignoring WITH_NATIVE_INSTRUCTIONS; not supported on this configuration")
endif()
if(NOT NATIVEFLAG)
if (__GNUC__)
- if(BASEARCH_X86_FOUND)
- set(AVX2FLAG "-mavx2")
- set(SSE2FLAG "-msse2")
- set(SSE4FLAG "-msse4")
- set(PCLMULFLAG "-mpclmul")
- elseif(BASEARCH_ARM_FOUND)
+ if(BASEARCH_ARM_FOUND)
# Check support for ARM floating point
execute_process(COMMAND ${CMAKE_C_COMPILER} "-dumpmachine"
OUTPUT_VARIABLE GCC_MACHINE)
endif()
# ACLE
set(ACLEFLAG "-march=armv8-a+crc")
+ elseif(BASEARCH_X86_FOUND)
+ set(AVX2FLAG "-mavx2")
+ set(SSE2FLAG "-msse2")
+ set(SSE4FLAG "-msse4")
+ set(PCLMULFLAG "-mpclmul")
endif()
endif()
else()
- if(BASEARCH_X86_FOUND)
- set(AVX2FLAG ${NATIVEFLAG})
- set(SSE2FLAG ${NATIVEFLAG})
- set(SSE4FLAG ${NATIVEFLAG})
- set(PCLMULFLAG ${NATIVEFLAG})
- elseif(BASEARCH_ARM_FOUND)
+ if(BASEARCH_ARM_FOUND)
set(ACLEFLAG "${NATIVEFLAG}")
if("${ARCH}" MATCHES "aarch64")
set(NEONFLAG "${NATIVEFLAG}")
endif()
+ elseif(BASEARCH_X86_FOUND)
+ set(AVX2FLAG ${NATIVEFLAG})
+ set(SSE2FLAG ${NATIVEFLAG})
+ set(SSE4FLAG ${NATIVEFLAG})
+ set(PCLMULFLAG ${NATIVEFLAG})
endif()
endif()
endif()
# Set architecture alignment requirements
-if(BASEARCH_X86_FOUND OR BASEARCH_ARM_FOUND)
+if(BASEARCH_ARM_FOUND OR BASEARCH_X86_FOUND)
if(NOT DEFINED UNALIGNED_OK)
set(UNALIGNED_OK TRUE)
endif()
set(ZLIB_ARCH_SRCS)
set(ZLIB_ARCH_HDRS)
set(ARCHDIR "arch/generic")
-if(BASEARCH_X86_FOUND)
+if(BASEARCH_ARM_FOUND)
+ set(ARCHDIR "arch/arm")
+elseif(BASEARCH_S360_FOUND AND "${ARCH}" MATCHES "s390x")
+ set(ARCHDIR "arch/s390")
+elseif(BASEARCH_X86_FOUND)
set(ARCHDIR "arch/x86")
if(NOT ${ARCH} MATCHES "x86_64")
add_feature_info(SSE2 1 "Support the SSE2 instruction set, using \"${SSE2FLAG}\"")
endif()
-elseif(BASEARCH_ARM_FOUND)
- set(ARCHDIR "arch/arm")
-elseif(BASEARCH_S360_FOUND AND "${ARCH}" MATCHES "s390x")
- set(ARCHDIR "arch/s390")
else()
message(STATUS "No optimized architecture: using ${ARCHDIR}")
endif()
endif()
add_feature_info(ACLE_CRC 1 "Support CRC hash generation using the ACLE instruction set, using \"${ACLEFLAG}\"")
endif()
+ elseif(BASEARCH_S360_FOUND AND "${ARCH}" MATCHES "s390x")
+ if(WITH_DFLTCC_DEFLATE OR WITH_DFLTCC_INFLATE)
+ list(APPEND ZLIB_ARCH_SRCS ${ARCHDIR}/dfltcc_common.c)
+ add_definitions(-DGZBUFSIZE=262144)
+ endif()
+ if(WITH_DFLTCC_DEFLATE)
+ add_definitions(-DS390_DFLTCC_DEFLATE)
+ list(APPEND ZLIB_ARCH_SRCS ${ARCHDIR}/dfltcc_deflate.c)
+ endif()
+ if(WITH_DFLTCC_INFLATE)
+ add_definitions(-DS390_DFLTCC_INFLATE)
+ list(APPEND ZLIB_ARCH_SRCS ${ARCHDIR}/dfltcc_inflate.c)
+ endif()
elseif(BASEARCH_X86_FOUND)
add_definitions(-DX86_CPUID)
list(APPEND ZLIB_ARCH_SRCS ${ARCHDIR}/x86.c)
add_feature_info(PCLMUL_CRC 1 "Support CRC hash generation using PCLMULQDQ, using \"${PCLMULFLAG} ${SSE4FLAG}\"")
endif()
endif()
- elseif(BASEARCH_S360_FOUND AND "${ARCH}" MATCHES "s390x")
- if(WITH_DFLTCC_DEFLATE OR WITH_DFLTCC_INFLATE)
- list(APPEND ZLIB_ARCH_SRCS ${ARCHDIR}/dfltcc_common.c)
- add_definitions(-DGZBUFSIZE=262144)
- endif()
- if(WITH_DFLTCC_DEFLATE)
- add_definitions(-DS390_DFLTCC_DEFLATE)
- list(APPEND ZLIB_ARCH_SRCS ${ARCHDIR}/dfltcc_deflate.c)
- endif()
- if(WITH_DFLTCC_INFLATE)
- add_definitions(-DS390_DFLTCC_INFLATE)
- list(APPEND ZLIB_ARCH_SRCS ${ARCHDIR}/dfltcc_inflate.c)
- endif()
endif()
endif()
message(STATUS "Architecture-specific source files: ${ZLIB_ARCH_SRCS}")