yams/tests/mobile/meson.build
trvon ca944de51b
build: trim Meson options and build only the Boost libraries YAMS links
meson_options.txt had 47 options. Several were read but never set by
any workflow, script or doc, several only fed test-lane timeouts, and
enable-{tsan,asan,ubsan} duplicated b_sanitize. 47 -> 33.

Removed (behavior kept at the previous default everywhere):
- require-fts5 (configure now always errors on a SQLite without FTS5,
  the old default), conan-generators-dir, cli11-cmake-path,
  onnxruntime-cmake-path (Conan/CMake discovery under the build dir is
  unchanged), split-debug.
- unit-timeout, integration-timeout, integration-ui-timeout,
  integration-smoke-timeout, integration-daemon-timeout and stress-iters:
  replaced by the same constants at their call sites (smoke keeps its
  test-timeout-scale multiplier). Only meson/profiles/ci-fast.ini and
  nightly-soak.ini set them, and nothing used those profiles; both go.
- enable-integration-services/-smoke and enable-daemon-integration:
  folded into enable-integration-tests. Debug builds still register every
  integration suite; nothing set the sub-toggles.

Kept, because third_party/symspell's meson.build reads them:
bench-timeout, enable-tsan and enable-asan. YAMS itself now derives all
sanitizer handling (extra flags, TSan runtime links, test timeouts) from
b_sanitize; setup.sh still mirrors its choice into enable-tsan/asan for
the submodule, and the CI ASan lane keeps -Denable-asan=true for the
same reason. enable-ubsan is a deprecated no-op (a warning if it
disagrees with b_sanitize) so build dirs configured with it still
regenerate; the UBSan lane passes only -Db_sanitize=undefined and still
gets -fno-sanitize-recover=all (standalone UBSan aborts; ASan+UBSan stays
recoverable, as before).

Conan: the without_* Boost list was applied only to iOS/Android. YAMS
uses Boost.Asio (header-only) and links only boost_system/boost_thread
on every platform (asio/ssl uses OpenSSL directly; no spawn/context), so
the list now applies everywhere. Debug Boost package on grim: 45 static
libraries / 229 MiB -> 10 / 6.8 MiB (Release: 45 / 30 MiB before).

Verified on grim: ./setup.sh Debug --no-tsan --with-tests reconfigures
an existing build/debug and builds; an existing build/release (configured
with -Denable-tsan/-Denable-asan) regenerates.

Signed-off-by: trvon <me@trevon.dev>
2026-10-01 18:52:34 -06:00

26 lines
920 B
Meson

mobile_test_srcs = files(
'mobile_abi_smoke_test.cpp',
)
mobile_dep = dependency('yams_mobile', required: get_option('enable-mobile-bindings'))
if mobile_dep.found() and catch2_dep.found() and catch2_main_dep.found()
mobile_test_deps = [dependency('yams_tune_advisor_testing'), catch2_dep, catch2_main_dep,
mobile_dep, dependency('nlohmann_json'),
dependency('yams_daemon'), dependency('spdlog'), boost_dep,
dependency('tl-expected')]
mobile_test = executable('catch2_mobile_abi', mobile_test_srcs,
include_directories: incs,
dependencies: mobile_test_deps,
cpp_args: test_cpp_noerror_args + ['-DYAMS_TESTING=1'],
install: false,
)
test('mobile_abi_smoke', mobile_test,
suite: ['mobile', 'abi'],
timeout: 1200,
)
else
message('Catch2 or yams_mobile dependency not found; skipping mobile ABI smoke tests.')
endif