Files
evk/meson.build
T

102 lines
2.1 KiB
Meson

project(
'evk',
['c', 'cpp'],
version: '0.1',
default_options: {
'c_std': 'c23',
'default_library': 'static',
'c_args': '-fcolor-diagnostics -fansi-escape-codes',
'cpp_args': '-fcolor-diagnostics -fansi-escape-codes',
},
meson_version: '>=1.2',
)
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', default_options: {'build_tests': false})
subproject('volk')
evk_c_args = []
cc = meson.get_compiler('c')
if cc.get_id() == 'msvc'
evk_c_args += '/Zc:preprocessor'
elif cc.get_id() == 'clang'
evk_c_args += '-DEV_CC_CLANG=1'
evk_c_args += '-fms-extensions'
endif
foreach w : disabled_warnings[cc.get_id()]
evk_c_args += '-Wno-' + w
endforeach
evk_incdir = include_directories(
[
'.',
],
)
evk_src = [
'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',
]
evk_lib = library(
'evk',
evk_src,
include_directories: evk_incdir,
dependencies: [
dependency('evol-headers'),
dependency('vma'),
dependency('volk'),
dependency('shaderc'),
dependency('spvref'),
],
c_args: evk_c_args,
)
evk_dep = declare_dependency(
link_with: evk_lib,
include_directories: evk_incdir,
dependencies: [
dependency('volk').partial_dependency(includes: true, compile_args: true),
dependency('vma').partial_dependency(includes: true),
dependency('evol-headers').partial_dependency(includes: true),
],
)
meson.override_dependency('evk', evk_dep)
if get_option('build_samples')
subdir('samples')
endif