Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 1 | project( |
| 2 | 'sdbusplus', |
| 3 | 'cpp', |
| 4 | 'c', |
Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 5 | default_options: [ |
Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 6 | 'buildtype=debugoptimized', |
| 7 | 'cpp_std=c++23', |
| 8 | 'warning_level=3', |
| 9 | 'werror=true', |
| 10 | 'tests=' + (meson.is_subproject() ? 'disabled' : 'auto'), |
| 11 | 'examples=' + (meson.is_subproject() ? 'disabled' : 'auto'), |
Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 12 | ], |
| 13 | version: '1.0.0', |
Patrick Williams | 798848d | 2023-07-12 18:33:46 -0500 | [diff] [blame] | 14 | meson_version: '>=1.1.1', |
Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 15 | ) |
Ed Tanous | da8574d | 2025-03-03 14:29:59 -0800 | [diff] [blame] | 16 | cxx = meson.get_compiler('cpp') |
| 17 | if (cxx.get_id() == 'clang') |
| 18 | add_project_arguments(['-Wno-c++26-extensions'], language: 'cpp') |
| 19 | endif |
Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 20 | |
| 21 | libsystemd_pkg = dependency('libsystemd') |
Patrick Williams | 14c4797 | 2024-09-24 22:10:38 -0400 | [diff] [blame] | 22 | nlohmann_json_dep = dependency('nlohmann_json', include_type: 'system') |
Manojkiran Eda | 22a03e3 | 2022-06-17 09:14:41 +0530 | [diff] [blame] | 23 | |
| 24 | python = import('python') |
Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 25 | python_bin = python.find_installation( |
| 26 | 'python3', |
| 27 | modules: ['inflection', 'yaml', 'mako'], |
| 28 | ) |
Manojkiran Eda | 22a03e3 | 2022-06-17 09:14:41 +0530 | [diff] [blame] | 29 | |
| 30 | if not python_bin.found() |
Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 31 | error('No valid python3 installation found') |
Manojkiran Eda | 22a03e3 | 2022-06-17 09:14:41 +0530 | [diff] [blame] | 32 | endif |
| 33 | |
Patrick Williams | 7f66425 | 2020-06-04 10:20:56 -0500 | [diff] [blame] | 34 | root_inc = include_directories('include') |
Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 35 | |
| 36 | libsdbusplus_src = files( |
Patrick Williams | 7418766 | 2022-08-26 19:28:24 -0500 | [diff] [blame] | 37 | 'src/async/context.cpp', |
Jagpal Singh Gill | 2a12ae1 | 2024-10-23 11:20:25 -0700 | [diff] [blame] | 38 | 'src/async/fdio.cpp', |
Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 39 | 'src/async/match.cpp', |
Patrick Williams | 32ffb03 | 2020-10-12 12:17:48 -0500 | [diff] [blame] | 40 | 'src/bus.cpp', |
Willam A. Kennington III | fc73b39 | 2022-09-07 15:00:21 -0700 | [diff] [blame] | 41 | 'src/bus/match.cpp', |
Patrick Williams | d2b0044 | 2022-09-16 08:28:07 -0500 | [diff] [blame] | 42 | 'src/event.cpp', |
Patrick Williams | 7418766 | 2022-08-26 19:28:24 -0500 | [diff] [blame] | 43 | 'src/exception.cpp', |
William A. Kennington III | 226bc42 | 2021-05-05 17:08:36 -0700 | [diff] [blame] | 44 | 'src/message/native_types.cpp', |
Patrick Williams | 7f66425 | 2020-06-04 10:20:56 -0500 | [diff] [blame] | 45 | 'src/sdbus.cpp', |
Patrick Williams | 32ffb03 | 2020-10-12 12:17:48 -0500 | [diff] [blame] | 46 | 'src/server/interface.cpp', |
Patrick Williams | 7f66425 | 2020-06-04 10:20:56 -0500 | [diff] [blame] | 47 | 'src/server/transaction.cpp', |
Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 48 | ) |
| 49 | |
William A. Kennington III | f69a8b7 | 2020-05-28 12:59:40 -0700 | [diff] [blame] | 50 | libsdbusplus = library( |
Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 51 | 'sdbusplus', |
| 52 | libsdbusplus_src, |
Patrick Williams | 7f66425 | 2020-06-04 10:20:56 -0500 | [diff] [blame] | 53 | include_directories: root_inc, |
Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 54 | dependencies: [libsystemd_pkg, nlohmann_json_dep], |
Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 55 | version: meson.project_version(), |
| 56 | install: true, |
| 57 | ) |
| 58 | |
William A. Kennington III | 270f242 | 2021-06-04 16:07:43 -0700 | [diff] [blame] | 59 | boost_compile_args = [ |
| 60 | '-DBOOST_ASIO_DISABLE_THREADS', |
| 61 | '-DBOOST_ALL_NO_LIB', |
| 62 | '-DBOOST_SYSTEM_NO_DEPRECATED', |
| 63 | '-DBOOST_ERROR_CODE_HEADER_ONLY', |
| 64 | '-DBOOST_COROUTINES_NO_DEPRECATION_WARNING', |
| 65 | ] |
| 66 | |
| 67 | boost_dep = declare_dependency( |
| 68 | dependencies: dependency('boost', required: false), |
Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 69 | compile_args: boost_compile_args, |
| 70 | ) |
William A. Kennington III | 270f242 | 2021-06-04 16:07:43 -0700 | [diff] [blame] | 71 | |
Patrick Williams | d0285b9 | 2020-06-01 09:43:47 -0500 | [diff] [blame] | 72 | sdbusplus_dep = declare_dependency( |
| 73 | include_directories: root_inc, |
| 74 | link_with: libsdbusplus, |
Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 75 | dependencies: [boost_dep, libsystemd_pkg, nlohmann_json_dep], |
Patrick Williams | d0285b9 | 2020-06-01 09:43:47 -0500 | [diff] [blame] | 76 | ) |
| 77 | |
Patrick Williams | 74eea51 | 2025-01-03 10:03:49 -0500 | [diff] [blame] | 78 | should_generate_cpp = true |
| 79 | should_generate_markdown = false |
| 80 | should_generate_registry = false |
| 81 | |
Patrick Williams | ad145e0 | 2020-05-19 16:45:15 -0500 | [diff] [blame] | 82 | subdir('tools') |
| 83 | |
Patrick Williams | 892a23a | 2025-01-30 17:47:12 -0500 | [diff] [blame] | 84 | if get_option('examples').allowed() |
Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 85 | subdir('example') |
William A. Kennington III | 5e893b9 | 2020-06-04 02:47:29 -0700 | [diff] [blame] | 86 | endif |
Patrick Williams | 892a23a | 2025-01-30 17:47:12 -0500 | [diff] [blame] | 87 | if get_option('tests').allowed() |
Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 88 | subdir('test') |
William A. Kennington III | 5e893b9 | 2020-06-04 02:47:29 -0700 | [diff] [blame] | 89 | endif |
Patrick Williams | ad145e0 | 2020-05-19 16:45:15 -0500 | [diff] [blame] | 90 | |
Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 91 | install_subdir( |
Patrick Williams | 7f66425 | 2020-06-04 10:20:56 -0500 | [diff] [blame] | 92 | 'include/sdbusplus', |
Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 93 | install_dir: get_option('includedir'), |
| 94 | strip_directory: false, |
Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 95 | ) |
| 96 | |
| 97 | import('pkgconfig').generate( |
Patrick Williams | fe0edaa | 2021-04-15 13:30:16 -0500 | [diff] [blame] | 98 | libsdbusplus, |
Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 99 | name: meson.project_name(), |
| 100 | version: meson.project_version(), |
Patrick Williams | fa3137a | 2020-05-28 14:49:15 -0500 | [diff] [blame] | 101 | requires: libsystemd_pkg, |
William A. Kennington III | 270f242 | 2021-06-04 16:07:43 -0700 | [diff] [blame] | 102 | extra_cflags: boost_compile_args, |
Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 103 | description: 'C++ bindings for sdbus', |
| 104 | ) |