2
## define some directories
3
if ("${INSTALL_PREFIX}" STREQUAL ".")
4
set(CF_OPENMS_DATA_PATH ${PROJECT_SOURCE_DIR}/share/OpenMS CACHE INTERNAL "Path to the shared documents of OpenMS.")
5
set(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR})
7
set(CF_OPENMS_DATA_PATH ${INSTALL_PREFIX}/share/OpenMS CACHE INTERNAL "Path to the shared documents of OpenMS.")
8
set(CMAKE_INSTALL_PREFIX ${INSTALL_PREFIX})
13
set(CF_OPENMS_TEST_DATA_PATH ${PROJECT_SOURCE_DIR}/source/TEST/data/ CACHE INTERNAL "Path to the test data")
15
## check for Microsoft Visual Studio compiler
17
set(OPENMS_COMPILER_MSVC "1" CACHE INTERNAL "Do we use Microsoft Compiler?")
20
if (CMAKE_COMPILER_IS_GNUCXX)
21
set(OPENMS_COMPILER_GXX "1" CACHE INTERNAL "Do we use G++ Compiler?")
24
INCLUDE(TestBigEndian)
25
TEST_BIG_ENDIAN(OPENMS_BIG_ENDIAN)
27
## check 32/64 bit architecture (defined above!)
28
if (NOT DEFINED OPENMS_64BIT_ARCHITECTURE)
29
message(FATAL_ERROR "Cmake script was re-ordered and is now invalid! Please make sure that OPENMS_64BIT_ARCHITECTURE is defined when config.h.in is configured!")
32
include(CheckTypeSize) ## Check sizeof a type
33
CHECK_TYPE_SIZE("unsigned char" SIZE_UCHAR)
34
CHECK_TYPE_SIZE("unsigned short" SIZE_USHORT)
35
CHECK_TYPE_SIZE("unsigned int" SIZE_UINT)
36
CHECK_TYPE_SIZE("unsigned long" SIZE_ULONG)
37
CHECK_TYPE_SIZE("unsigned long long" SIZE_ULONGLONG)
38
CHECK_TYPE_SIZE("short" SIZE_SHORT)
39
CHECK_TYPE_SIZE("int" SIZE_INT)
40
CHECK_TYPE_SIZE("long" SIZE_LONG)
41
CHECK_TYPE_SIZE("long long" SIZE_LONGLONG)
43
CHECK_TYPE_SIZE("int32_t" SIZE_INT32)
45
set(CF_OPENMS_INT32_TYPE int32_t)
47
## search for another Int32 type
48
if (SIZE_INT MATCHES "4")
49
set(CF_OPENMS_INT32_TYPE int)
50
elseif (SIZE_SHORT MATCHES "4")
51
set(CF_OPENMS_INT32_TYPE short)
52
elseif (SIZE_LONG MATCHES "4")
53
set(CF_OPENMS_INT32_TYPE long)
55
Message(FATAL_ERROR "Cannot find signed 32bit integer type. Please contact the developers!")
59
CHECK_TYPE_SIZE("int64_t" SIZE_INT64)
61
set(CF_OPENMS_INT64_TYPE int64_t)
63
## search for another Int64 type
64
if (SIZE_INT MATCHES "8")
65
set(CF_OPENMS_INT64_TYPE int)
66
elseif (SIZE_LONG MATCHES "8")
67
set(CF_OPENMS_INT64_TYPE long)
68
elseif (SIZE_LONGLONG MATCHES "8")
69
set(CF_OPENMS_INT64_TYPE "long long")
71
Message(FATAL_ERROR "Cannot find signed 64bit integer type. Please contact the developers!")
75
CHECK_TYPE_SIZE("uint8_t" SIZE_UINT8)
77
set(CF_OPENMS_BYTE_TYPE uint8_t)
79
## search for another uint8 type
80
if (SIZE_UCHAR MATCHES "1")
81
set(CF_OPENMS_BYTE_TYPE "unsigned char")
82
elseif (SIZE_USHORT MATCHES "1")
83
set(CF_OPENMS_BYTE_TYPE "unsigned short")
85
Message(FATAL_ERROR "Cannot find unsigned 8bit integer (byte) type. Please contact the developers!")
90
CHECK_TYPE_SIZE("uint64_t" SIZE_UINT64)
92
set(CF_OPENMS_UINT64_TYPE uint64_t)
94
## search for another uint64 type
95
if (SIZE_ULONG MATCHES "8")
96
set(CF_OPENMS_UINT64_TYPE "unsigned long")
97
elseif (SIZE_ULONGLONG MATCHES "8")
98
set(CF_OPENMS_UINT64_TYPE "unsigned long long")
100
Message(FATAL_ERROR "Cannot find uint64 type. Please contact the developers!")
105
include(CheckIncludeFileCXX) ## Check if the include file exists.
107
CHECK_INCLUDE_FILE_CXX("unistd.h" OPENMS_HAS_UNISTD_H)
108
CHECK_INCLUDE_FILE_CXX("process.h" OPENMS_HAS_PROCESS_H)
110
CHECK_INCLUDE_FILE_CXX("time.h" OPENMS_HAS_TIME_H)
111
CHECK_INCLUDE_FILE_CXX("sys/types.h" OPENMS_HAS_SYS_TYPES_H)
112
CHECK_INCLUDE_FILE_CXX("sys/times.h" OPENMS_HAS_SYS_TIMES_H)
113
CHECK_INCLUDE_FILE_CXX("sys/time.h" OPENMS_HAS_SYS_TIME_H)
114
CHECK_INCLUDE_FILE_CXX("stdint.h" OPENMS_HAS_STDINT_H)
116
include(CheckFunctionExists)
117
## in MinGW we have the signal.h header, but no kill() as in Linux, so we need to check for the kill() function
118
CHECK_FUNCTION_EXISTS("kill" OPENMS_HAS_KILL)
119
CHECK_FUNCTION_EXISTS("sysconf" OPENMS_HAS_SYSCONF)
121
## user flag with default "QMYSQL" (put in config.h)
122
set(CF_QT_DB_PLUGIN "QMYSQL" CACHE STRING "User switch to change the Qt database plugin.")
124
## replace any variables in config.h.in with current values
125
set (CONFIGURED_CONFIG_H ${PROJECT_BINARY_DIR}/include/OpenMS/config.h)
126
configure_file(${PROJECT_SOURCE_DIR}/include/OpenMS/config.h.in ${CONFIGURED_CONFIG_H})
128
## replace any variables in openms_package_version.h.in with current values
129
set (CONFIGURED_OPENMS_PACKAGE_VERSION_H ${PROJECT_BINARY_DIR}/include/OpenMS/openms_package_version.h)
130
configure_file(${PROJECT_SOURCE_DIR}/include/OpenMS/openms_package_version.h.in ${CONFIGURED_OPENMS_PACKAGE_VERSION_H})