katie/mkspecs/mkspecs.cmake
Ivailo Monev 803e2710c6 make configuration paths cached
that makes them overridable even from external projects (which can be bad
since it can make translations be installed in the wrong path) but for
those who build Katie itself it would be easier to change the paths from
the CMake GUI or their IDE

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2016-05-03 17:00:51 +00:00

125 lines
5.1 KiB
CMake

string(TIMESTAMP KATIE_DATE "%Y-%m-%d")
set(KATIE_MAJOR "4")
set(KATIE_MINOR "9")
set(KATIE_MICRO "0")
set(KATIE_HEX "0x040900")
set(KATIE_NAME "Katie")
set(KATIE_VERSION "${KATIE_MAJOR}.${KATIE_MINOR}.${KATIE_MICRO}")
set(KATIE_STRING "katie ${KATIE_MAJOR}.${KATIE_MINOR}.${KATIE_MICRO}")
set(KATIE_BUGREPORT "xakepa10@gmail.com")
set(KATIE_URL "http://github.com/fluxer/katie")
set(QT_LICENSE "Open Source")
set(QT_PRODUCT "AwesomeSauce") # it's not a bug, it's a feature!
# KatieConfig overrides that
if(NOT KATIE_MKSPECS_DIR)
set(KATIE_MKSPECS_DIR ${CMAKE_SOURCE_DIR}/mkspecs)
endif()
# TODO: more platforms/architectures support
include_directories(${KATIE_MKSPECS_DIR})
if(NOT KATIE_PLATFORM)
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
include_directories(${KATIE_MKSPECS_DIR}/linux)
set(KATIE_PLATFORM "linux")
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
include_directories(${KATIE_MKSPECS_DIR}/win32)
set(KATIE_PLATFORM "win32")
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
include_directories(${KATIE_MKSPECS_DIR}/mac)
set(KATIE_PLATFORM "mac")
elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
include_directories(${KATIE_MKSPECS_DIR}/freebsd)
set(KATIE_PLATFORM "freebsd")
elseif(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
include_directories(${KATIE_MKSPECS_DIR}/openbsd)
set(KATIE_PLATFORM "openbsd")
else()
message(FATAL_ERROR "Unknown platform '${CMAKE_SYSTEM_NAME}'")
endif()
endif()
if(NOT KATIE_COMPILER)
if (CMAKE_CXX_COMPILER_ID MATCHES "(Clang|AppleClang)")
set(KATIE_COMPILER "clang")
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(KATIE_COMPILER "gcc")
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
set(KATIE_COMPILER "icc")
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
set(KATIE_COMPILER "msvc")
else()
message(FATAL_ERROR "Unknown compiler '${CMAKE_CXX_COMPILER_ID}'")
endif()
endif()
if(CMAKE_SYSTEM_PROCESSOR)
string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
elseif(CMAKE_HOST_SYSTEM_PROCESSOR)
string(TOLOWER ${CMAKE_HOST_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
endif()
if(NOT KATIE_ARCHITECTURE)
if(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
set(KATIE_ARCHITECTURE "arm")
elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips")
set(KATIE_ARCHITECTURE "mips")
elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64)")
set(KATIE_ARCHITECTURE "x86_64")
elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|i[3-6]86)")
set(KATIE_ARCHITECTURE "i386")
else()
message(FATAL_ERROR "Unknown CPU '${CMAKE_SYSTEM_PROCESSOR}'")
endif()
endif()
# FIXME: Plan9 does not supporting dynamic libraries
if(NOT KATIE_TYPE)
set(KATIE_TYPE SHARED)
katie_definition(-DQT_SHARED)
endif()
if(KATIE_PLATFORM MATCHES "(win32|wince)" AND NOT KATIE_TYPE STREQUAL SHARED)
katie_definition(-DQT_MAKEDLL)
endif()
if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
katie_definition(-DQT_NO_DEBUG -DNDEBUG)
endif()
include(${KATIE_MKSPECS_DIR}/tests/tests.cmake)
if(NOT KATIE_KEY)
set(KATIE_KEY "${KATIE_ARCHITECTURE} ${KATIE_PLATFORM} ${KATIE_COMPILER} full-config")
endif()
# forward setup of configuration paths, overriden by platform mkspecs
set(QT_PREFIX_PATH "" CACHE PATH "General installation prefix")
set(QT_HEADERS_PATH "" CACHE PATH "Headers installation path")
set(QT_LIBRARIES_PATH "" CACHE PATH "Libraries installation path")
set(QT_BINARIES_PATH "" CACHE PATH "Binaries installation path")
set(QT_PLUGINS_PATH "" CACHE PATH "Plugins installation path")
set(QT_IMPORTS_PATH "" CACHE PATH "Declerative imports installation path")
set(QT_DATA_PATH "" CACHE PATH "Generic data installation path")
set(QT_TRANSLATIONS_PATH "" CACHE PATH "Translations instllation path")
set(QT_DOCUMENTATION_PATH "" CACHE PATH "Documenation installation path")
set(QT_EXAMPLES_PATH "" CACHE PATH "Examples installation path")
set(QT_DEMOS_PATH "" CACHE PATH "Demos installation path")
set(QT_SETTINGS_PATH "" CACHE PATH "Settings runtime path")
if(EXISTS ${KATIE_MKSPECS_DIR}/${KATIE_PLATFORM}/${KATIE_PLATFORM}.cmake)
include(${KATIE_MKSPECS_DIR}/${KATIE_PLATFORM}/${KATIE_PLATFORM}.cmake)
endif()
# misc paths, relevant mostly for UNIX-like platforms
set(CMAKE_INSTALL_PATH "${QT_DATA_PATH}/cmake" CACHE PATH "CMake aware modules path")
set(LDCONF_INSTALL_PATH "${QT_DATA_PATH}/ld.so.conf.d" CACHE PATH "Run-time linker/loader configs path (UNIX)")
set(PROFILE_INSTALL_PATH "${QT_DATA_PATH}/profile.d" CACHE PATH "Shell profile scripts path (UNIX)")
set(MAN_INSTALL_PATH "${QT_DATA_PATH}/man" CACHE PATH "Manual pages path (UNIX)")
set(APPLICATIONS_INSTALL_PATH "${QT_DATA_PATH}/applications" CACHE PATH "Desktop applications register path (UNIX)")
set(PIXMAPS_INSTALL_PATH "${QT_DATA_PATH}/pixmaps" CACHE PATH "Desktop applications icon path (UNIX)")
# for distributions to override build specifications, do note that paths specifiec on the command
# line during configuration override even that file
if(EXISTS ${KATIE_MKSPECS_DIR}/${KATIE_PLATFORM}/vendor.cmake)
include(${KATIE_MKSPECS_DIR}/${KATIE_PLATFORM}/vendor.cmake)
endif()