project('evk', ['c','cpp'], version : '0.1', default_options : ['c_std=gnu23', 'default_library=static']) build_config = configuration_data() buildtype = get_option('buildtype') if buildtype == 'debug' build_config.set('EV_BUILDTYPE_DEBUG', 1) elif buildtype == 'debugoptimized' build_config.set('EV_BUILDTYPE_DEBUGOPT', 1) else build_config.set('EV_BUILDTYPE_RELEASE', 1) endif configure_file(output: 'evk_buildconfig.h', configuration: build_config) disabled_warnings = { 'clang': [ 'microsoft-anon-tag', ], } subproject('evol-headers') evh_c_args = [] cc = meson.get_compiler('c') if cc.get_id() == 'msvc' evh_c_args += '/Zc:preprocessor' elif cc.get_id() == 'clang' evh_c_args += '-DEV_CC_CLANG=1' endif foreach w : disabled_warnings[cc.get_id()] evh_c_args += '-Wno-'+w endforeach evk_incdir = [ '.', ] evk_src = [ 'main.c', 'evk/evkInstance.c', 'evk/evkDevice.c', 'evk/evkAllocator.c', 'evk/evkSync.c', 'evk/evkShader.c', 'evk/evkSwapChain.c', 'evk/evkAllocator.c', 'evk/evkCommand.c', 'evk/evkPipeline.c', 'evk/evkDescriptor.c', 'evk/evkRender.c', 'evk/evkImage.c', 'evk/evkBuffer.c', 'evk/evkMemory.c', ] executable( 'evk', evk_src, include_directories: include_directories(evk_incdir), dependencies: [ dependency('ev_vec'), dependency('ev_str'), dependency('ev_helpers'), dependency('vma'), dependency('volk'), dependency('glfw3'), dependency('shaderc'), dependency('spvref'), ], c_args: evh_c_args, )