summaryrefslogtreecommitdiffhomepage
path: root/tasks
diff options
context:
space:
mode:
authorYuichiro MASUI <[email protected]>2013-01-24 11:33:56 +0900
committerYuichiro MASUI <[email protected]>2013-01-24 11:33:56 +0900
commitdd680b6e67ab3da85e32bb7cf42b5a20822b27bc (patch)
tree25950cf0deb78cc28a2cf493173a5ec0d51023de /tasks
parentb1623b9e58544996b02a8a0050546521d7f738eb (diff)
downloadmruby-dd680b6e67ab3da85e32bb7cf42b5a20822b27bc.tar.gz
mruby-dd680b6e67ab3da85e32bb7cf42b5a20822b27bc.zip
Add flags_after_libraries
Diffstat (limited to 'tasks')
-rw-r--r--tasks/mrbgem_spec.rake2
-rw-r--r--tasks/mruby_build_commands.rake11
-rw-r--r--tasks/toolchains/gcc.rake2
-rw-r--r--tasks/toolchains/vs2012.rake2
4 files changed, 9 insertions, 8 deletions
diff --git a/tasks/mrbgem_spec.rake b/tasks/mrbgem_spec.rake
index 3e37f454d..0e228629b 100644
--- a/tasks/mrbgem_spec.rake
+++ b/tasks/mrbgem_spec.rake
@@ -6,7 +6,7 @@ module MRuby
class << self
attr_accessor :current
end
- LinkerConfig = Struct.new(:libraries, :library_paths, :flags, :flags_before_libraries)
+ LinkerConfig = Struct.new(:libraries, :library_paths, :flags, :flags_before_libraries, :flags_after_libraries)
class Specification
include Rake::DSL
diff --git a/tasks/mruby_build_commands.rake b/tasks/mruby_build_commands.rake
index 23d2c31ae..8056a9f7c 100644
--- a/tasks/mruby_build_commands.rake
+++ b/tasks/mruby_build_commands.rake
@@ -106,19 +106,19 @@ module MRuby
end
class Command::Linker < Command
- attr_accessor :flags, :flags_before_libraries, :libraries, :library_paths
+ attr_accessor :flags, :library_paths, :flags_before_libraries, :libraries, :flags_after_libraries
attr_accessor :link_options, :option_library, :option_library_path
def initialize(build)
super
@command = ENV['LD'] || 'gcc'
@flags = (ENV['LDFLAGS'] || [])
- @flags_before_libraries = []
+ @flags_before_libraries, @flags_after_libraries = [], []
@libraries = []
@library_paths = []
@option_library = '-l%s'
@option_library_path = '-L%s'
- @link_options = "%{flags} -o %{outfile} %{objs} %{flags_before_libraries} %{libs}"
+ @link_options = "%{flags} -o %{outfile} %{objs} %{flags_before_libraries} %{libs} %{flags_after_libraries}"
end
def all_flags(_library_paths=[], _flags=[])
@@ -132,14 +132,15 @@ module MRuby
[libraries, _libraries].flatten.map{ |d| option_library % d }.join(' ')
end
- def run(outfile, objfiles, _libraries=[], _library_paths=[], _flags=[], _flags_before_libraries=[])
+ def run(outfile, objfiles, _libraries=[], _library_paths=[], _flags=[], _flags_before_libraries=[], _flags_after_libraries=[])
FileUtils.mkdir_p File.dirname(outfile)
library_flags = [libraries, _libraries].flatten.map { |d| option_library % d }
library_path_flags = [library_paths, _library_paths].flatten.map { |f| option_library_path % filename(f) }
- _pp "LD #{filename(outfile)}"
+ _pp "LD", "#{filename(outfile)}"
_run link_options, { :flags => all_flags(_library_paths, _flags),
:outfile => filename(outfile) , :objs => filename(objfiles).join(' '),
:flags_before_libraries => [flags_before_libraries, _flags_before_libraries].flatten.join(' '),
+ :flags_after_libraries => [flags_after_libraries, _flags_after_libraries].flatten.join(' '),
:libs => library_flags.join(' ') }
end
end
diff --git a/tasks/toolchains/gcc.rake b/tasks/toolchains/gcc.rake
index 8d83c8407..2c160683d 100644
--- a/tasks/toolchains/gcc.rake
+++ b/tasks/toolchains/gcc.rake
@@ -16,6 +16,6 @@ MRuby::Toolchain.new(:gcc) do |conf|
linker.library_paths = []
linker.option_library = '-l%s'
linker.option_library_path = '-L%s'
- linker.link_options = '%{flags} -o %{outfile} %{objs} %{flags_before_libraries} %{libs}'
+ linker.link_options = '%{flags} -o %{outfile} %{objs} %{flags_before_libraries} %{libs} %{flags_after_libraries}'
end
end
diff --git a/tasks/toolchains/vs2012.rake b/tasks/toolchains/vs2012.rake
index 0662ba27d..e3b80b98b 100644
--- a/tasks/toolchains/vs2012.rake
+++ b/tasks/toolchains/vs2012.rake
@@ -16,7 +16,7 @@ MRuby::Toolchain.new(:vs2012) do |conf|
linker.library_paths = %w()
linker.option_library = '%s'
linker.option_library_path = '/LIBPATH:%s'
- linker.link_options = "%{flags} /OUT:%{outfile} %{objs} %{flags_before_libraries} %{libs}"
+ linker.link_options = "%{flags} /OUT:%{outfile} %{objs} %{flags_before_libraries} %{libs} %{flags_after_libraries}"
end
conf.archiver do |archiver|