class Rmk::Mex
Constants
- MEX_FUNCTION_PATTERN
pattern to look for +main()+ function
Attributes
auto_detect_mex[RW]
enable automatic detection of #main_sources
extension[R]
MEX file #extension
Public Class Methods
new()
click to toggle source
Calls superclass method
Rmk::Processor.new
# File tools/mex.rb, line 18 def initialize super @slot = SLOTS[:compiler] @requires = [CC, CXX, LD] data = tool_params(:Mex, generator.configuration) @extension = data[:extension] || '.mexa64' @auto_detect_mex = true end
Public Instance Methods
find_main_sources()
click to toggle source
# File tools/mex.rb, line 31 def find_main_sources return unless auto_detect_mex # src_files: no generated files src_files = @sources.find_all { |name| name !~ /^\$builddir/ } grep(MEX_FUNCTION_PATTERN, src_files).each do |src| @main_sources[src] = true end end
mex(*files)
click to toggle source
Manually add #mex file
See also #auto_detect_mex.
# File tools/mex.rb, line 44 def mex(*files) files.each do |f| next if exclude?(f) @main_sources[f] = true end end
mexfile(filename)
click to toggle source
# File tools/mex.rb, line 55 def mexfile(filename) "#{strip_extension(filename)}.#{extension}" end
ninja_build(writer = generator.ninja)
click to toggle source
Calls superclass method
# File tools/mex.rb, line 59 def ninja_build(writer = generator.ninja) super find_sources(source_pattern) find_main_sources @main_sources.each_key do |src| obj = if src =~ /^\$builddir/ generator.object(src) # source = src else "$builddir/#{generator.object(src)}" # source = generator.expand_source(src) end generator.add_object(obj, type: :shared_main, prefix: '', suffix: extension) end end
source_pattern()
click to toggle source
# File tools/mex.rb, line 51 def source_pattern @@source_pattern ||= Regexp.union(cc.source_pattern, cxx.source_pattern) end