forked from glynos/url
-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathskyr-url-env.cmake
95 lines (90 loc) · 2.89 KB
/
skyr-url-env.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# Copyright Gonzalo Brito Gadeschi 2015
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#
# Detects the C++ compiler, system, build-type, etc.
include(CheckCXXCompilerFlag)
if("x${CMAKE_CXX_COMPILER_ID}" MATCHES "x.*Clang")
if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
set (SKY_CXX_COMPILER_CLANGCL TRUE)
if (SKY_VERBOSE_BUILD)
message(STATUS "[skyr-url]: compiler is clang-cl.")
endif()
else()
set (SKY_CXX_COMPILER_CLANG TRUE)
if (SKY_VERBOSE_BUILD)
message(STATUS "[skyr-url]: compiler is clang.")
endif()
endif()
elseif(CMAKE_COMPILER_IS_GNUCXX)
set (SKY_CXX_COMPILER_GCC TRUE)
if (SKY_VERBOSE_BUILD)
message(STATUS "[skyr-url]: compiler is gcc.")
endif()
elseif("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC")
set (SKY_CXX_COMPILER_MSVC TRUE)
if (SKY_VERBOSE_BUILD)
message(STATUS "[skyr-url]: compiler is msvc.")
endif()
else()
message(WARNING "[skyr-url warning]: unknown compiler ${CMAKE_CXX_COMPILER_ID} !")
endif()
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
set (SKY_ENV_MACOSX TRUE)
if (SKY_VERBOSE_BUILD)
message(STATUS "[skyr-url]: system is MacOSX.")
endif()
elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
set (SKY_ENV_LINUX TRUE)
if (SKY_VERBOSE_BUILD)
message(STATUS "[skyr-url]: system is Linux.")
endif()
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
set (SKY_ENV_WINDOWS TRUE)
if (SKY_VERBOSE_BUILD)
message(STATUS "[skyr-url]: system is Windows.")
endif()
elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
set (SKY_ENV_FREEBSD TRUE)
if (SKY_VERBOSE_BUILD)
message(STATUS "[skyr-url]: system is FreeBSD.")
endif()
elseif(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
set (SKY_ENV_OPENBSD TRUE)
if (SKY_VERBOSE_BUILD)
message(STATUS "[skyr-url]: system is OpenBSD.")
endif()
elseif(CMAKE_SYSTEM_NAME MATCHES "Emscripten")
set (SKY_ENV_EMSCRIPTEN TRUE)
if (SKY_VERBOSE_BUILD)
message(STATUS "[skyr-url]: system is Emscripten.")
endif()
else()
message(WARNING "[skyr-url warning]: unknown system ${CMAKE_SYSTEM_NAME} !")
endif()
if(SKY_CXX_STD MATCHES "^[0-9]+$")
if(SKY_CXX_COMPILER_MSVC AND SKY_CXX_STD LESS 17)
# MSVC is currently supported only in 17+ mode
set(SKY_CXX_STD 17)
elseif(SKY_CXX_STD LESS 14)
set(SKY_CXX_STD 14)
endif()
endif()
# Build type
set(SKY_DEBUG_BUILD FALSE)
set(SKY_RELEASE_BUILD FALSE)
if (CMAKE_BUILD_TYPE MATCHES "^Debug$")
set(SKY_DEBUG_BUILD TRUE)
if (SKY_VERBOSE_BUILD)
message(STATUS "[skyr-url]: build type is debug.")
endif()
elseif(CMAKE_BUILD_TYPE MATCHES "^(Release|RelWithDebInfo|MinSizeRel)$")
set(SKY_RELEASE_BUILD TRUE)
if (SKY_VERBOSE_BUILD)
message(STATUS "[skyr-url]: build type is release.")
endif()
else()
message(WARNING "[skr-url warning]: unknown build type, defaults to release!")
set(CMAKE_BUILD_TYPE "Release")
set(SKY_RELEASE_BUILD TRUE)
endif()