diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-04-08 22:56:16 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-04-08 22:56:16 +0900 |
| commit | c11157eb405718671a359e3b47d2d46ee4b7ee73 (patch) | |
| tree | cfce80aa13bf8ec055551bc321bffa39f10f5f33 | |
| parent | b26ca1b55b691d7b93738e6cb3e14a2a00c85080 (diff) | |
| parent | 702cadae4c248334bcc0f842ace2612088000322 (diff) | |
| download | mruby-c11157eb405718671a359e3b47d2d46ee4b7ee73.tar.gz mruby-c11157eb405718671a359e3b47d2d46ee4b7ee73.zip | |
Merge pull request #2026 from take-cheeze/disable_cxx_exception
Add MRuby::Build#disable_cxx_exception to force C++ ABI disable.
| -rw-r--r-- | doc/compile/README.md | 10 | ||||
| -rw-r--r-- | tasks/mruby_build.rake | 7 |
2 files changed, 16 insertions, 1 deletions
diff --git a/doc/compile/README.md b/doc/compile/README.md index a06a6b952..e494591f7 100644 --- a/doc/compile/README.md +++ b/doc/compile/README.md @@ -205,6 +205,16 @@ If you need to enable C++ ABI mode explicity add the following: conf.enable_cxx_abi +#### C++ exception disabling. + +If you need to force C++ exception disable +(For example using a compiler option to disable C++ exception) +add following: + + conf.disable_cxx_exception + +Note that it must be called before ```enable_cxx_abi``` or ```gem``` method. + ### Debugging mode To enable debugging mode add the following: diff --git a/tasks/mruby_build.rake b/tasks/mruby_build.rake index 5877c11cd..1de00d496 100644 --- a/tasks/mruby_build.rake +++ b/tasks/mruby_build.rake @@ -82,6 +82,7 @@ module MRuby @gems, @libmruby = MRuby::Gem::List.new, [] @build_mrbtest_lib_only = false @cxx_abi_enabled = false + @cxx_exception_disabled = false MRuby.targets[@name] = self end @@ -95,12 +96,16 @@ module MRuby @mrbc.compile_options += ' -g' end + def disable_cxx_exception + @cxx_exception_disabled = true + end + def cxx_abi_enabled? @cxx_abi_enabled end def enable_cxx_abi - return if @cxx_abi_enabled + return if @cxx_exception_disabled or @cxx_abi_enabled compilers.each { |c| c.defines += %w(MRB_ENABLE_CXX_EXCEPTION) } linker.command = cxx.command @cxx_abi_enabled = true |
