diff compiler/ubuild.vim @ 2:9235d8341a18

Refactor the build system invocation commands. Now we have proper knowledge of the projects inside a codebase ("branch"). The plugin should correctly parse configuration names, find the correct module to build based on the configuration, and so on. Also, added support for generating the clang compilation database.
author Ludovic Chabant <ludovic@chabant.com>
date Fri, 22 Jan 2021 16:38:18 -0800
parents ba03cac1b1c6
children
line wrap: on
line diff
--- a/compiler/ubuild.vim	Fri Sep 25 09:44:49 2020 -0700
+++ b/compiler/ubuild.vim	Fri Jan 22 16:38:18 2021 -0800
@@ -9,16 +9,33 @@
 
 let s:keepcpo = &cpo
 
-let s:prgpath = unreal#get_script_path("Engine/Build/BatchFiles/Build")
-let s:prgargs = get(g:, "unreal_temp_makeprg_args__", "")
-if !empty(s:prgargs)
-    let s:prgargs = '\ '.join(s:prgargs, '\ ')
+let s:scriptname = get(g:, '__unreal_makeprg_script', 'Build')
+let s:prgpath = shellescape(
+            \unreal#get_script_path("Engine/Build/BatchFiles/".s:scriptname))
+let s:prgargs = map(
+            \copy(get(g:, '__unreal_makeprg_args', [])),
+            \{idx, val -> escape(val, ' \"')})
+let s:prgcmdline = fnameescape(s:prgpath).'\ '.join(s:prgargs, '\ ')
+
+call unreal#trace("Setting makeprg to: ".s:prgcmdline)
+
+if !get(g:, 'unreal_debug_build', 0)
+    execute "CompilerSet makeprg=".s:prgcmdline
+else
+    execute "CompilerSet makeprg=echo\\ ".shellescape(s:prgcmdline)
 endif
-call unreal#trace("Setting makeprg to: ".s:prgpath.s:prgargs)
-execute "CompilerSet makeprg=".fnameescape(s:prgpath).s:prgargs
 
 CompilerSet errorformat&
 
+" Set the MSBuild error format on Windows.
+"if has('win32') || has('win64')
+"    execute "CompilerSet errorformat=".vimcrosoft#get_msbuild_errorformat()
+"    echom "Set errorformat from vimcrosoft!"
+"    echom &errorformat
+"else
+"    echom "Not setting error format"
+"endif
+
 let &cpo = s:keepcpo
 unlet s:keepcpo