2018-10-28 00:55:12 +00:00
|
|
|
project('libcubescript', ['cpp'],
|
2022-04-19 22:41:53 +00:00
|
|
|
version: '1.0.0',
|
2021-03-30 23:35:02 +00:00
|
|
|
default_options: [
|
2021-04-06 23:39:18 +00:00
|
|
|
'buildtype=debugoptimized', 'warning_level=3', 'cpp_rtti=false',
|
|
|
|
'cpp_std=none'
|
2021-03-30 23:35:02 +00:00
|
|
|
],
|
2021-03-15 23:56:19 +00:00
|
|
|
meson_version: '>=0.50'
|
2018-10-28 00:55:12 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
dir_prefix = get_option('prefix')
|
|
|
|
dir_include = join_paths(dir_prefix, get_option('includedir'))
|
|
|
|
dir_data = join_paths(dir_prefix, get_option('datadir'))
|
|
|
|
dir_lib = join_paths(dir_prefix, get_option('libdir'))
|
|
|
|
|
|
|
|
dir_package_include = join_paths(dir_include, 'cubescript')
|
|
|
|
|
|
|
|
libcubescript_includes = [include_directories('include')]
|
|
|
|
|
2021-03-15 23:52:23 +00:00
|
|
|
cxx = meson.get_compiler('cpp')
|
|
|
|
|
|
|
|
extra_cxxflags = []
|
|
|
|
|
|
|
|
if get_option('buildtype') != 'plain'
|
|
|
|
if cxx.has_argument('-Wshadow')
|
|
|
|
extra_cxxflags += '-Wshadow'
|
|
|
|
endif
|
|
|
|
if cxx.has_argument('-Wold-style-cast')
|
|
|
|
extra_cxxflags += '-Wold-style-cast'
|
|
|
|
endif
|
2018-10-28 00:55:12 +00:00
|
|
|
endif
|
|
|
|
|
2021-04-06 23:39:18 +00:00
|
|
|
# Meson does not support C++20 std in a portable way in this version
|
|
|
|
# unless specified explicitly, have our own logic which will guess it
|
|
|
|
if get_option('cpp_std') == 'none'
|
|
|
|
if cxx.has_argument('-std=c++20')
|
|
|
|
# modern gcc/clang
|
|
|
|
extra_cxxflags += '-std=c++20'
|
|
|
|
elif cxx.has_argument('-std=c++2a')
|
|
|
|
# older gcc/clang
|
|
|
|
extra_cxxflags += '-std=c++2a'
|
|
|
|
elif cxx.has_argument('/std:c++20')
|
|
|
|
# future msvc++? not supported anywhere yet
|
|
|
|
extra_cxxflags += '/std:c++20'
|
|
|
|
elif cxx.has_argument('/std:c++latest')
|
|
|
|
# msvc++ 2019
|
|
|
|
extra_cxxflags += '/std:c++latest'
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2021-04-13 00:49:38 +00:00
|
|
|
build_root = meson.current_build_dir()
|
|
|
|
|
2021-04-07 00:03:41 +00:00
|
|
|
subdir('include')
|
2018-10-28 00:55:12 +00:00
|
|
|
subdir('src')
|
|
|
|
subdir('tools')
|
|
|
|
|
2021-04-13 00:49:38 +00:00
|
|
|
if meson.is_cross_build() and get_option('tests')
|
|
|
|
build_tests = get_option('tests_cross')
|
|
|
|
else
|
|
|
|
build_tests = get_option('tests')
|
|
|
|
endif
|
|
|
|
|
|
|
|
if build_tests
|
|
|
|
subdir('tests')
|
|
|
|
endif
|
|
|
|
|
2018-10-28 00:55:12 +00:00
|
|
|
pkg = import('pkgconfig')
|
|
|
|
|
|
|
|
pkg.generate(
|
2021-03-23 01:48:14 +00:00
|
|
|
libraries: libcubescript_target,
|
2018-10-28 00:55:12 +00:00
|
|
|
version: meson.project_version(),
|
|
|
|
name: 'libcubescript',
|
|
|
|
filebase: 'libcubescript',
|
|
|
|
url: 'https://git.octaforge.org/octaforge/libcubescript',
|
2018-10-28 01:09:23 +00:00
|
|
|
description: 'An embeddable version of the CubeScript language'
|
2018-10-28 00:55:12 +00:00
|
|
|
)
|