123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- # 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"
- )
|