81 lines
1.5 KiB
Meson
81 lines
1.5 KiB
Meson
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,
|
|
)
|