Shoaib Meenai via llvm-dev
2020-Jan-13 07:00 UTC
[llvm-dev] how to enable exceptions for one component
LLVM_ENABLE_EH is a global option, not a target property. For a single target, it’s more appropriate to use LLVM_REQUIRES_EH, which is also a variable you’ll need to set before calling add_llvm_component_library. You can do something like set(LLVM_REQUIRES_EH_ORIGINAL ${LLVM_REQUIRES_EH}) set(LLVM_REQUIRES_EH YES) add_llvm_component_library(LLVMTargetLibrary TargetFile1.cpp TargetFile2.cpp ) set(LLVM_REQUIRES_EH ${LLVM_REQUIRES_EH_ORIGINAL}) The implementation for this functionality lives in llvm/cmake/modules/AddLLVM.cmake [1], where you can see what effect LLVM_REQUIRES_EH has. [1] https://github.com/llvm/llvm-project/blob/master/llvm/cmake/modules/AddLLVM.cmake From: llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of "Davis, Alan via llvm-dev" <llvm-dev at lists.llvm.org> Reply-To: "Davis, Alan" <adavis at ti.com> Date: Sunday, January 12, 2020 at 5:09 PM To: LLVM Developers Mailing List <llvm-dev at lists.llvm.org> Subject: [llvm-dev] how to enable exceptions for one component I’d like to enable exceptions for a single target-specific LLVM component which is built as library. That is, I’d like to allow it to throw exceptions to its (non-LLVM) client to signal errors. In the CMakeLists.txt for the component, I tried: add_llvm_component_library(LLVMTargetLibrary TargetFile1.cpp TargetFile2.cpp ) set_property(TARGET LLVMTargetLibrary PROPERTY LLVM_ENABLE_EH ON) But it still compiles with –fno-exceptions. Thanks for any advice. -Alan -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200113/b970982d/attachment.html>
Davis, Alan via llvm-dev
2020-Jan-13 15:18 UTC
[llvm-dev] how to enable exceptions for one component
Perfect, thanks. For the record, I had to also set/reset LLVM_REQUIRES_RTTI in the same way. From: Shoaib Meenai [mailto:smeenai at fb.com] Sent: Monday, January 13, 2020 1:01 AM To: Davis, Alan; LLVM Developers Mailing List Subject: [EXTERNAL] Re: [llvm-dev] how to enable exceptions for one component LLVM_ENABLE_EH is a global option, not a target property. For a single target, it’s more appropriate to use LLVM_REQUIRES_EH, which is also a variable you’ll need to set before calling add_llvm_component_library. You can do something like set(LLVM_REQUIRES_EH_ORIGINAL ${LLVM_REQUIRES_EH}) set(LLVM_REQUIRES_EH YES) add_llvm_component_library(LLVMTargetLibrary TargetFile1.cpp TargetFile2.cpp ) set(LLVM_REQUIRES_EH ${LLVM_REQUIRES_EH_ORIGINAL}) The implementation for this functionality lives in llvm/cmake/modules/AddLLVM.cmake [1], where you can see what effect LLVM_REQUIRES_EH has. [1] https://github.com/llvm/llvm-project/blob/master/llvm/cmake/modules/AddLLVM.cmake From: llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of "Davis, Alan via llvm-dev" <llvm-dev at lists.llvm.org> Reply-To: "Davis, Alan" <adavis at ti.com> Date: Sunday, January 12, 2020 at 5:09 PM To: LLVM Developers Mailing List <llvm-dev at lists.llvm.org> Subject: [llvm-dev] how to enable exceptions for one component I’d like to enable exceptions for a single target-specific LLVM component which is built as library. That is, I’d like to allow it to throw exceptions to its (non-LLVM) client to signal errors. In the CMakeLists.txt for the component, I tried: add_llvm_component_library(LLVMTargetLibrary TargetFile1.cpp TargetFile2.cpp ) set_property(TARGET LLVMTargetLibrary PROPERTY LLVM_ENABLE_EH ON) But it still compiles with –fno-exceptions. Thanks for any advice. -Alan -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200113/4fd68a70/attachment.html>