ext/libgecode3/extconf.rb in dep-selector-libgecode-1.0.0.alpha.1 vs ext/libgecode3/extconf.rb in dep-selector-libgecode-1.0.0.alpha.2

- old
+ new

@@ -1,57 +1,74 @@ +exit(0) if ENV["USE_SYSTEM_GECODE"] + require 'pp' module GecodeBuild class BuildError < StandardError; end GECODE_VENDOR_DIR = File.expand_path("../vendor/gecode-3.7.3", __FILE__).freeze PREFIX = File.expand_path("../../../lib/dep-selector-libgecode/vendored-gecode", __FILE__).freeze - LOG_FILE_PATH = File.expand_path("../gecode_build.log", __FILE__) + def self.windows? + !!(RUBY_PLATFORM =~ /mswin|mingw|windows/) + end def self.gecode_vendor_dir GECODE_VENDOR_DIR end + def self.configure + File.join(GECODE_VENDOR_DIR, "configure") + end + def self.prefix PREFIX end - # TODO: this needs to detect windows and add `--with-host-os=windows` def self.configure_cmd - %W[ - ./configure + args = %W[ + sh + #{configure} --prefix=#{prefix} --disable-doc-dot --disable-doc-search --disable-doc-tagfile --disable-doc-chm --disable-doc-docset --disable-qt --disable-examples --disable-flatzinc ] + args << "--with-host-os=windows" if windows? + args end + def self.setup_env + if windows? + ENV['CC'] = 'gcc' + ENV['CXX'] = 'g++' + end + end + def self.system(*args) print("-> #{args.join(' ')}\n") - super(*args, [:out, :err] => [LOG_FILE_PATH, "w"]) + super(*args) end def self.run_build_commands + setup_env system(*configure_cmd) && system("make", "clean") && system("make", "-j", "5") && system("make", "install") end def self.run Dir.chdir(gecode_vendor_dir) do - run_build_commands or raise BuildError, "Failed to build gecode library. See log for details: #{LOG_FILE_PATH}" + run_build_commands or raise BuildError, "Failed to build gecode library." end end end GecodeBuild.run -