2019-12-17 04:02:08 +00:00
|
|
|
# KatieConfig overrides KATIE_TYPE and KATIE_KEY
|
2015-12-10 05:06:13 +02:00
|
|
|
|
2019-05-24 20:45:05 +00:00
|
|
|
if(NOT KATIE_TYPE)
|
|
|
|
set(KATIE_TYPE SHARED)
|
|
|
|
katie_definition(-DQT_SHARED)
|
|
|
|
endif()
|
|
|
|
|
2016-02-29 04:56:55 +02:00
|
|
|
if(NOT KATIE_PLATFORM)
|
|
|
|
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
2015-12-24 07:43:32 +02:00
|
|
|
set(KATIE_PLATFORM "linux")
|
2016-02-29 04:56:55 +02:00
|
|
|
elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
2015-12-24 07:43:32 +02:00
|
|
|
set(KATIE_PLATFORM "freebsd")
|
2019-07-16 20:02:32 +00:00
|
|
|
katie_definition(-D_THREAD_SAFE)
|
2016-02-29 04:56:55 +02:00
|
|
|
elseif(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
|
2015-12-24 07:43:32 +02:00
|
|
|
set(KATIE_PLATFORM "openbsd")
|
|
|
|
else()
|
|
|
|
message(FATAL_ERROR "Unknown platform '${CMAKE_SYSTEM_NAME}'")
|
|
|
|
endif()
|
2015-12-10 05:06:13 +02:00
|
|
|
endif()
|
|
|
|
|
2016-02-29 04:56:55 +02:00
|
|
|
if(NOT KATIE_COMPILER)
|
2016-06-23 14:28:33 +03:00
|
|
|
# using MATCHES in all checks due to CMP0054
|
2016-02-29 04:56:55 +02:00
|
|
|
if (CMAKE_CXX_COMPILER_ID MATCHES "(Clang|AppleClang)")
|
2015-12-24 07:43:32 +02:00
|
|
|
set(KATIE_COMPILER "clang")
|
2016-06-23 14:28:33 +03:00
|
|
|
elseif (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
2015-12-24 07:43:32 +02:00
|
|
|
set(KATIE_COMPILER "gcc")
|
2016-06-23 14:28:33 +03:00
|
|
|
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
2015-12-24 07:43:32 +02:00
|
|
|
set(KATIE_COMPILER "icc")
|
2016-06-23 14:28:33 +03:00
|
|
|
elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
2015-12-24 07:43:32 +02:00
|
|
|
set(KATIE_COMPILER "msvc")
|
|
|
|
else()
|
|
|
|
message(FATAL_ERROR "Unknown compiler '${CMAKE_CXX_COMPILER_ID}'")
|
|
|
|
endif()
|
2015-12-10 05:06:13 +02:00
|
|
|
endif()
|
|
|
|
|
2016-02-29 05:00:13 +02:00
|
|
|
if(NOT KATIE_ARCHITECTURE)
|
2019-07-10 19:52:03 +00:00
|
|
|
if(CMAKE_SYSTEM_PROCESSOR)
|
2019-11-30 07:30:26 +00:00
|
|
|
string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} lowercase_processor)
|
2019-07-10 19:52:03 +00:00
|
|
|
elseif(CMAKE_HOST_SYSTEM_PROCESSOR)
|
2019-11-30 07:30:26 +00:00
|
|
|
string(TOLOWER ${CMAKE_HOST_SYSTEM_PROCESSOR} lowercase_processor)
|
2019-07-10 19:52:03 +00:00
|
|
|
endif()
|
|
|
|
|
2019-07-10 19:48:52 +00:00
|
|
|
# https://en.wikipedia.org/wiki/Uname
|
2019-11-30 07:30:26 +00:00
|
|
|
if(lowercase_processor MATCHES "^alpha")
|
2019-07-10 19:48:52 +00:00
|
|
|
set(KATIE_ARCHITECTURE "alpha")
|
2019-11-30 07:30:26 +00:00
|
|
|
elseif(lowercase_processor MATCHES "^arm")
|
2015-12-24 07:43:32 +02:00
|
|
|
set(KATIE_ARCHITECTURE "arm")
|
2019-11-30 07:30:26 +00:00
|
|
|
elseif(lowercase_processor MATCHES "^avr")
|
2019-07-10 19:48:52 +00:00
|
|
|
set(KATIE_ARCHITECTURE "avr")
|
2019-11-30 07:30:26 +00:00
|
|
|
elseif(lowercase_processor MATCHES "^blackfin")
|
2019-07-10 19:48:52 +00:00
|
|
|
set(KATIE_ARCHITECTURE "blackfin")
|
2019-11-30 07:30:26 +00:00
|
|
|
elseif(lowercase_processor MATCHES "(x86|i[3-6]86|i86pc)")
|
2019-07-10 19:48:52 +00:00
|
|
|
set(KATIE_ARCHITECTURE "i386")
|
2019-11-30 07:30:26 +00:00
|
|
|
elseif(lowercase_processor MATCHES "^ia64")
|
2019-07-10 19:48:52 +00:00
|
|
|
set(KATIE_ARCHITECTURE "ia64")
|
2019-11-30 07:30:26 +00:00
|
|
|
elseif(lowercase_processor MATCHES "^m68k")
|
2019-07-10 19:48:52 +00:00
|
|
|
set(KATIE_ARCHITECTURE "m68k")
|
2019-11-30 07:30:26 +00:00
|
|
|
elseif(lowercase_processor MATCHES "^mips")
|
2015-12-24 07:43:32 +02:00
|
|
|
set(KATIE_ARCHITECTURE "mips")
|
2019-11-30 07:30:26 +00:00
|
|
|
elseif(lowercase_processor MATCHES "^nacl")
|
2019-08-01 12:39:03 +00:00
|
|
|
set(KATIE_ARCHITECTURE "nacl")
|
2019-11-30 07:30:26 +00:00
|
|
|
elseif(lowercase_processor MATCHES "^hppa")
|
2019-08-01 12:27:12 +00:00
|
|
|
set(KATIE_ARCHITECTURE "parisc")
|
2019-11-30 07:30:26 +00:00
|
|
|
elseif(lowercase_processor MATCHES "^ppc")
|
2019-07-10 19:48:52 +00:00
|
|
|
set(KATIE_ARCHITECTURE "powerpc")
|
2019-11-30 07:30:26 +00:00
|
|
|
elseif(lowercase_processor MATCHES "^s390")
|
2019-07-10 19:48:52 +00:00
|
|
|
set(KATIE_ARCHITECTURE "s390")
|
2019-11-30 07:30:26 +00:00
|
|
|
elseif(lowercase_processor MATCHES "^sparc")
|
2019-07-10 19:48:52 +00:00
|
|
|
set(KATIE_ARCHITECTURE "sparc")
|
2019-11-30 07:30:26 +00:00
|
|
|
elseif(lowercase_processor MATCHES "^sh")
|
2019-07-10 19:48:52 +00:00
|
|
|
set(KATIE_ARCHITECTURE "sh")
|
2019-11-30 07:30:26 +00:00
|
|
|
elseif(lowercase_processor MATCHES "(x86_64|amd64)")
|
2015-12-24 07:43:32 +02:00
|
|
|
set(KATIE_ARCHITECTURE "x86_64")
|
2015-12-25 08:54:48 +02:00
|
|
|
else()
|
2019-07-10 19:52:03 +00:00
|
|
|
message(FATAL_ERROR "Unknown CPU '${CMAKE_SYSTEM_PROCESSOR}' (${CMAKE_HOST_SYSTEM_PROCESSOR})")
|
2015-12-24 07:43:32 +02:00
|
|
|
endif()
|
2015-12-10 05:06:13 +02:00
|
|
|
endif()
|
|
|
|
|
|
|
|
if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
|
|
katie_definition(-DQT_NO_DEBUG -DNDEBUG)
|
|
|
|
endif()
|
|
|
|
|
2019-05-18 15:27:18 +00:00
|
|
|
try_compile(bsymbolic_functions_test
|
|
|
|
${CMAKE_BINARY_DIR}
|
2019-12-17 04:02:08 +00:00
|
|
|
${CMAKE_CURRENT_LIST_DIR}/bsymbolic_functions.cpp
|
2019-05-18 15:27:18 +00:00
|
|
|
CMAKE_FLAGS -shared -Wl,-Bsymbolic-functions -fPIC
|
|
|
|
OUTPUT_VARIABLE bsymbolic_functions_test_output
|
|
|
|
)
|
2019-11-30 07:18:47 +00:00
|
|
|
if(NOT bsymbolic_functions_test OR NOT CMAKE_POSITION_INDEPENDENT_CODE)
|
2019-05-18 15:27:18 +00:00
|
|
|
katie_definition(-DQ_NO_DATA_RELOCATION)
|
|
|
|
endif()
|
2015-12-10 05:06:13 +02:00
|
|
|
|
2016-02-29 04:56:55 +02:00
|
|
|
if(NOT KATIE_KEY)
|
2019-12-01 06:14:00 +00:00
|
|
|
set(KATIE_KEY "${KATIE_ARCHITECTURE}-${KATIE_PLATFORM}-${KATIE_COMPILER}")
|
2015-12-10 05:06:13 +02:00
|
|
|
endif()
|
|
|
|
|
2017-04-26 13:31:32 +00:00
|
|
|
# Set compiler standard to C++ 11, appending to CMAKE_CXX_FLAGS is done so that try_compile() is
|
|
|
|
# also affected, which KDE uses for visibility check for an example
|
|
|
|
if(KATIE_COMPILER STREQUAL "gcc")
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
|
|
|
|
elseif(KATIE_COMPILER STREQUAL "clang")
|
2016-11-16 02:00:53 +00:00
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
2017-04-26 13:31:32 +00:00
|
|
|
endif()
|
|
|
|
if(NOT CMAKE_VERSION VERSION_LESS "3.1.0")
|
2016-09-30 22:56:15 +00:00
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
|
|
endif()
|