| 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', |
| Jagpal Singh Gill | bd04c3b | 2025-07-07 16:34:20 -0700 | [diff] [blame] | 40 | 'src/async/mutex.cpp', |
| Patrick Williams | 32ffb03 | 2020-10-12 12:17:48 -0500 | [diff] [blame] | 41 | 'src/bus.cpp', |
| Willam A. Kennington III | fc73b39 | 2022-09-07 15:00:21 -0700 | [diff] [blame] | 42 | 'src/bus/match.cpp', |
| Patrick Williams | d2b0044 | 2022-09-16 08:28:07 -0500 | [diff] [blame] | 43 | 'src/event.cpp', |
| Patrick Williams | 7418766 | 2022-08-26 19:28:24 -0500 | [diff] [blame] | 44 | 'src/exception.cpp', |
| William A. Kennington III | 226bc42 | 2021-05-05 17:08:36 -0700 | [diff] [blame] | 45 | 'src/message/native_types.cpp', |
| Patrick Williams | 7f66425 | 2020-06-04 10:20:56 -0500 | [diff] [blame] | 46 | 'src/sdbus.cpp', |
| Patrick Williams | 32ffb03 | 2020-10-12 12:17:48 -0500 | [diff] [blame] | 47 | 'src/server/interface.cpp', |
| Patrick Williams | 7f66425 | 2020-06-04 10:20:56 -0500 | [diff] [blame] | 48 | 'src/server/transaction.cpp', |
| Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 49 | ) |
| 50 | |
| William A. Kennington III | f69a8b7 | 2020-05-28 12:59:40 -0700 | [diff] [blame] | 51 | libsdbusplus = library( |
| Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 52 | 'sdbusplus', |
| 53 | libsdbusplus_src, |
| Patrick Williams | 7f66425 | 2020-06-04 10:20:56 -0500 | [diff] [blame] | 54 | include_directories: root_inc, |
| Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 55 | dependencies: [libsystemd_pkg, nlohmann_json_dep], |
| Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 56 | version: meson.project_version(), |
| 57 | install: true, |
| 58 | ) |
| 59 | |
| William A. Kennington III | 270f242 | 2021-06-04 16:07:43 -0700 | [diff] [blame] | 60 | boost_compile_args = [ |
| 61 | '-DBOOST_ASIO_DISABLE_THREADS', |
| 62 | '-DBOOST_ALL_NO_LIB', |
| 63 | '-DBOOST_SYSTEM_NO_DEPRECATED', |
| 64 | '-DBOOST_ERROR_CODE_HEADER_ONLY', |
| 65 | '-DBOOST_COROUTINES_NO_DEPRECATION_WARNING', |
| 66 | ] |
| 67 | |
| 68 | boost_dep = declare_dependency( |
| 69 | dependencies: dependency('boost', required: false), |
| Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 70 | compile_args: boost_compile_args, |
| 71 | ) |
| William A. Kennington III | 270f242 | 2021-06-04 16:07:43 -0700 | [diff] [blame] | 72 | |
| Patrick Williams | d0285b9 | 2020-06-01 09:43:47 -0500 | [diff] [blame] | 73 | sdbusplus_dep = declare_dependency( |
| 74 | include_directories: root_inc, |
| 75 | link_with: libsdbusplus, |
| Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 76 | dependencies: [boost_dep, libsystemd_pkg, nlohmann_json_dep], |
| Patrick Williams | d0285b9 | 2020-06-01 09:43:47 -0500 | [diff] [blame] | 77 | ) |
| 78 | |
| Brad Bishop | 63190dd | 2025-07-29 17:14:40 -0400 | [diff] [blame] | 79 | if meson.is_subproject() |
| 80 | sdbusplus_dep = sdbusplus_dep.as_system() |
| 81 | endif |
| 82 | |
| Patrick Williams | 74eea51 | 2025-01-03 10:03:49 -0500 | [diff] [blame] | 83 | should_generate_cpp = true |
| 84 | should_generate_markdown = false |
| 85 | should_generate_registry = false |
| 86 | |
| Patrick Williams | ad145e0 | 2020-05-19 16:45:15 -0500 | [diff] [blame] | 87 | subdir('tools') |
| 88 | |
| Patrick Williams | 892a23a | 2025-01-30 17:47:12 -0500 | [diff] [blame] | 89 | if get_option('examples').allowed() |
| Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 90 | subdir('example') |
| William A. Kennington III | 5e893b9 | 2020-06-04 02:47:29 -0700 | [diff] [blame] | 91 | endif |
| Patrick Williams | 892a23a | 2025-01-30 17:47:12 -0500 | [diff] [blame] | 92 | if get_option('tests').allowed() |
| Patrick Williams | dd6efd1 | 2025-02-01 08:36:20 -0500 | [diff] [blame] | 93 | subdir('test') |
| William A. Kennington III | 5e893b9 | 2020-06-04 02:47:29 -0700 | [diff] [blame] | 94 | endif |
| Patrick Williams | ad145e0 | 2020-05-19 16:45:15 -0500 | [diff] [blame] | 95 | |
| Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 96 | install_subdir( |
| Patrick Williams | 7f66425 | 2020-06-04 10:20:56 -0500 | [diff] [blame] | 97 | 'include/sdbusplus', |
| Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 98 | install_dir: get_option('includedir'), |
| 99 | strip_directory: false, |
| Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 100 | ) |
| 101 | |
| 102 | import('pkgconfig').generate( |
| Patrick Williams | fe0edaa | 2021-04-15 13:30:16 -0500 | [diff] [blame] | 103 | libsdbusplus, |
| Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 104 | name: meson.project_name(), |
| 105 | version: meson.project_version(), |
| Patrick Williams | fa3137a | 2020-05-28 14:49:15 -0500 | [diff] [blame] | 106 | requires: libsystemd_pkg, |
| William A. Kennington III | 270f242 | 2021-06-04 16:07:43 -0700 | [diff] [blame] | 107 | extra_cflags: boost_compile_args, |
| Patrick Williams | 98d7108 | 2020-05-15 18:55:16 -0500 | [diff] [blame] | 108 | description: 'C++ bindings for sdbus', |
| 109 | ) |