meson: fix build for FreeBSD/clang compatibility
Remove GCC-specific static link args (-static, -static-libgcc,
-static-libstdc++) that fail under clang. Add threads_dep via
dependency('threads') to all targets so Boost ASIO's pthread
usage links correctly on FreeBSD where clang does not pull it in
implicitly. Linux/GCC builds are unaffected.
This commit is contained in:
+7
-5
@@ -6,30 +6,32 @@ project('finger', 'cpp',
|
|||||||
# Find Boost dependencies - prefer static libraries
|
# Find Boost dependencies - prefer static libraries
|
||||||
boost_dep = dependency('boost', modules : ['system'], static : true)
|
boost_dep = dependency('boost', modules : ['system'], static : true)
|
||||||
|
|
||||||
|
# pthreads — required by Boost ASIO; clang on FreeBSD does not link it implicitly
|
||||||
|
threads_dep = dependency('threads')
|
||||||
|
|
||||||
# Find Google Test and Google Mock dependencies
|
# Find Google Test and Google Mock dependencies
|
||||||
gtest_dep = dependency('gtest', main : true, required : true)
|
gtest_dep = dependency('gtest', main : true, required : true)
|
||||||
gmock_dep = dependency('gmock', main : true, required : true)
|
gmock_dep = dependency('gmock', main : true, required : true)
|
||||||
|
|
||||||
executable('finger',
|
executable('finger',
|
||||||
'main.cpp','handler.cpp',
|
'main.cpp','handler.cpp',
|
||||||
dependencies : [boost_dep],
|
dependencies : [boost_dep, threads_dep],
|
||||||
link_args : ['-static', '-static-libgcc', '-static-libstdc++'],
|
|
||||||
install : true)
|
install : true)
|
||||||
|
|
||||||
# Test executable
|
# Test executable
|
||||||
test_exe = executable('test_handler',
|
test_exe = executable('test_handler',
|
||||||
'test_handler.cpp', 'handler.cpp',
|
'test_handler.cpp', 'handler.cpp',
|
||||||
dependencies : [boost_dep, gtest_dep, gmock_dep])
|
dependencies : [boost_dep, threads_dep, gtest_dep, gmock_dep])
|
||||||
|
|
||||||
# Mock test executable
|
# Mock test executable
|
||||||
test_mock_exe = executable('test_handler_mock',
|
test_mock_exe = executable('test_handler_mock',
|
||||||
'test_handler_mock.cpp', 'handler.cpp',
|
'test_handler_mock.cpp', 'handler.cpp',
|
||||||
dependencies : [boost_dep, gtest_dep, gmock_dep])
|
dependencies : [boost_dep, threads_dep, gtest_dep, gmock_dep])
|
||||||
|
|
||||||
# Real filesystem test executable
|
# Real filesystem test executable
|
||||||
test_real_fs_exe = executable('test_handler_real_filesystem',
|
test_real_fs_exe = executable('test_handler_real_filesystem',
|
||||||
'test_handler_real_filesystem.cpp', 'handler.cpp',
|
'test_handler_real_filesystem.cpp', 'handler.cpp',
|
||||||
dependencies : [boost_dep, gtest_dep, gmock_dep])
|
dependencies : [boost_dep, threads_dep, gtest_dep, gmock_dep])
|
||||||
|
|
||||||
# Register the tests
|
# Register the tests
|
||||||
test('handler_tests', test_exe)
|
test('handler_tests', test_exe)
|
||||||
|
|||||||
Reference in New Issue
Block a user