102 lines
2.1 KiB
Meson
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
|