[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / clang / lib / Tooling / Inclusions / Stdlib / CMakeLists.txt
blobed323ab3528b1047d41a7f19b44834b0c5815ae7
1 # Workaround for MSVC ARM64 performance regression:
2 # https://developercommunity.visualstudio.com/t/Compiling-a-specific-code-for-ARM64-with/10444970
3 # Since /O1 and /O2 represent a set of optimizations,
4 # our goal is to disable the /Og flag while retaining the other optimizations from the /O1|/O2 set
5 if(MSVC AND NOT CMAKE_CXX_COMPILER_ID MATCHES Clang
6     AND MSVC_VERSION VERSION_GREATER_EQUAL 1932
7     AND CMAKE_SYSTEM_PROCESSOR MATCHES "ARM64")
9   string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
10   string(REGEX MATCHALL "/[Oo][12]" opt_flags "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}}")
11   if (opt_flags)
12     if(opt_flags MATCHES "1$")
13       set(opt_flags "/Od;/Os;/Oy;/Ob2;/GF;/Gy")
14     elseif (opt_flags MATCHES "2$")
15       set(opt_flags "/Od;/Oi;/Ot;/Oy;/Ob2;/GF;/Gy")
16     endif()
17     set_source_files_properties(StandardLibrary.cpp PROPERTIES COMPILE_OPTIONS "${opt_flags}")
18   endif()
19 endif()
21 add_clang_library(clangToolingInclusionsStdlib
22   StandardLibrary.cpp
24   LINK_LIBS
25   clangAST
26   )