summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authortake_cheeze <[email protected]>2014-04-07 17:38:30 +0900
committertake_cheeze <[email protected]>2014-04-07 17:38:30 +0900
commit66e0df34e0d2dcf4de67a653f614610068bdd350 (patch)
treefd0a14d53b918a084f5b6d97b13b1d0e301c3815
parentc5c87424a853445cc04c018fbbd2f21407c3fcf9 (diff)
downloadmruby-66e0df34e0d2dcf4de67a653f614610068bdd350.tar.gz
mruby-66e0df34e0d2dcf4de67a653f614610068bdd350.zip
Fix C++ files detection for automatic C++ ABI enabling.
-rw-r--r--tasks/mrbgem_spec.rake7
-rw-r--r--tasks/mruby_build_gem.rake7
2 files changed, 5 insertions, 9 deletions
diff --git a/tasks/mrbgem_spec.rake b/tasks/mrbgem_spec.rake
index 3536594d9..1a399be73 100644
--- a/tasks/mrbgem_spec.rake
+++ b/tasks/mrbgem_spec.rake
@@ -40,7 +40,6 @@ module MRuby
@name = name
@initializer = block
@version = "0.0.0"
- @cxx_abi_enabled = false
MRuby::Gem.current = self
end
@@ -48,10 +47,6 @@ module MRuby
not test_preload.nil? or not test_objs.empty?
end
- def cxx_abi_enabled?
- @cxx_abi_enabled
- end
-
def setup
MRuby::Gem.current = self
@build.compilers.each do |compiler|
@@ -64,14 +59,12 @@ module MRuby
@rbfiles = Dir.glob("#{dir}/mrblib/*.rb").sort
@objs = Dir.glob("#{dir}/src/*.{c,cpp,cxx,m,asm,S}").map do |f|
- @cxx_abi_enabled = true if f =~ /(cxx|cpp)$/
objfile(f.relative_path_from(@dir).to_s.pathmap("#{build_dir}/%X"))
end
@objs << objfile("#{build_dir}/gem_init")
@test_rbfiles = Dir.glob("#{dir}/test/*.rb")
@test_objs = Dir.glob("#{dir}/test/*.{c,cpp,cxx,m,asm,S}").map do |f|
- @cxx_abi_enabled = true if f =~ /(cxx|cpp)$/
objfile(f.relative_path_from(dir).to_s.pathmap("#{build_dir}/%X"))
end
@test_preload = nil # 'test/assert.rb'
diff --git a/tasks/mruby_build_gem.rake b/tasks/mruby_build_gem.rake
index 5e4566f8d..42d0d6b89 100644
--- a/tasks/mruby_build_gem.rake
+++ b/tasks/mruby_build_gem.rake
@@ -30,12 +30,15 @@ module MRuby
load gemrake
return nil unless Gem.current
- enable_cxx_abi if Gem.current.cxx_abi_enabled?
-
Gem.current.dir = gemdir
Gem.current.build = MRuby::Build.current
Gem.current.build_config_initializer = block
gems << Gem.current
+
+ cxx_srcs = Dir.glob("#{Gem.current.dir}/src/*.{cpp,cxx}")
+ cxx_srcs += Dir.glob("#{Gem.current.dir}/test/*.{cpp,cxx}")
+ enable_cxx_abi unless cxx_srcs.empty?
+
Gem.current
end