-output-cross-platform-c for creating a single x-platform C file

pull/2969/head
Alexander Medvednikov 2019-12-04 02:01:17 +03:00
parent a7054b68fd
commit 47f5e1178f
3 changed files with 9 additions and 4 deletions

View File

@ -86,6 +86,7 @@ fn C.DEFAULT_GE() bool
fn C.isatty() int fn C.isatty() int
fn C.syscall() int fn C.syscall() int
fn C.sysctl() int

View File

@ -34,7 +34,9 @@ fn (p mut Parser) comp_time() {
} }
p.check(.lcbr) p.check(.lcbr)
os := os_from_string(name) os := os_from_string(name)
if (!not && os != p.os) || (not && os == p.os) { if ((!not && os != p.os) || (not && os == p.os)) &&
!p.pref.output_cross_c
{
// `$if os {` for a different target, skip everything inside // `$if os {` for a different target, skip everything inside
// to avoid compilation errors (like including <windows.h> // to avoid compilation errors (like including <windows.h>
// on non-Windows systems) // on non-Windows systems)

View File

@ -129,6 +129,7 @@ pub mut:
vlib_path string vlib_path string
vpath string vpath string
x64 bool x64 bool
output_cross_c bool
} }
// Should be called by main at the end of the compilation process, to cleanup // Should be called by main at the end of the compilation process, to cleanup
@ -1042,6 +1043,7 @@ pub fn new_v(args[]string) &V {
fast: '-fast' in args fast: '-fast' in args
is_bare: '-freestanding' in args is_bare: '-freestanding' in args
x64: '-x64' in args x64: '-x64' in args
output_cross_c: '-output-cross-platform-c' in args
is_repl: is_repl is_repl: is_repl
build_mode: build_mode build_mode: build_mode
cflags: cflags cflags: cflags