File: ranges_env.cmake

package info (click to toggle)
range-v3 0.12.0-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,620 kB
  • sloc: cpp: 76,839; xml: 226; sh: 89; python: 34; makefile: 16; perl: 15
file content (90 lines) | stat: -rw-r--r-- 2,758 bytes parent folder | download | duplicates (2)
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
# 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 (RANGES_CXX_COMPILER_CLANGCL TRUE)
    if (RANGES_VERBOSE_BUILD)
      message(STATUS "[range-v3]: compiler is clang-cl.")
    endif()
  else()
    set (RANGES_CXX_COMPILER_CLANG TRUE)
    if (RANGES_VERBOSE_BUILD)
      message(STATUS "[range-v3]: compiler is clang.")
    endif()
  endif()
elseif(CMAKE_COMPILER_IS_GNUCXX)
  set (RANGES_CXX_COMPILER_GCC TRUE)
  if (RANGES_VERBOSE_BUILD)
    message(STATUS "[range-v3]: compiler is gcc.")
  endif()
elseif("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC")
  set (RANGES_CXX_COMPILER_MSVC TRUE)
  if (RANGES_VERBOSE_BUILD)
    message(STATUS "[range-v3]: compiler is msvc.")
  endif()
else()
  message(WARNING "[range-v3 warning]: unknown compiler ${CMAKE_CXX_COMPILER_ID} !")
endif()

if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
  set (RANGES_ENV_MACOSX TRUE)
  if (RANGES_VERBOSE_BUILD)
    message(STATUS "[range-v3]: system is MacOSX.")
  endif()
elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
  set (RANGES_ENV_LINUX TRUE)
  if (RANGES_VERBOSE_BUILD)
    message(STATUS "[range-v3]: system is Linux.")
  endif()
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
  set (RANGES_ENV_WINDOWS TRUE)
  if (RANGES_VERBOSE_BUILD)
    message(STATUS "[range-v3]: system is Windows.")
  endif()
elseif(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
  set (RANGES_ENV_OPENBSD TRUE)
  if (RANGES_VERBOSE_BUILD)
    message(STATUS "[range-v3]: system is OpenBSD.")
  endif()
else()
  message(WARNING "[range-v3 warning]: unknown system ${CMAKE_SYSTEM_NAME} !")
endif()

if(RANGES_CXX_STD MATCHES "^[0-9]+$")
  if(RANGES_CXX_COMPILER_MSVC AND RANGES_CXX_STD LESS 17)
    # MSVC is currently supported only in 17+ mode
    set(RANGES_CXX_STD 17)
  elseif(RANGES_CXX_STD LESS 14)
    set(RANGES_CXX_STD 14)
  endif()
endif()

# Build type
set(RANGES_DEBUG_BUILD FALSE)
set(RANGES_RELEASE_BUILD FALSE)

if (CMAKE_BUILD_TYPE STREQUAL "Debug")
  set(RANGES_DEBUG_BUILD TRUE)
  if (RANGES_VERBOSE_BUILD)
    message(STATUS "[range-v3]: build type is debug.")
  endif()
elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
  set(RANGES_RELEASE_BUILD TRUE)
  if (RANGES_VERBOSE_BUILD)
    message(STATUS "[range-v3]: build type is release.")
  endif()
else()
  message(WARNING "[range-v3 warning]: unknown build type, defaults to release!")
  set(CMAKE_BUILD_TYPE "Release")
  set(RANGES_RELEASE_BUILD TRUE)
endif()

if(RANGE_V3_DOCS)
  find_package(Doxygen)
endif()
find_package(Git)