From f5e44fbef20a5ece0e33cf87214450e75ad3490f Mon Sep 17 00:00:00 2001 From: radare Date: Tue, 17 Mar 2020 12:43:59 +0100 Subject: [PATCH] compiler: better NetBSD and OpenBSD support in vfmt and $if --- cmd/tools/vfmt.v | 3 +++ vlib/compiler/cgen.v | 28 ++++++++++++++++++++-------- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/cmd/tools/vfmt.v b/cmd/tools/vfmt.v index 9929e089a6..e41acacc2b 100644 --- a/cmd/tools/vfmt.v +++ b/cmd/tools/vfmt.v @@ -32,8 +32,11 @@ const ( ['linux', '_lin.v', '_linux.v', '_nix.v'], ['macos', '_mac.v', '_darwin.v'], ['freebsd', '_bsd.v', '_freebsd.v'], + ['netbsd', '_bsd.v', '_netbsd.v'], + ['openbsd', '_bsd.v', '_openbsd.v'], ['solaris', '_solaris.v'], ['haiku', '_haiku.v'], + ['qnx', '_qnx.v'], ] FORMATTED_FILE_TOKEN = '\@\@\@' + 'FORMATTED_FILE: ' ) diff --git a/vlib/compiler/cgen.v b/vlib/compiler/cgen.v index bf9022445a..f4a0aa0c23 100644 --- a/vlib/compiler/cgen.v +++ b/vlib/compiler/cgen.v @@ -360,28 +360,40 @@ fn (v &V) platform_postfix_to_ifdefguard(name string) string { return '#ifdef CUSTOM_DEFINE_${cdefine}' } s := match name { - '.v'{ + '.v' { '' } // no guard needed - '_win.v', '_windows.v'{ + '_win.v', '_windows.v' { '#ifdef _WIN32' } - '_nix.v'{ + '_nix.v' { '#ifndef _WIN32' } - '_lin.v', '_linux.v'{ + '_qnx.v' { + '#ifndef __QNX__' + } + '_lin.v', '_linux.v' { '#ifdef __linux__' } - '_mac.v', '_darwin.v'{ + '_mac.v', '_darwin.v' { '#ifdef __APPLE__' } - '_bsd.v', '_freebsd.v '{ + '_freebsd.v' { '#ifdef __FreeBSD__' } - '_solaris.v'{ + '_openbsd.v' { + '#ifdef __OpenBSD__' + } + '_netbsd.v' { + '#ifdef __NetBSD__' + } + '_bsd.v' { + '#ifdef __FreeBSD__ || __NetBSD__ || __OpenBSD__' + } + '_solaris.v' { '#ifdef __sun' } - '_haiku.v'{ + '_haiku.v' { '#ifdef __haiku__' } else {