bubel-ecs/meson.build
Mergul 37d15f97d6 -fixed some meson issues on windows (becs and tests compilation works. Demos not yet)
-now tests compile proper files
-added setjmp bindings for Windows. It doesn't work on LDC build (singal API could works)
2021-03-06 22:00:08 +01:00

77 lines
1.6 KiB
Meson

project('decs', 'd', version : '0.5.0')
# Options
betterC_opt = get_option('betterC')
BuildDemos_opt = get_option('BuildDemos')
BuildTests_opt = get_option('BuildTests')
LTO_otp = get_option('LTO')
summary('betterC enabled', betterC_opt)
summary('build demos', BuildDemos_opt)
summary('build tests', BuildTests_opt)
summary('LTO enabled', LTO_otp)
meson_minimum_version = '>=0.57.1'
assert(meson.version().version_compare(meson_minimum_version), 'Newer verson of meson required, current version: @0@, required: @1@'.format(meson.version(), meson_minimum_version))
# Files
src = files()
subdir('source')
inc = include_directories('source/')
# Arguments
args = []
link_args = []
comp = meson.get_compiler('d')
comp_id = comp.get_id()
if LTO_otp
if comp_id == 'gcc'
args += '-flto'
link_args += '-flto'
elif comp_id == 'llvm'
args += '-flto=thin'
link_args += '-flto=thin'
else
assert(false, 'Compiler "@0@" doesn\'t support LTO'.format(comp_id))
endif
endif
if betterC_opt
if comp_id == 'gcc'
args += ['-fno-druntime']
link_args += ['-fno-druntime']
else
args += '-betterC'
link_args += '-betterC'
endif
endif
add_global_arguments(args, language : 'd')
add_global_link_arguments(link_args, language : 'd')
# Dependencies
threads_dep = dependency('threads')
ecs_lib = library('decs',
src,
include_directories : [inc],
)
decs_dep = declare_dependency(
include_directories : [inc],
link_with : ecs_lib,
dependencies : threads_dep,
)
# Tests
if BuildTests_opt
subdir('tests')
endif
# Demos
if BuildDemos_opt
subdir('demos')
endif