intel-extension-for-pytorch

Форк
0
135 строк · 6.0 Кб
1
## Included by CMakeLists
2
if(BuildFlags_CPU_cmake_included)
3
    return()
4
endif()
5
set(BuildFlags_CPU_cmake_included true)
6

7
# check and set CMAKE_CXX_STANDARD
8
string(FIND "${CMAKE_CXX_FLAGS}" "-std=c++" env_cxx_standard)
9
if(env_cxx_standard GREATER -1)
10
  message(
11
      WARNING "C++ standard version definition detected in environment variable."
12
      "PyTorch requires -std=c++17. Please remove -std=c++ settings in your environment.")
13
endif()
14
set(CMAKE_CXX_STANDARD 17)
15
set(CMAKE_C_STANDARD 11)
16
set(CMAKE_CXX_EXTENSIONS OFF)
17

18
if(MSVC)
19
  set(CMAKE_COMPILE_WARNING_AS_ERROR OFF)
20
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MD")
21
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")
22
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DNOMINMAX")
23
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4267")
24
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4251")
25
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4522")
26
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4838")
27
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4305")
28
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4244")
29
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4190")
30
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4101")
31
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4996")
32
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4275")
33
  
34
  # Need check again:
35
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4273")
36
else(MSVC)
37
  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
38
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
39
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-narrowing")
40
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-field-initializers")
41
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-type-limits")
42
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-array-bounds")
43
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas")
44
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-sign-compare")
45
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter")
46
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-variable")
47
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-function")
48
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-result")
49
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-strict-overflow")
50
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-strict-aliasing")
51
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=deprecated-declarations")
52
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-ignored-qualifiers")
53
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes")
54
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-parentheses")
55
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-format")
56
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
57
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=pedantic")
58
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=redundant-decls")
59
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=old-style-cast")
60
  # Eigen fails to build with some versions, so convert this to a warning
61
  # Details at http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1459
62
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
63
  if (CMAKE_COMPILER_IS_GNUCXX AND NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0))
64
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-stringop-overflow")
65
  endif()
66
endif(MSVC)
67

68
# These flags are not available in GCC-4.8.5. Set only when using clang.
69
# Compared against https://gcc.gnu.org/onlinedocs/gcc-4.8.5/gcc/Option-Summary.html
70
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
71
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-partial-specialization")
72
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-typedef-redefinition")
73
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-warning-option")
74
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-private-field")
75
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-inconsistent-missing-override")
76
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-aligned-allocation-unavailable")
77
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-c++14-extensions")
78
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-constexpr-not-const")
79
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-braces")
80
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments")
81
  if (${COLORIZE_OUTPUT})
82
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcolor-diagnostics")
83
  endif()
84
endif()
85
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9)
86
  if (${COLORIZE_OUTPUT})
87
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color=always")
88
  endif()
89
endif()
90
if ((APPLE AND (NOT ("${CLANG_VERSION_STRING}" VERSION_LESS "9.0")))
91
  OR (CMAKE_COMPILER_IS_GNUCXX
92
  AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0 AND NOT APPLE)))
93
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -faligned-new")
94
endif()
95
if (WERROR)
96
  check_cxx_compiler_flag("-Werror" COMPILER_SUPPORT_WERROR)
97
  if (NOT COMPILER_SUPPORT_WERROR)
98
    set(WERROR FALSE)
99
  else()
100
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
101
  endif()
102
endif(WERROR)
103

104
if ((NOT APPLE) AND (NOT MSVC))
105
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-but-set-variable")
106
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-uninitialized")
107
endif()
108

109
# Define build type
110
IF(CMAKE_BUILD_TYPE MATCHES Debug)
111
  message("Debug build.")
112
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_DEBUG")
113
ELSEIF(CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
114
  message("RelWithDebInfo build")
115
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNDEBUG")
116
ELSE()
117
  message("Release build.")
118
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNDEBUG")
119
ENDIF()
120

121
if (NOT MSVC)
122
  set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -O0")
123
  set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_STATIC_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -O0")
124
  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic-functions")
125
  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-Bsymbolic-functions")
126
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-math-errno")
127
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-trapping-math")
128
  set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
129
  set(CMAKE_CXX_FLAGS_RELEASE "-O2")
130
  set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
131
  
132
  set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
133
  set(CMAKE_C_FLAGS_RELEASE "-O2")
134
  set(CMAKE_C_FLAGS_DEBUG "-O0 -g")  
135
endif()
136

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.