2017-12-25 01:00:10 -05:00
|
|
|
# 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
|
|
|
|
|
2024-05-21 08:06:16 -04:00
|
|
|
CMAKE_MINIMUM_REQUIRED(VERSION 3.6.0)
|
2017-12-25 01:00:10 -05:00
|
|
|
|
|
|
|
OPTION(BUILD_SQUISH_WITH_OPENMP "Build with OpenMP." OFF)
|
|
|
|
|
2019-07-12 02:53:55 -04:00
|
|
|
if((${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") OR
|
|
|
|
(${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm64") OR
|
2019-04-05 15:43:34 -04:00
|
|
|
(${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"))
|
2018-05-25 15:08:00 -04:00
|
|
|
OPTION(BUILD_SQUISH_WITH_SSE2 "Build with SSE2." OFF)
|
|
|
|
else()
|
|
|
|
OPTION(BUILD_SQUISH_WITH_SSE2 "Build with SSE2." ON)
|
|
|
|
endif()
|
|
|
|
|
2017-12-25 01:00:10 -05:00
|
|
|
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")
|
2021-05-21 05:47:40 -04:00
|
|
|
#SET(CMAKE_OSX_ARCHITECTURES ${CMAKE_SYSTEM_PROCESSOR})
|
2018-01-12 04:47:18 -05:00
|
|
|
IF (BUILD_SQUISH_WITH_SSE2 AND WIN32)
|
|
|
|
ADD_DEFINITIONS(-DSQUISH_USE_SSE=2)
|
|
|
|
ENDIF (BUILD_SQUISH_WITH_SSE2 AND WIN32)
|
2017-12-25 01:00:10 -05:00
|
|
|
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")
|
|
|
|
|
2018-01-29 16:14:43 -05:00
|
|
|
# A fix for MinGW compilation
|
|
|
|
IF (BUILD_SQUISH_WITH_SSE2 AND MINGW)
|
|
|
|
ADD_DEFINITIONS(-msse2)
|
|
|
|
ENDIF ()
|
|
|
|
|
2017-12-25 01:00:10 -05:00
|
|
|
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"
|
|
|
|
)
|