• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2# Attention: cmake will append these flags to compile command automatically.
3# So if you want to add global option, change this file rather than flags.cmake
4
5# Linux
6# DEBUG:  default: "-g"
7# RELEASE:  default: "-O3 -DNDEBUG"
8# RELWITHDEBINFO: default: "-O2 -g -DNDEBUG"
9# MINSIZEREL: default: "-O2 -g -DNDEBUG"
10
11if(MSVC)
12  message("init cxx_flags on windows")
13  cmake_host_system_information(RESULT CPU_CORES QUERY NUMBER_OF_LOGICAL_CORES)
14  message("CPU_CORE number = ${CPU_CORES}")
15  math(EXPR MP_NUM "${CPU_CORES}")
16  set(CMAKE_C_FLAGS "/MD /O2 /Ob2 /DNDEBUG /MP${MP_NUM} /EHsc /bigobj")
17  set(CMAKE_C_FLAGS_DEBUG "/MDd /Zi /Ob0 /Od /RTC1 /MP${MP_NUM} /EHsc /bigobj")
18  set(CMAKE_C_FLAGS_RELEASE "/MD /O2 /Ob2 /DNDEBUG /MP${MP_NUM} /EHsc /bigobj")
19  set(CMAKE_C_FLAGS_RELWITHDEBINFO "/MD /Zi /O2 /Ob1 /DNDEBUG /MP${MP_NUM} /EHsc /bigobj")
20  set(CMAKE_C_FLAGS_MINSIZEREL "/MD /O1 /Ob1 /DNDEBUG /MP${MP_NUM} /EHsc /bigobj")
21
22  set(CMAKE_CXX_FLAGS "/std:c++17 /MD /O2 /Ob2 /DNDEBUG /MP${MP_NUM} /EHsc /bigobj")
23  set(CMAKE_CXX_FLAGS_DEBUG "/std:c++17 /MDd /Zi /Ob0 /Od /RTC1 /MP${MP_NUM} /EHsc /bigobj")
24  set(CMAKE_CXX_FLAGS_RELEASE "/std:c++17 /MD /O2 /Ob2 /DNDEBUG /MP${MP_NUM} /EHsc /bigobj")
25  set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/std:c++17 /MD /Zi /O2 /Ob1 /DNDEBUG /MP${MP_NUM} /EHsc /bigobj")
26  set(CMAKE_CXX_FLAGS_MINSIZEREL "/std:c++17 /MD /O1 /Ob1 /DNDEBUG /MP${MP_NUM} /EHsc /bigobj")
27
28
29  # resolve std::min/std::max and opencv::min opencv:max had defined in windows.h
30  add_definitions(-DNOMINMAX)
31  # resolve ERROR had defined in windows.h
32  add_definitions(-DNOGDI)
33  add_definitions(-DHAVE_SNPRINTF=1)
34  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4251 /wd4819 /wd4715 /wd4244 /wd4267 /wd4716 /wd4566 /wd4273")
35  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4251 /wd4819 /wd4715 /wd4244 /wd4267 /wd4716 /wd4566 /wd4273")
36
37  if(ENABLE_GPU)
38    message("init cxx_flags on windows_gpu")
39    set(CMAKE_CUDA_FLAGS "-Xcompiler=\"-MD /MP${MP_NUM} -O2 -Ob2\" -DNDEBUG")
40    set(CMAKE_CUDA_FLAGS_DEBUG "-Xcompiler=\"-MDd /MP${MP_NUM} -Zi -Ob0 -Od /RTC1\"")
41    set(CMAKE_CUDA_FLAGS_RELEASE "-Xcompiler=\"-MD /MP${MP_NUM} -O2 -Ob2\" -DNDEBUG")
42    set(CMAKE_CUDA_FLAGS_RELWITHDEBINFO "-Xcompiler=\"-MD /MP${MP_NUM} -Zi -O2 -Ob1\" -DNDEBUG")
43    set(CMAKE_CUDA_FLAGS_MINSIZEREL "-Xcompiler=\"-MD /MP${MP_NUM} -O1 -Ob1\" -DNDEBUG")
44  endif()
45endif()
46