97 lines
2.7 KiB
CMake
97 lines
2.7 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
|
|
# Xcode: builds universal binaries, uses SSE2 on i386 and Altivec on ppc
|
|
# 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 2.8.3)
|
|
|
|
OPTION(BUILD_SQUISH_WITH_OPENMP "Build with OpenMP." OFF)
|
|
|
|
OPTION(BUILD_SQUISH_WITH_SSE2 "Build with SSE2." ON)
|
|
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 "i386;ppc")
|
|
ELSE (CMAKE_GENERATOR STREQUAL "Xcode")
|
|
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"
|
|
)
|