summaryrefslogtreecommitdiffhomepage
path: root/tasks/toolchains
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-02-28 23:27:13 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-02-28 23:27:13 +0900
commit1a1f834adeb243c5938604eb826c65d1f0efede0 (patch)
tree280fc60eea3abb4ab6604b2be2c097de7e5a1245 /tasks/toolchains
parentdc56bbecc81b5d04d3bf9ab337f4ebf7024f654f (diff)
downloadmruby-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/toolchains')
-rw-r--r--tasks/toolchains/gcc.rake2
-rw-r--r--tasks/toolchains/visualcpp.rake2
2 files changed, 4 insertions, 0 deletions
diff --git a/tasks/toolchains/gcc.rake b/tasks/toolchains/gcc.rake
index 59ae015ac..f370c0abf 100644
--- a/tasks/toolchains/gcc.rake
+++ b/tasks/toolchains/gcc.rake
@@ -7,6 +7,7 @@ MRuby::Toolchain.new(:gcc) do |conf, _params|
cc.option_define = '-D%s'
cc.compile_options = '%{flags} -MMD -o %{outfile} -c %{infile}'
cc.cxx_compile_flag = '-x c++ -std=c++03'
+ cc.cxx_exception_flag = '-fexceptions'
end
[conf.cxx].each do |cxx|
@@ -17,6 +18,7 @@ MRuby::Toolchain.new(:gcc) do |conf, _params|
cxx.option_define = '-D%s'
cxx.compile_options = '%{flags} -MMD -o %{outfile} -c %{infile}'
cxx.cxx_compile_flag = '-x c++ -std=c++03'
+ cxx.cxx_exception_flag = '-fexceptions'
end
conf.linker do |linker|
diff --git a/tasks/toolchains/visualcpp.rake b/tasks/toolchains/visualcpp.rake
index 5f5bab9c2..5bc24a73a 100644
--- a/tasks/toolchains/visualcpp.rake
+++ b/tasks/toolchains/visualcpp.rake
@@ -8,6 +8,7 @@ MRuby::Toolchain.new(:visualcpp) do |conf, _params|
cc.option_define = '/D%s'
cc.compile_options = "%{flags} /Fo%{outfile} %{infile}"
cc.cxx_compile_flag = '/TP'
+ cc.cxx_exception_flag = '/EHs'
end
conf.cxx do |cxx|
@@ -18,6 +19,7 @@ MRuby::Toolchain.new(:visualcpp) do |conf, _params|
cxx.option_define = '/D%s'
cxx.compile_options = "%{flags} /Fo%{outfile} %{infile}"
cxx.cxx_compile_flag = '/TP'
+ cxx.cxx_exception_flag = '/EHs'
end
conf.linker do |linker|