wrenpp/meson.build

94 lines
1.9 KiB
Meson
Raw Permalink Normal View History

project('wrenpp', 'cpp',
2020-05-03 22:41:39 +00:00
version: '0.1.1',
meson_version: '>=0.49.2',
default_options: ['buildtype=release', 'cpp_std=c++17', 'b_ndebug=if-release'],
)
pymod = import('python')
wren_dep = dependency('wren', version: '>=0.2.0',
fallback: ['wren', 'wren_dep'],
default_options: [
'default_library=static',
'build_testing=false',
2020-05-01 19:14:01 +00:00
'wren_with_rand=' + get_option('wren_with_rand').to_string(),
'wren_with_meta=' + get_option('wren_with_meta').to_string(),
],
static: true,
)
python = pymod.find_installation('python3',
required: get_option('wrenpp_with_python'),
disabler: true
)
public_incl = include_directories('include')
os = host_machine.system()
if os == 'gnu'
os = 'hurd'
elif os == 'linux'
os = 'gnu'
endif
arch = host_machine.cpu_family()
if arch == 'x86_64'
arch = 'amd64'
endif
ptr_size = 0
func_ptr_size = 0
conf = configuration_data()
if os == 'gnu' and arch == 'amd64'
ptr_size = 8
func_ptr_size = 8
endif
conf.set('POINTER_SIZE', ptr_size)
conf.set('FUNC_POINTER_SIZE', func_ptr_size)
2021-02-10 22:14:13 +00:00
conf.set('WRENPP_NAME', meson.project_name())
project_config_file = configure_file(
input: 'src/config.h.in',
output: 'config.h',
configuration: conf
)
wrenpp = library(meson.project_name(),
project_config_file,
'src/vm.cpp',
'src/configuration.cpp',
'src/def_configuration.cpp',
'src/dynafunc_maker.cpp',
'src/dynafunc_' + arch + '_' + os + '.S',
'src/handle.cpp',
'src/vm_fun.cpp',
dependencies: [wren_dep],
include_directories: public_incl,
install: true,
)
wrenpp_dep = declare_dependency(
link_with: wrenpp,
include_directories: public_incl,
)
python.extension_module('py' + meson.project_name(),
sources: [
'src/pywrenppmodule.cpp',
],
dependencies: [
python.dependency(
version: '>=3.6.0',
required: get_option('wrenpp_with_python'),
),
wrenpp_dep,
],
install: true,
)
2020-05-02 20:41:58 +00:00
if get_option('build_examples')
subdir('examples')
endif
if get_option('build_testing')
subdir('test')
endif