restc_cpp_dep = dependency('restc-cpp', version: '>=0.1.1', fallback: ['restc-cpp', 'restc_cpp_dep'], default_options: [ 'restc_cpp_with_unit_tests=false', 'restc_cpp_log_with_boost_log=false', ], ) if not get_option('with_sqlite').disabled() sqlitecpp_dep = dependency('sqlitecpp', version: '>=3.0.0', fallback: ['SQLiteCpp', 'sqlitecpp_dep'], required: get_option('with_sqlite'), ) else sqlitecpp_dep = disabler() endif ev_dep = dependency('libev', version: '>=4.31') threads_dep = dependency('threads') boost_dep = dependency('boost') base_url = get_option('base_url').strip() if not base_url.endswith('/') base_url = base_url + '/' endif conf = configuration_data() conf.set_quoted('BASE_URL', base_url) conf.set_quoted('CONFIG_FILE_PATH', get_option('prefix') / get_option('sysconfdir') / meson.project_name() + '.conf') conf.set_quoted('DEF_SQLITE_DB_NAME', get_option('def_sqlite_db_name')) conf.set_quoted('PROJECT_NAME', meson.project_name()) if get_option('buildtype') == 'debug' conf.set_quoted('BUILD_PURPOSE', 'Debugging') else conf.set_quoted('BUILD_PURPOSE', 'Production') endif version_arr = meson.project_version().split('.') conf.set('PROJECT_VERSION_MAJOR', version_arr[0]) conf.set('PROJECT_VERSION_MINOR', version_arr[1]) conf.set('PROJECT_VERSION_PATCH', version_arr[2]) conf.set('OROTOOL_WITH_SQLITE', sqlitecpp_dep.found()) project_config_file = configure_file( input: 'config.hpp.in', output: meson.project_name() + '_config.hpp', configuration: conf, ) gnulib_conf = configuration_data() gnulib_conf.set('_GL_ATTRIBUTE_CONST', '__attribute__ ((__const__))') configure_file(output : 'config.h', configuration : gnulib_conf) backend_libs = [ sqlitecpp_dep, ] backends_selected = false foreach backend_lib : backend_libs backends_selected = backends_selected or backend_lib.found() endforeach if not backends_selected error('No backend was enabled or none of the enabled backend dependencies could be located') endif lib_deps = [ restc_cpp_dep, ev_dep, threads_dep, boost_dep, ] + backend_libs executable(meson.project_name(), 'main.cpp', 'ini_file.cpp', 'oro/datatypes.cpp', 'oro/api.cpp', 'oro/private/dateconv.cpp', 'oro/items.cpp', 'oro/shops.cpp', 'evloop.cpp', 'eventia/eventia.cpp', 'eventia/timer.cpp', 'timer_base.cpp', 'oro/originsdb.cpp', 'gnulib/lib/base64.c', 'base64.cpp', 'app_config.cpp', 'oro/private/tiger.c', 'oro/private/tiger.cpp', 'eventia/signal.cpp', 'eventia/event.cpp', 'timer_oro_api.cpp', project_config_file, install: true, dependencies: lib_deps, include_directories: [ date_inc, duckhandy_inc, magic_enum_inc, ], cpp_args: ['-DEV_USE_STDEXCEPT'], )