Class: Mkrf::Generator
- Inherits:
-
Object
- Object
- Mkrf::Generator
- Defined in:
- ext/mkrf-monkey.rb
Instance Method Summary collapse
-
#rakefile_contents ⇒ Object
:nodoc:.
Instance Method Details
#rakefile_contents ⇒ Object
:nodoc:
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'ext/mkrf-monkey.rb', line 9 def rakefile_contents # :nodoc: objext = CONFIG['OBJEXT'] cc = CONFIG['CC'] || 'gcc' cpp = CONFIG['CXX'] || 'g++' extension_sym = File.basename( @extension_name, ".#{CONFIG['DLEXT']}" ).to_sym "# Generated by mkrf, monkey patched for opencv-ffi\nrequire 'rake/clean'\n\n\nSRC = FileList[\#{sources.join(',')}]\nOBJ = SRC.ext('\#{objext}')\nCC = '\#{cc}'\nCPP = '\#{cpp}'\n\nCLEAN.include(OBJ)\nCLOBBER.include('\#{@extension_name}', 'mkrf.log', 'Rakefile')\n\nADDITIONAL_OBJECTS = '\#{objects}'\n\nLDSHARED = \"\#{@available.ldshared_string} \#{ldshared}\"\n\nLIBPATH = \"\#{library_path(CONFIG['libdir'])} \#{@available.library_paths_compile_string}\"\n\nINCLUDES = \"\#{@available.includes_compile_string}\"\n\nLIBS = \"\#{@available.library_compile_string}\"\n\nCFLAGS = \"\#{cflags} \#{defines_compile_string}\"\n\nRUBYARCHDIR = \"\\\#{ENV[\"RUBYARCHDIR\"]}\"\nLIBRUBYARG_SHARED = \"\#{CONFIG['LIBRUBYARG_SHARED']}\"\n\ntask :default => :build_library\n\n# Add one layer of indirection so I can generically call \"rake build_library\"\n# and have it work ... or not work if the wrong rakefile is being run\ntask :build_library => '\#{@extension_name}'\n\nrule '.\#{objext}' => '.c' do |t|\n sh \"\\\#{CC} \\\#{CFLAGS} \\\#{INCLUDES} -o \\\#{t.name} -c \\\#{t.source}\"\nend\n\nrule '.\#{objext}' => '.cpp' do |t|\n sh \"\\\#{CPP} \\\#{CFLAGS} \\\#{INCLUDES} -o \\\#{t.name} -c \\\#{t.source}\"\nend\n\nDEPS = OBJ.clone.add('Rakefile')\ndesc \"Build this extension\"\nfile '\#{@extension_name}' => DEPS do\n sh \"\\\#{LDSHARED} \\\#{LIBPATH} \#{@available.ld_outfile(@extension_name)} \\\#{OBJ} \\\#{ADDITIONAL_OBJECTS} \\\#{LIBS} \\\#{LIBRUBYARG_SHARED}\"\nend\n\ndesc \"Rebuild rakefile\"\nfile 'Rakefile' => 'mkrf_conf.rb' do |t|\n ruby 'mkrf_conf.rb'\n puts \"Rebuilt Rakefile. Run \\'rake \#{extension_sym.to_s}\\' again\"\nend\n\ndesc \"Install this extension\"\ntask :install => '\#{@extension_name}' do\n makedirs \"\\\#{RUBYARCHDIR}\"\n install \"\#{@extension_name}\", \"\\\#{RUBYARCHDIR}\"\nend\n\n\#{additional_code}\n END_RAKEFILE\nend\n" |