54 lines
1.2 KiB
Meson
54 lines
1.2 KiB
Meson
project(
|
|
'FluxEngine',
|
|
'cpp',
|
|
version : '0.1.0',
|
|
meson_version : '>=0.60.0',
|
|
default_options : [
|
|
'cpp_std=c++20',
|
|
'warning_level=3',
|
|
'buildtype=debugoptimized',
|
|
]
|
|
)
|
|
|
|
# 1) Grab the active C++ compiler
|
|
cpp = meson.get_compiler('cpp')
|
|
ccid = cpp.get_id() # e.g. 'msvc', 'gcc', 'clang', 'intel', ...
|
|
|
|
# 2) Decide your D-flag prefix
|
|
if ccid == 'msvc'
|
|
dflag = '/D'
|
|
else
|
|
dflag = '-D'
|
|
endif
|
|
|
|
# 3) Platform macro (all OSes)
|
|
sys = host_machine.system()
|
|
if sys == 'windows'
|
|
plat = 'FLUX_PLATFORM_WINDOWS'
|
|
elif sys == 'linux'
|
|
plat = 'FLUX_PLATFORM_LINUX'
|
|
elif sys == 'darwin'
|
|
plat = 'FLUX_PLATFORM_MACOS'
|
|
elif sys == 'freebsd'
|
|
plat = 'FLUX_PLATFORM_FREEBSD'
|
|
else
|
|
plat = 'FLUX_PLATFORM_UNKNOWN'
|
|
endif
|
|
|
|
add_global_arguments(dflag + plat, language : 'cpp')
|
|
|
|
# 4) Build-type macros
|
|
bt = get_option('buildtype')
|
|
if bt == 'debug'
|
|
add_project_arguments(dflag + 'FLUX_DEBUG', language : 'cpp')
|
|
elif bt == 'release'
|
|
add_project_arguments(dflag + 'FLUX_RELEASE', language : 'cpp')
|
|
elif bt == 'debugoptimized'
|
|
add_project_arguments(dflag + 'FLUX_DIST', language : 'cpp')
|
|
else
|
|
warning('Unrecognized buildtype: ' + bt)
|
|
endif
|
|
|
|
# Tell Meson to descend into these directories
|
|
subdir('FluxEngine')
|
|
subdir('Sandbox')
|