# Copyright 2016 The University of North Carolina at Chapel Hill # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Please send all BUG REPORTS to . # CMAKE_MINIMUM_REQUIRED(VERSION 3.1 FATAL_ERROR) PROJECT(FasTC CXX C) SET(FasTC_MAJOR_VERSION 0) SET(FasTC_MINOR_VERSION 0) SET(FasTC_PATCH_VERSION 1) SET(FasTC_VERSION ${FasTC_MAJOR_VERSION}.${FasTC_MINOR_VERSION}.${FasTC_PATCH_VERSION}) OPTION(TREAT_WARNINGS_AS_ERRORS "Treat compiler warnings as errors. We use the highest warnings levels for compilers." OFF) IF(MSVC) SET(MSVC_INSTALL_PATH "${PROJECT_SOURCE_DIR}/Windows") SET(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${MSVC_INSTALL_PATH}") IF(${MSVC_VERSION} EQUAL 1600) SET(MSVC_VERSION_STRING vc100) ELSEIF(${MSVC_VERSION} EQUAL 1700) SET(MSVC_VERSION_STRING vc110) ELSEIF(${MSVC_VERSION} EQUAL 1800) SET(MSVC_VERSION_STRING vc120) ELSEIF(${MSVC_VERSION} EQUAL 1900) SET(MSVC_VERSION_STRING vc140) ELSEIF(${MSVC_VERSION} EQUAL 1500) SET(MSVC_VERSION_STRING vc90) ELSEIF(${MSVC_VERSION} EQUAL 1400) SET(MSVC_VERSION_STRING vc80) ENDIF() # !FIXME! Actually detect compiler architecture version.... IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) SET(MSVC_ARCHITECTURE_STRING x64) ELSE() SET(MSVC_ARCHITECTURE_STRING x86) ENDIF() SET(MSVC_LIB_DIR "${MSVC_INSTALL_PATH}/lib/${MSVC_ARCHITECTURE_STRING}/${MSVC_VERSION_STRING}") SET(CMAKE_LIBRARY_PATH "${CMAKE_LIBRARY_PATH};${MSVC_LIB_DIR}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") ELSEIF(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fms-extensions") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fms-extensions") ENDIF(MSVC) IF(TREAT_WARNINGS_AS_ERRORS) IF(MSVC) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") ELSEIF(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") ENDIF(MSVC) ENDIF(TREAT_WARNINGS_AS_ERRORS) ###################################################################### ## ## Package definitions ## ###################################################################### SET(INCLUDE_INSTALL_DIR include CACHE INTERNAL "") SET(LIB_INSTALL_DIR lib CACHE INTERNAL "") SET(BIN_INSTALL_DIR bin CACHE INTERNAL "") SET(FASTC_DIRECTORIES Base ASTCEncoder ) FOREACH(DIR ${FASTC_DIRECTORIES}) ADD_SUBDIRECTORY(${DIR}) ENDFOREACH() SET(FasTC_LIBRARIES FasTCBase ASTCEncoder) target_include_directories(ASTCEncoder PUBLIC ./ASTCEncoder/include/ ./Base/include/)