mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-07 11:33:44 +00:00
Merging r213663:
------------------------------------------------------------------------ r213663 | delcypher | 2014-07-22 16:41:18 +0100 (Tue, 22 Jul 2014) | 4 lines Added LLVM_ENABLE_RTTI and LLVM_ENABLE_EH options that allow RTTI and EH to globally be controlled. Individual targets (e.g. ExceptionDemo) can still override this by using LLVM_REQUIRE_RTTI and LLVM_REQUIRE_EH if they need to be compiled with RTTI or exception handling respectively. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_35@213764 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6c00f26957
commit
e48c582cfe
@ -8,8 +8,13 @@ function(llvm_update_compile_flags name)
|
|||||||
set(update_src_props ON)
|
set(update_src_props ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(LLVM_REQUIRES_EH)
|
# LLVM_REQUIRES_EH is an internal flag that individual
|
||||||
set(LLVM_REQUIRES_RTTI ON)
|
# targets can use to force EH
|
||||||
|
if(LLVM_REQUIRES_EH OR LLVM_ENABLE_EH)
|
||||||
|
if(NOT (LLVM_REQUIRES_RTTI OR LLVM_ENABLE_RTTI))
|
||||||
|
message(AUTHOR_WARNING "Exception handling requires RTTI. Enabling RTTI for ${name}")
|
||||||
|
set(LLVM_REQUIRES_RTTI ON)
|
||||||
|
endif()
|
||||||
else()
|
else()
|
||||||
if(LLVM_COMPILER_IS_GCC_COMPATIBLE)
|
if(LLVM_COMPILER_IS_GCC_COMPATIBLE)
|
||||||
list(APPEND LLVM_COMPILE_FLAGS "-fno-exceptions")
|
list(APPEND LLVM_COMPILE_FLAGS "-fno-exceptions")
|
||||||
@ -19,7 +24,9 @@ function(llvm_update_compile_flags name)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT LLVM_REQUIRES_RTTI)
|
# LLVM_REQUIRES_RTTI is an internal flag that individual
|
||||||
|
# targets can use to force RTTI
|
||||||
|
if(NOT (LLVM_REQUIRES_RTTI OR LLVM_ENABLE_RTTI))
|
||||||
list(APPEND LLVM_COMPILE_DEFINITIONS GTEST_HAS_RTTI=0)
|
list(APPEND LLVM_COMPILE_DEFINITIONS GTEST_HAS_RTTI=0)
|
||||||
if (LLVM_COMPILER_IS_GCC_COMPATIBLE)
|
if (LLVM_COMPILER_IS_GCC_COMPATIBLE)
|
||||||
list(APPEND LLVM_COMPILE_FLAGS "-fno-rtti")
|
list(APPEND LLVM_COMPILE_FLAGS "-fno-rtti")
|
||||||
|
@ -408,6 +408,13 @@ if(MSVC)
|
|||||||
string(REGEX REPLACE "(^| ) */GR-? *( |$)" "\\1 \\2" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
string(REGEX REPLACE "(^| ) */GR-? *( |$)" "\\1 \\2" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Provide public options to globally control RTTI and EH
|
||||||
|
option(LLVM_ENABLE_EH "Enable Exception handling" OFF)
|
||||||
|
option(LLVM_ENABLE_RTTI "Enable run time type information" OFF)
|
||||||
|
if(LLVM_ENABLE_EH AND NOT LLVM_ENABLE_RTTI)
|
||||||
|
message(FATAL_ERROR "Exception handling requires RTTI. You must set LLVM_ENABLE_RTTI to ON")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Plugin support
|
# Plugin support
|
||||||
# FIXME: Make this configurable.
|
# FIXME: Make this configurable.
|
||||||
if(WIN32 OR CYGWIN)
|
if(WIN32 OR CYGWIN)
|
||||||
|
@ -218,10 +218,18 @@ LLVM-specific variables
|
|||||||
Enables code assertions. Defaults to OFF if and only if ``CMAKE_BUILD_TYPE``
|
Enables code assertions. Defaults to OFF if and only if ``CMAKE_BUILD_TYPE``
|
||||||
is *Release*.
|
is *Release*.
|
||||||
|
|
||||||
|
**LLVM_ENABLE_EH**:BOOL
|
||||||
|
Build LLVM with exception handling support. This is necessary if you wish to
|
||||||
|
link against LLVM libraries and make use of C++ exceptions in your own code
|
||||||
|
that need to propagate through LLVM code. Defaults to OFF.
|
||||||
|
|
||||||
**LLVM_ENABLE_PIC**:BOOL
|
**LLVM_ENABLE_PIC**:BOOL
|
||||||
Add the ``-fPIC`` flag for the compiler command-line, if the compiler supports
|
Add the ``-fPIC`` flag for the compiler command-line, if the compiler supports
|
||||||
this flag. Some systems, like Windows, do not need this flag. Defaults to ON.
|
this flag. Some systems, like Windows, do not need this flag. Defaults to ON.
|
||||||
|
|
||||||
|
**LLVM_ENABLE_RTTI**:BOOL
|
||||||
|
Build LLVM with run time type information. Defaults to OFF.
|
||||||
|
|
||||||
**LLVM_ENABLE_WARNINGS**:BOOL
|
**LLVM_ENABLE_WARNINGS**:BOOL
|
||||||
Enable all compiler warnings. Defaults to ON.
|
Enable all compiler warnings. Defaults to ON.
|
||||||
|
|
||||||
|
@ -6,7 +6,9 @@ set(LLVM_LINK_COMPONENTS
|
|||||||
nativecodegen
|
nativecodegen
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Enable EH and RTTI for this demo
|
||||||
set(LLVM_REQUIRES_EH 1)
|
set(LLVM_REQUIRES_EH 1)
|
||||||
|
set(LLVM_REQUIRES_RTTI 1)
|
||||||
|
|
||||||
add_llvm_example(ExceptionDemo
|
add_llvm_example(ExceptionDemo
|
||||||
ExceptionDemo.cpp
|
ExceptionDemo.cpp
|
||||||
|
Loading…
Reference in New Issue
Block a user