diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-02-28 23:27:13 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-02-28 23:27:13 +0900 |
| commit | 1a1f834adeb243c5938604eb826c65d1f0efede0 (patch) | |
| tree | 280fc60eea3abb4ab6604b2be2c097de7e5a1245 /tasks/mruby_build.rake | |
| parent | dc56bbecc81b5d04d3bf9ab337f4ebf7024f654f (diff) | |
| download | mruby-1a1f834adeb243c5938604eb826c65d1f0efede0.tar.gz mruby-1a1f834adeb243c5938604eb826c65d1f0efede0.zip | |
Compile C files by C compiler when C++ files mixed.
ref #3267 #3470
By this commit, mruby do not use C++ ABI mode unless
you specify explicitly. It compiles C files by C
compilers, with C++ exception enabled when it sees
C++ files in your configured mrbgems.
I haven't tried visualcpp, so please submit an issue
if you see any problem with C++ gems on Windows.
Diffstat (limited to 'tasks/mruby_build.rake')
| -rw-r--r-- | tasks/mruby_build.rake | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/tasks/mruby_build.rake b/tasks/mruby_build.rake index bd911493d..46459cf6c 100644 --- a/tasks/mruby_build.rake +++ b/tasks/mruby_build.rake @@ -113,13 +113,23 @@ module MRuby @cxx_exception_disabled = true end + def enable_cxx_exception + @cxx_exception_disabled = false + compilers.each { |c| + c.defines += %w(MRB_ENABLE_CXX_EXCEPTION) + c.flags << c.cxx_exception_flag + } + end + def cxx_abi_enabled? @cxx_abi_enabled end def enable_cxx_abi - return if @cxx_exception_disabled or @cxx_abi_enabled - compilers.each { |c| c.defines += %w(MRB_ENABLE_CXX_EXCEPTION) } + return if @cxx_abi_enabled + unless @cxx_exception_disabled + enable_cxx_exception + end compilers.each { |c| c.flags << c.cxx_compile_flag } linker.command = cxx.command if toolchains.find { |v| v == 'gcc' } @cxx_abi_enabled = true |
