stk-code_catmod/lib/libsquish/CMakeLists.txt
Alayan 7d4e8433c1
Require Cmake 3.6 or higher
This gets rid of deprecation warnings. Cmake 3.6 has been out for almost 8 years by now, so this requirement should not cause undue trouble to people trying to compile the game.
2024-05-21 14:06:16 +02:00

106 lines
3.0 KiB
CMake

# cmake build file for squish
# by Stefan Roettger (snroettg@gmail.com)
# updated by Simon Brown (si@sjbrown.co.uk)
# features:
# uses -fopenmp when available
# use BUILD_SQUISH_WITH_OPENMP to override
# Unix and VS: SSE2 support is enabled by default
# use BUILD_SQUISH_WITH_SSE2 and BUILD_SQUISH_WITH_ALTIVEC to override
CMAKE_MINIMUM_REQUIRED(VERSION 3.6.0)
OPTION(BUILD_SQUISH_WITH_OPENMP "Build with OpenMP." OFF)
if((${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") OR
(${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm64") OR
(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64") OR
(${CMAKE_SYSTEM_PROCESSOR} MATCHES "powerpc") OR
(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64") OR
(${CMAKE_SYSTEM_PROCESSOR} MATCHES "s390") OR
(${CMAKE_SYSTEM_PROCESSOR} MATCHES "mips"))
OPTION(BUILD_SQUISH_WITH_SSE2 "Build with SSE2." OFF)
else()
OPTION(BUILD_SQUISH_WITH_SSE2 "Build with SSE2." ON)
endif()
OPTION(BUILD_SQUISH_WITH_ALTIVEC "Build with Altivec." OFF)
OPTION(BUILD_SHARED_LIBS "Build shared libraries." OFF)
OPTION(BUILD_SQUISH_EXTRA "Build extra source code." OFF)
IF (BUILD_SQUISH_WITH_OPENMP)
FIND_PACKAGE(OpenMP)
IF (OPENMP_FOUND)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
ADD_DEFINITIONS(-DSQUISH_USE_OPENMP)
ENDIF()
ENDIF()
IF (CMAKE_GENERATOR STREQUAL "Xcode")
#SET(CMAKE_OSX_ARCHITECTURES ${CMAKE_SYSTEM_PROCESSOR})
IF (BUILD_SQUISH_WITH_SSE2 AND WIN32)
ADD_DEFINITIONS(-DSQUISH_USE_SSE=2)
ENDIF (BUILD_SQUISH_WITH_SSE2 AND WIN32)
IF (BUILD_SQUISH_WITH_SSE2 AND NOT WIN32)
ADD_DEFINITIONS(-DSQUISH_USE_SSE=2 -msse2)
ENDIF (BUILD_SQUISH_WITH_SSE2 AND NOT WIN32)
IF (BUILD_SQUISH_WITH_ALTIVEC AND NOT WIN32)
ADD_DEFINITIONS(-DSQUISH_USE_ALTIVEC=1 -maltivec)
ENDIF (BUILD_SQUISH_WITH_ALTIVEC AND NOT WIN32)
ENDIF (CMAKE_GENERATOR STREQUAL "Xcode")
# A fix for MinGW compilation
IF (BUILD_SQUISH_WITH_SSE2 AND MINGW)
ADD_DEFINITIONS(-msse2)
ENDIF ()
SET(SQUISH_HDRS
squish.h
)
SET(SQUISH_SRCS
alpha.cpp
alpha.h
clusterfit.cpp
clusterfit.h
colourblock.cpp
colourblock.h
colourfit.cpp
colourfit.h
colourset.cpp
colourset.h
maths.cpp
maths.h
rangefit.cpp
rangefit.h
simd.h
simd_float.h
simd_sse.h
simd_ve.h
singlecolourfit.cpp
singlecolourfit.h
singlecolourlookup.inl
squish.cpp
)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
ADD_LIBRARY(squish ${SQUISH_SRCS} ${SQUISH_HDRS})
SET_TARGET_PROPERTIES(
squish PROPERTIES
PUBLIC_HEADER "${SQUISH_HDRS}"
VERSION 0.0
SOVERSION 0.0
DEBUG_POSTFIX "d"
XCODE_ATTRIBUTE_GCC_PREPROCESSOR_DEFINITIONS "$(SQUISH_CPP_$(CURRENT_ARCH))"
XCODE_ATTRIBUTE_OTHER_CFLAGS "$(SQUISH_CFLAGS_$(CURRENT_ARCH))"
XCODE_ATTRIBUTE_SQUISH_CPP_i386 "SQUISH_USE_SSE=2"
XCODE_ATTRIBUTE_SQUISH_CFLAGS_i386 ""
XCODE_ATTRIBUTE_SQUISH_CPP_ppc "SQUISH_USE_ALTIVEC=1"
XCODE_ATTRIBUTE_SQUISH_CFLAGS_ppc "-maltivec"
)