Skip to content

Commit 3c45c54

Browse files
authored
[CMake] Move RTTI flag calculation to AddLLVM.cmake (#175553)
This should help users who use AddLLVM.cmake without HandleLLVMOptions. Note that remains MSVC is unlikely to work. Follow up of #174084.
1 parent 16078f0 commit 3c45c54

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

llvm/cmake/modules/AddLLVM.cmake

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,18 @@ function(get_subproject_title outvar)
1919
endif ()
2020
endfunction(get_subproject_title)
2121

22+
# Determine required flags to enable/disable RTTI.
23+
set(LLVM_CXXFLAGS_RTTI_DISABLE "")
24+
set(LLVM_CXXFLAGS_RTTI_ENABLE "")
25+
if(LLVM_COMPILER_IS_GCC_COMPATIBLE)
26+
set(LLVM_CXXFLAGS_RTTI_DISABLE "-fno-rtti")
27+
elseif(MSVC)
28+
set(LLVM_CXXFLAGS_RTTI_DISABLE "/GR-")
29+
set(LLVM_CXXFLAGS_RTTI_ENABLE "/GR")
30+
elseif(CMAKE_CXX_COMPILER_ID MATCHES "XL")
31+
set(LLVM_CXXFLAGS_RTTI_DISABLE "-qnortti")
32+
endif()
33+
2234
function(llvm_update_compile_flags name)
2335
set(LLVM_COMPILE_CXXFLAGS "")
2436

llvm/cmake/modules/HandleLLVMOptions.cmake

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,22 +1162,13 @@ elseif(MSVC)
11621162
endif()
11631163
endif()
11641164

1165-
# llvm_update_compile_flags adds one of these to each target.
1166-
set(LLVM_CXXFLAGS_RTTI_DISABLE "")
1167-
set(LLVM_CXXFLAGS_RTTI_ENABLE "")
1168-
if(LLVM_COMPILER_IS_GCC_COMPATIBLE)
1169-
set(LLVM_CXXFLAGS_RTTI_DISABLE "-fno-rtti")
1170-
elseif(MSVC)
1165+
if(MSVC)
11711166
# Remove flags here, for exceptions and RTTI.
11721167
# Each target property or source property should be responsible to control
1173-
# them.
1174-
# CL.EXE complains to override flags like "/GR /GR-".
1168+
# them (see llvm_update_compile_flags).
1169+
# CL.EXE complains to override flags like "/GR /GR-". CMake adds them by default.
11751170
string(REGEX REPLACE "(^| ) */EH[-cs]+ *( |$)" "\\1 \\2" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
11761171
string(REGEX REPLACE "(^| ) */GR-? *( |$)" "\\1 \\2" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
1177-
set(LLVM_CXXFLAGS_RTTI_DISABLE "/GR-")
1178-
set(LLVM_CXXFLAGS_RTTI_ENABLE "/GR")
1179-
elseif(CMAKE_CXXCOMPILER_ID MATCHES "XL")
1180-
set(LLVM_CXXFLAGS_RTTI_DISABLE "-qnortti")
11811172
endif()
11821173

11831174
# Provide public options to globally control RTTI and EH

0 commit comments

Comments
 (0)