lib/delphivm/ide_services.rb in delphivm-0.7.7 vs lib/delphivm/ide_services.rb in delphivm-0.8.0

- old
+ new

@@ -1,7 +1,5 @@ -# encoding: UTF-8 - require 'fiddle' require 'fiddle/import' module User32 extend Fiddle::Importer @@ -67,12 +65,12 @@ ENV["IDEVERSION"] = idever end def start set_env - Process.detach(spawn "#{self['App']}", "-r#{prj_slug}") - say "started bds -r#{prj_slug}" + Process.detach(spawn "#{self['App']}", "-rDelphiVM\\#{prj_slug}") + say "started bds -rDelphiVM\\#{prj_slug}" end def prj_slug workdir.basename.to_s.upcase end @@ -80,21 +78,23 @@ def supports_msbuild?(idever) ide_number = idever[1..-1].to_i ide_number > 140 end - def msbuild(config, target) + def msbuild(target, config) set_env - self.class.winshell(out_filter: ->(line){line =~ /(error)/}) do |i| - Pathname.glob(workdir + "{src,samples}/#{idever}**/*.{#{GROUP_FILE_EXT.join(',')}}") do |f| + self.class.winshell(out_filter: ->(line){line =~/\b(warning|error)\b/i}) do |i| + Pathname.glob(workdir + "{src,samples,test}/#{idever}**/*.{#{GROUP_FILE_EXT.join(',')}}") do |f| f_to_show = f.relative_path_from(workdir) - say "#{target} (#{config}) #{f_to_show.win} ...." # paths can contains spaces so we need use quotes if supports_msbuild?(idever) + msbuild_prms = config.inject([]) {|prms, item| prms << '/p:' + item.join('=')}.join(' ') + say "[#{idever}] msbuild /t:#{target} #{msbuild_prms} #{f_to_show.win} ...." i.puts %Q["#{self['RootDir'] + 'bin\rsvars.bat'}"] - i.puts %Q[msbuild /nologo /t:#{target} /p:Config=#{config} "#{f.win}"] + i.puts %Q[msbuild /nologo /consoleloggerparameters:v=quiet /filelogger /flp:v=detailed /t:#{target} #{msbuild_prms} "#{f.win}"] else - i.puts %Q[bds -b "#{f.win}"] + say "[#{idever}] bds -b #{f_to_show.win} ...." + i.puts %Q[bds -b "#{f.win}"] end end end end \ No newline at end of file