goldfish-opengl: add Linux meson build for Vulkan cereal

This adds a Meson build for Vulkan cereal.  Meson is well-liked
as an alternative to cmake, autogen, etc.

To build:

mkdir amd64-build/
meson amd64-build/
ninja -C amd64-build

This assumes the Vulkan headers are already installed in the
system.

The best bet is to define Vulkan headers internally in
goldfish-opengl to avoid the hassle of downloading them.

BUG=202552093
TEST=compile

Change-Id: Iab65f1cc6fde2ffcb1a07e65a44f2341cb9b84ef
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..25c89a7
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,52 @@
+# Copyright 2022 Android Open Source Project
+# SPDX-License-Identifier: MIT
+
+project('gfxstream', 'cpp', 'c',
+         version : '0.0.1',
+         license : 'MIT OR Apache-2.0')
+
+cc = meson.get_compiler('cpp')
+
+#===============#
+# Configuration #
+#===============#
+c_args = []
+cpp_args = []
+
+# Paravirtualization moving towards virtio
+cpp_args += '-DVIRTIO_GPU'
+# Gfxstream
+cpp_args += '-DGFXSTREAM'
+# Our internal guest build
+cpp_args += '-DLINUX_GUEST_BUILD'
+# Don't want to goldfish OpenGL
+cpp_args += '-DGOLDFISH_NO_GL'
+# This is a good number for PAGE_SIZE
+# But we should really do getpagesize(..).
+cpp_args += '-DPAGE_SIZE=4096'
+# This should just be called NO_TRACE eventually
+cpp_args += '-DFUCHSIA_NO_TRACE'
+
+#===============#
+# Dependencies  #
+#===============#
+
+dl_dep = cc.find_library('dl', required: false)
+drm_dep = dependency('libdrm')
+thread_dep = dependency('threads')
+
+#===============#
+# Includes      #
+#===============#
+
+inc_android_emu = include_directories('android-emu')
+inc_host = include_directories('host/include/libOpenglRender')
+
+#================#
+# Subdirectories #
+#================#
+
+subdir('fuchsia')
+subdir('android-emu/android/base')
+subdir('shared')
+subdir('system')