blob: 613f9ca49466f84cebf172af5da0d7963ca6bce9 [file] [log] [blame]
Patrick Williamsad145e02020-05-19 16:45:15 -05001project('sdbusplus', 'cpp', 'c',
Patrick Williams98d71082020-05-15 18:55:16 -05002 default_options: [
Patrick Williamsfeb48472020-05-19 06:23:10 -05003 'buildtype=debugoptimized',
Patrick Williams798848d2023-07-12 18:33:46 -05004 'cpp_std=c++23',
Patrick Williams601d9752021-07-21 14:16:06 -05005 'warning_level=3',
Patrick Williams98d71082020-05-15 18:55:16 -05006 'werror=true',
William A. Kennington IIIf05b4ca2020-06-04 02:48:52 -07007 'tests=' + (meson.is_subproject() ? 'disabled' : 'auto'),
8 'examples=' + (meson.is_subproject() ? 'disabled' : 'auto'),
Patrick Williams98d71082020-05-15 18:55:16 -05009 ],
10 version: '1.0.0',
Patrick Williams798848d2023-07-12 18:33:46 -050011 meson_version: '>=1.1.1',
Patrick Williams98d71082020-05-15 18:55:16 -050012)
13
14libsystemd_pkg = dependency('libsystemd')
Patrick Williams14c47972024-09-24 22:10:38 -040015nlohmann_json_dep = dependency('nlohmann_json', include_type: 'system')
Manojkiran Eda22a03e32022-06-17 09:14:41 +053016
17python = import('python')
18python_bin = python.find_installation('python3', modules:['inflection', 'yaml', 'mako'])
19
20if not python_bin.found()
21 error('No valid python3 installation found')
22endif
23
24
Patrick Williams7f664252020-06-04 10:20:56 -050025root_inc = include_directories('include')
Patrick Williams98d71082020-05-15 18:55:16 -050026
27libsdbusplus_src = files(
Patrick Williams74187662022-08-26 19:28:24 -050028 'src/async/context.cpp',
Patrick Williams290fa422022-08-29 09:15:58 -050029 'src/async/match.cpp',
Jagpal Singh Gill2a12ae12024-10-23 11:20:25 -070030 'src/async/fdio.cpp',
Patrick Williams32ffb032020-10-12 12:17:48 -050031 'src/bus.cpp',
Willam A. Kennington IIIfc73b392022-09-07 15:00:21 -070032 'src/bus/match.cpp',
Patrick Williamsd2b00442022-09-16 08:28:07 -050033 'src/event.cpp',
Patrick Williams74187662022-08-26 19:28:24 -050034 'src/exception.cpp',
William A. Kennington III226bc422021-05-05 17:08:36 -070035 'src/message/native_types.cpp',
Patrick Williams7f664252020-06-04 10:20:56 -050036 'src/sdbus.cpp',
Patrick Williams32ffb032020-10-12 12:17:48 -050037 'src/server/interface.cpp',
Patrick Williams7f664252020-06-04 10:20:56 -050038 'src/server/transaction.cpp',
Patrick Williams98d71082020-05-15 18:55:16 -050039)
40
William A. Kennington IIIf69a8b72020-05-28 12:59:40 -070041libsdbusplus = library(
Patrick Williams98d71082020-05-15 18:55:16 -050042 'sdbusplus',
43 libsdbusplus_src,
Patrick Williams7f664252020-06-04 10:20:56 -050044 include_directories: root_inc,
Patrick Williams14c47972024-09-24 22:10:38 -040045 dependencies: [
46 libsystemd_pkg,
47 nlohmann_json_dep
48 ],
Patrick Williams98d71082020-05-15 18:55:16 -050049 version: meson.project_version(),
50 install: true,
51)
52
William A. Kennington III270f2422021-06-04 16:07:43 -070053boost_compile_args = [
54 '-DBOOST_ASIO_DISABLE_THREADS',
55 '-DBOOST_ALL_NO_LIB',
56 '-DBOOST_SYSTEM_NO_DEPRECATED',
57 '-DBOOST_ERROR_CODE_HEADER_ONLY',
58 '-DBOOST_COROUTINES_NO_DEPRECATION_WARNING',
59]
60
61boost_dep = declare_dependency(
62 dependencies: dependency('boost', required: false),
63 compile_args: boost_compile_args)
64
Patrick Williamsd0285b92020-06-01 09:43:47 -050065sdbusplus_dep = declare_dependency(
66 include_directories: root_inc,
67 link_with: libsdbusplus,
Patrick Williams14c47972024-09-24 22:10:38 -040068 dependencies: [
69 boost_dep,
70 libsystemd_pkg,
71 nlohmann_json_dep,
72 ],
Patrick Williamsd0285b92020-06-01 09:43:47 -050073)
74
Patrick Williamsad145e02020-05-19 16:45:15 -050075subdir('tools')
76
William A. Kennington III5e893b92020-06-04 02:47:29 -070077if not get_option('examples').disabled()
78 subdir('example')
79endif
80if not get_option('tests').disabled()
81 subdir('test')
82endif
Patrick Williamsad145e02020-05-19 16:45:15 -050083
Patrick Williams98d71082020-05-15 18:55:16 -050084install_subdir(
Patrick Williams7f664252020-06-04 10:20:56 -050085 'include/sdbusplus',
Patrick Williams98d71082020-05-15 18:55:16 -050086 install_dir: get_option('includedir'),
87 strip_directory: false,
Patrick Williams98d71082020-05-15 18:55:16 -050088)
89
90import('pkgconfig').generate(
Patrick Williamsfe0edaa2021-04-15 13:30:16 -050091 libsdbusplus,
Patrick Williams98d71082020-05-15 18:55:16 -050092 name: meson.project_name(),
93 version: meson.project_version(),
Patrick Williamsfa3137a2020-05-28 14:49:15 -050094 requires: libsystemd_pkg,
William A. Kennington III270f2422021-06-04 16:07:43 -070095 extra_cflags: boost_compile_args,
Patrick Williams98d71082020-05-15 18:55:16 -050096 description: 'C++ bindings for sdbus',
97)