diff --git a/CMakeLists.txt b/CMakeLists.txt index 221c67a..e96bf01 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,4 +92,9 @@ add_subdirectory(src/utils) add_subdirectory(third_party) +# 'regenerate-proxies' target (opt-in, not part of the default build) that +# regenerates src/proxy/ from interfaces/*.xml. Must follow third_party so the +# sdbus-c++-xml2cpp tool target exists. +include(GenerateProxies) + include (packaging) diff --git a/README.md b/README.md index bc5df36..e094b27 100644 --- a/README.md +++ b/README.md @@ -31,11 +31,18 @@ The basics ## Updating proxy files -Build this project once for artifact `sdbus-c++-xml2cpp`. +The proxy classes in `src/proxy/` are generated ahead of time from the XML in +`interfaces/` and committed to the repository. To regenerate them, build the +`regenerate-proxies` target — it builds the `sdbus-c++-xml2cpp` tool as needed: - ./generate.sh + cmake -B build -GNinja + cmake --build build --target regenerate-proxies -If you re-generate interfaces with a different version of sdbus-cpp, likely you will need to make source code changes. +Regeneration is intentionally not part of the default build (it rewrites tracked +source files). The interface-to-proxy mapping lives in `cmake/GenerateProxies.cmake`; +add a new interface by appending a pair there. + +If you re-generate against a different version of sdbus-cpp, likely you will need to make source code changes. This is the primary reason for using sdbus-cpp as a submodule. ## Connecting to the system bus of a remote target diff --git a/cmake/GenerateProxies.cmake b/cmake/GenerateProxies.cmake new file mode 100644 index 0000000..2eed587 --- /dev/null +++ b/cmake/GenerateProxies.cmake @@ -0,0 +1,125 @@ +# GenerateProxies.cmake — regenerate the checked-in D-Bus proxy headers. +# +# The proxy headers under src/proxy/ are generated ahead of time from the XML +# interface definitions in interfaces/ and committed to the repository (there is +# no runtime introspection). This module replaces the old generate.sh with a +# CMake target driven by the sdbus-c++-xml2cpp tool built by the +# third_party/sdbus-cpp submodule: +# +# cmake --build --target regenerate-proxies +# +# It is deliberately NOT part of the default build: regeneration rewrites tracked +# source files, so it must be an explicit, on-demand step. Include this module +# after add_subdirectory(third_party) so the tool target exists. +# +# The list below is the single source of truth for the interface -> proxy +# mapping (path under interfaces/ -> path under src/proxy/). Add a new +# interface by appending a pair and rerunning the target. + +set(_proxy_map + "org/bluez/Adapter1/Adapter1.xml" "org/bluez/Adapter1/adapter1_proxy.h" + "org/bluez/AgentManager1/AgentManager1.xml" "org/bluez/AgentManager/agent_manager1_proxy.h" + "org/bluez/BatteryProviderManager1/BatteryProviderManager1.xml" "org/bluez/BatteryProviderManager1/battery_provider_manager1_proxy.h" + "org/bluez/Battery1/Battery1.xml" "org/bluez/Battery1/battery1_proxy.h" + "org/bluez/Device1/Device1.xml" "org/bluez/Device1/device1_proxy.h" + "org/bluez/Input1/Input1.xml" "org/bluez/Input1/input_proxy.h" + "org/bluez/LEAdvertisingManager1/LEAdvertisingManager1.xml" "org/bluez/LEAdvertisingManager1/le_advertising_manager1_proxy.h" + "org/bluez/Media1/Media1.xml" "org/bluez/Media1/media1_proxy.h" + "org/bluez/NetworkServer1/NetworkServer1.xml" "org/bluez/NetworkServer1/network_server1_proxy.h" + "org/bluez/Profile1/Profile1.xml" "org/bluez/Profile1/profile1_proxy.h" + "org/bluez/GattManager1/GattManager1.xml" "org/bluez/GattManager1/gatt_manager1_proxy.h" + "org/bluez/GattService1/GattService1.xml" "org/bluez/GattService1/gatt_service1_proxy.h" + "org/bluez/GattCharacteristic1/GattCharacteristic1.xml" "org/bluez/GattCharacteristic1/gatt_characteristic1_proxy.h" + "org/bluez/GattDescriptor1/GattDescriptor1.xml" "org/bluez/GattDescriptor1/gatt_descriptor1_proxy.h" + "org/freedesktop/UPower/UPower.xml" "org/freedesktop/UPower/upower_proxy.h" + "org/freedesktop/UPower/DisplayDevice/DisplayDevice.xml" "org/freedesktop/UPower/DisplayDevice/display_device_proxy.h" + "org/freedesktop/login1/Manager/Manager.xml" "org/freedesktop/login1/Manager/manager_proxy.h" + "org/freedesktop/login1/Seat/Seat.xml" "org/freedesktop/login1/Seat/seat_proxy.h" + "org/freedesktop/login1/Session/Session.xml" "org/freedesktop/login1/Session/session_proxy.h" + "org/freedesktop/login1/User/User.xml" "org/freedesktop/login1/User/user_proxy.h" + "org/freedesktop/hostname1/hostname1.xml" "org/freedesktop/hostname1/hostname1_proxy.h" + "org/freedesktop/locale1/locale1.xml" "org/freedesktop/locale1/locale1_proxy.h" + "org/freedesktop/ModemManager1/ModemManager1.xml" "org/freedesktop/ModemManager1/ModemManager1_proxy.h" + "org/freedesktop/timedate1/timedate1.xml" "org/freedesktop/timedate1/timedate1_proxy.h" + "org/freedesktop/timesync1/Manager/Manager.xml" "org/freedesktop/timesync1/manager_proxy.h" + "org/freedesktop/GeoClue2/Manager/Manager.xml" "org/freedesktop/GeoClue2/Manager/manager_proxy.h" + "org/freedesktop/GeoClue2/Client/Client.xml" "org/freedesktop/GeoClue2/Client/client_proxy.h" + "org/freedesktop/GeoClue2/Client/Location/Location.xml" "org/freedesktop/GeoClue2/Client/Location/location_proxy.h" + "org/freedesktop/resolve1/Manager/Manager.xml" "org/freedesktop/resolve1/Manager/manager_proxy.h" + "org/freedesktop/resolve1/Link/Link.xml" "org/freedesktop/resolve1/Link/link_proxy.h" + "org/freedesktop/fwupd/fwupd.xml" "org/freedesktop/fwupd/fwupd_proxy.h" + "org/freedesktop/PackageKit/PackageKit.xml" "org/freedesktop/PackageKit/packagekit_proxy.h" + "org/freedesktop/PackageKit/Offline/Offline.xml" "org/freedesktop/PackageKit/Offline/offline_proxy.h" + "org/freedesktop/PackageKit/Transaction/Transaction.xml" "org/freedesktop/PackageKit/Transaction/transaction_proxy.h" + "org/freedesktop/RealtimeKit1/RealtimeKit1.xml" "org/freedesktop/RealtimeKit1/realtime_kit1_proxy.h" + "org/freedesktop/Avahi/Server/Server.xml" "org/freedesktop/Avahi/Server/server_proxy.h" + "org/freedesktop/Avahi/Server2/Server2.xml" "org/freedesktop/Avahi/Server2/server2_proxy.h" + "org/freedesktop/Flatpak/SystemHelper/SystemHelper.xml" "org/freedesktop/Flatpak/SystemHelper/system_helper_proxy.h" + "org/freedesktop/UDisks2/Block/Block.xml" "org/freedesktop/UDisks2/Block/block_proxy.h" + "org/freedesktop/UDisks2/Drive/Drive.xml" "org/freedesktop/UDisks2/Drive/drive_proxy.h" + "org/freedesktop/UDisks2/Manager/Manager.xml" "org/freedesktop/UDisks2/Manager/manager_proxy.h" + "org/freedesktop/UDisks2/Manager/NVMe/NVMe.xml" "org/freedesktop/UDisks2/Manager/NVMe/nvme_proxy.h" + "org/freedesktop/UDisks2/NVMe/Controller/Controller.xml" "org/freedesktop/UDisks2/NVMe/controller_proxy.h" + "org/freedesktop/UDisks2/NVMe/Namespace/Namespace.xml" "org/freedesktop/UDisks2/NVMe/Namespace/namespace_proxy.h" + "org/freedesktop/UDisks2/Filesystem/Filesystem.xml" "org/freedesktop/UDisks2/Filesystem/filesystem_proxy.h" + "org/freedesktop/UDisks2/Partition/Partition.xml" "org/freedesktop/UDisks2/Partition/partition_proxy.h" + "org/freedesktop/UDisks2/PartitionTable/PartitionTable.xml" "org/freedesktop/UDisks2/PartitionTable/partition_table_proxy.h" + "org/freedesktop/UDisks2/Swapspace/Swapspace.xml" "org/freedesktop/UDisks2/Swapspace/swapspace_proxy.h" + "org/freedesktop/NetworkManager/NetworkManager.xml" "org/freedesktop/NetworkManager/network_manager_proxy.h" + "org/freedesktop/NetworkManager/AgentManager/AgentManager.xml" "org/freedesktop/NetworkManager/AgentManager/agent_manager_proxy.h" + "org/freedesktop/NetworkManager/Connection/Active/Active.xml" "org/freedesktop/NetworkManager/Connection/Active/active_proxy.h" + "org/freedesktop/NetworkManager/Device/Loopback/Loopback.xml" "org/freedesktop/NetworkManager/Device/Loopback/loopback_proxy.h" + "org/freedesktop/NetworkManager/Device/Statistics/Statistics.xml" "org/freedesktop/NetworkManager/Device/Statistics/statistics_proxy.h" + "org/freedesktop/NetworkManager/Device/Wireless/Wireless.xml" "org/freedesktop/NetworkManager/Device/Wireless/wireless_proxy.h" + "org/freedesktop/NetworkManager/Device/Device.xml" "org/freedesktop/NetworkManager/Device/device_proxy.h" + "org/freedesktop/NetworkManager/DHCP4Config/DHCP4Config.xml" "org/freedesktop/NetworkManager/DHCP4Config/dhcp4_config_proxy.h" + "org/freedesktop/NetworkManager/DnsManager/DnsManager.xml" "org/freedesktop/NetworkManager/DnsManager/dns_manager_proxy.h" + "org/freedesktop/NetworkManager/IP4Config/IP4Config.xml" "org/freedesktop/NetworkManager/IP4Config/ip4_config_proxy.h" + "org/freedesktop/NetworkManager/IP6Config/IP6Config.xml" "org/freedesktop/NetworkManager/IP6Config/ip6_config_proxy.h" + "org/freedesktop/NetworkManager/Settings/Connection/Connection.xml" "org/freedesktop/NetworkManager/Settings/Connection/connection_proxy.h" + "org/freedesktop/NetworkManager/Settings/Settings.xml" "org/freedesktop/NetworkManager/Settings/settings_proxy.h" + "org/freedesktop/network1/Link/Link.xml" "org/freedesktop/network1/Link/link_proxy.h" + "org/freedesktop/network1/Network/Network.xml" "org/freedesktop/network1/Network/network_proxy.h" + "org/freedesktop/network1/Manager/Manager.xml" "org/freedesktop/network1/Manager/manager_proxy.h" + "org/freedesktop/PolicyKit1/Authority/Authority.xml" "org/freedesktop/PolicyKit1/Authority/authority_proxy.h" + "org/freedesktop/systemd1/Manager/Manager.xml" "org/freedesktop/systemd1/Manager/manager_proxy.h" + "org/freedesktop/systemd1/Service/Service.xml" "org/freedesktop/systemd1/Service/service_proxy.h" + "org/freedesktop/systemd1/Unit/Unit.xml" "org/freedesktop/systemd1/Unit/unit_proxy.h" + "fi/w1/wpa_supplicant1/wpa_supplicant1.xml" "fi/w1/wpa_supplicant1/wpa_supplicant1_proxy.h" + "net/connman/Clock/Clock.xml" "net/connman/Clock/clock_proxy.h" + "net/connman/Manager/Manager.xml" "net/connman/Manager/manager_proxy.h" + "net/connman/Service/Service.xml" "net/connman/Service/service_proxy.h" + "net/connman/Technology/Technology.xml" "net/connman/Technology/technology_proxy.h" + "org/ofono/HandsfreeAudioManager/HandsfreeAudioManager.xml" "org/ofono/HandsfreeAudioManager/handsfree_audio_manager_proxy.h" + "org/ofono/Manager/Manager.xml" "org/ofono/Manager/manager_proxy.h" +) + +add_custom_target(regenerate-proxies + COMMENT "Regenerating D-Bus proxy headers from interfaces/*.xml") +add_dependencies(regenerate-proxies sdbus-c++-xml2cpp) + +list(LENGTH _proxy_map _proxy_map_len) +math(EXPR _proxy_map_last "${_proxy_map_len} - 1") +foreach (_i RANGE 0 ${_proxy_map_last} 2) + list(GET _proxy_map ${_i} _xml) + math(EXPR _j "${_i} + 1") + list(GET _proxy_map ${_j} _out) + cmake_path(GET _out PARENT_PATH _out_dir) + # Run from the source root and pass RELATIVE paths: xml2cpp derives the + # include-guard macro from the --proxy path, so a relative path keeps the + # guards identical to what generate.sh produced (an absolute path bakes the + # checkout location into every guard). + add_custom_command(TARGET regenerate-proxies POST_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory "src/proxy/${_out_dir}" + COMMAND "$" + "--proxy=src/proxy/${_out}" "interfaces/${_xml}" + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + VERBATIM) +endforeach () + +# Format the generated headers the same way the committed ones are stored. +add_custom_command(TARGET regenerate-proxies POST_BUILD + COMMAND bash "${CMAKE_SOURCE_DIR}/scripts/clang-format.sh" src/proxy + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + COMMENT "Formatting generated proxy headers" + VERBATIM) diff --git a/generate.sh b/generate.sh deleted file mode 100755 index 33c256e..0000000 --- a/generate.sh +++ /dev/null @@ -1,185 +0,0 @@ -#!/bin/bash -ex - -PROXY=src/proxy - -# fix — safe tool resolution (no unconstrained find) -# -# Previous code: XML2CPP=$(find -iname sdbus-c++-xml2cpp) -# Risk: an adversary who can plant a file named sdbus-c++-xml2cpp anywhere -# beneath the working directory (e.g., in a malicious submodule) would have it -# executed instead of the real code-generator. -# -# Strategy (ordered, most-specific first): -# 1. Known CMake build-tree path (cmake-build-debug or build). -# 2. The tool on PATH (installed system-wide or via the project's own install). -# 3. Abort with a clear error — never fall through to an untrusted location. -_find_xml2cpp() { - local candidates=( - "cmake-build-debug/third_party/sdbus-cpp/tools/sdbus-c++-xml2cpp" - "build/third_party/sdbus-cpp/tools/sdbus-c++-xml2cpp" - "cmake-build-release/third_party/sdbus-cpp/tools/sdbus-c++-xml2cpp" - ) - for candidate in "${candidates[@]}"; do - if [[ -x "${candidate}" ]]; then - echo "${candidate}" - return 0 - fi - done - # Fall back to a PATH lookup (e.g., system-installed package) - if command -v sdbus-c++-xml2cpp &>/dev/null; then - command -v sdbus-c++-xml2cpp - return 0 - fi - echo "ERROR: sdbus-c++-xml2cpp not found." \ - "Build the project first (cmake + ninja) or install sdbus-c++." >&2 - return 1 -} - -XML2CPP=$(_find_xml2cpp) - -mkdir -p ${PROXY}/org/bluez/{Adapter1,AgentManager,BatteryProviderManager1,Battery1,Device1,GattManager1,GattService1,GattCharacteristic1,GattDescriptor1,Input1,LEAdvertisingManager1,Media1,NetworkServer1,Profile1} |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/bluez/Adapter1/adapter1_proxy.h interfaces/org/bluez/Adapter1/Adapter1.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/bluez/AgentManager/agent_manager1_proxy.h interfaces/org/bluez/AgentManager1/AgentManager1.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/bluez/BatteryProviderManager1/battery_provider_manager1_proxy.h interfaces/org/bluez/BatteryProviderManager1/BatteryProviderManager1.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/bluez/Battery1/battery1_proxy.h interfaces/org/bluez/Battery1/Battery1.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/bluez/Device1/device1_proxy.h interfaces/org/bluez/Device1/Device1.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/bluez/Input1/input_proxy.h interfaces/org/bluez/Input1/Input1.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/bluez/LEAdvertisingManager1/le_advertising_manager1_proxy.h interfaces/org/bluez/LEAdvertisingManager1/LEAdvertisingManager1.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/bluez/Media1/media1_proxy.h interfaces/org/bluez/Media1/Media1.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/bluez/NetworkServer1/network_server1_proxy.h interfaces/org/bluez/NetworkServer1/NetworkServer1.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/bluez/Profile1/profile1_proxy.h interfaces/org/bluez/Profile1/Profile1.xml - -${XML2CPP} --verbose --proxy=${PROXY}/org/bluez/GattManager1/gatt_manager1_proxy.h interfaces/org/bluez/GattManager1/GattManager1.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/bluez/GattService1/gatt_service1_proxy.h interfaces/org/bluez/GattService1/GattService1.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/bluez/GattCharacteristic1/gatt_characteristic1_proxy.h interfaces/org/bluez/GattCharacteristic1/GattCharacteristic1.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/bluez/GattDescriptor1/gatt_descriptor1_proxy.h interfaces/org/bluez/GattDescriptor1/GattDescriptor1.xml - -mkdir -p ${PROXY}/org/freedesktop/UPower/DisplayDevice |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/UPower/upower_proxy.h interfaces/org/freedesktop/UPower/UPower.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/UPower/DisplayDevice/display_device_proxy.h interfaces/org/freedesktop/UPower/DisplayDevice/DisplayDevice.xml - -mkdir -p ${PROXY}/org/freedesktop/login1/{Manager,Seat,Session,User} |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/login1/Manager/manager_proxy.h interfaces/org/freedesktop/login1/Manager/Manager.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/login1/Seat/seat_proxy.h interfaces/org/freedesktop/login1/Seat/Seat.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/login1/Session/session_proxy.h interfaces/org/freedesktop/login1/Session/Session.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/login1/User/user_proxy.h interfaces/org/freedesktop/login1/User/User.xml - -mkdir -p ${PROXY}/org/freedesktop/hostname1 |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/hostname1/hostname1_proxy.h interfaces/org/freedesktop/hostname1/hostname1.xml - -mkdir -p ${PROXY}/org/freedesktop/locale1 |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/locale1/locale1_proxy.h interfaces/org/freedesktop/locale1/locale1.xml - -mkdir -p ${PROXY}/org/freedesktop/ModemManager1 |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/ModemManager1/ModemManager1_proxy.h interfaces/org/freedesktop/ModemManager1/ModemManager1.xml - -mkdir -p ${PROXY}/org/freedesktop/timedate1 |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/timedate1/timedate1_proxy.h interfaces/org/freedesktop/timedate1/timedate1.xml - -mkdir -p ${PROXY}/org/freedesktop/timesync1 |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/timesync1/manager_proxy.h interfaces/org/freedesktop/timesync1/Manager/Manager.xml - -mkdir -p ${PROXY}/org/freedesktop/GeoClue2/{Manager,Client/Location} |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/GeoClue2/Manager/manager_proxy.h interfaces/org/freedesktop/GeoClue2/Manager/Manager.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/GeoClue2/Client/client_proxy.h interfaces/org/freedesktop/GeoClue2/Client/Client.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/GeoClue2/Client/Location/location_proxy.h interfaces/org/freedesktop/GeoClue2/Client/Location/Location.xml - -mkdir -p ${PROXY}/org/freedesktop/resolve1/{Manager,Link} |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/resolve1/Manager/manager_proxy.h interfaces/org/freedesktop/resolve1/Manager/Manager.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/resolve1/Link/link_proxy.h interfaces/org/freedesktop/resolve1/Link/Link.xml - -mkdir -p ${PROXY}/org/freedesktop/fwupd |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/fwupd/fwupd_proxy.h interfaces/org/freedesktop/fwupd/fwupd.xml - -mkdir -p ${PROXY}/org/freedesktop/PackageKit/{Offline,Transaction} |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/PackageKit/packagekit_proxy.h interfaces/org/freedesktop/PackageKit/PackageKit.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/PackageKit/Offline/offline_proxy.h interfaces/org/freedesktop/PackageKit/Offline/Offline.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/PackageKit/Transaction/transaction_proxy.h interfaces/org/freedesktop/PackageKit/Transaction/Transaction.xml - -mkdir -p ${PROXY}/org/freedesktop/RealtimeKit1 |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/RealtimeKit1/realtime_kit1_proxy.h interfaces/org/freedesktop/RealtimeKit1/RealtimeKit1.xml - -mkdir -p ${PROXY}/org/freedesktop/Avahi/{Server,Server2} |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/Avahi/Server/server_proxy.h interfaces/org/freedesktop/Avahi/Server/Server.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/Avahi/Server2/server2_proxy.h interfaces/org/freedesktop/Avahi/Server2/Server2.xml - -mkdir -p ${PROXY}/org/freedesktop/Flatpak/SystemHelper |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/Flatpak/SystemHelper/system_helper_proxy.h interfaces/org/freedesktop/Flatpak/SystemHelper/SystemHelper.xml - -mkdir -p ${PROXY}/org/freedesktop/UDisks2/{Block,Drive,Manager,Manager/NVMe,NVMe/Controller,NVMe/Namespace,Filesystem,Partition,PartitionTable,Swapspace} |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/UDisks2/Block/block_proxy.h interfaces/org/freedesktop/UDisks2/Block/Block.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/UDisks2/Drive/drive_proxy.h interfaces/org/freedesktop/UDisks2/Drive/Drive.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/UDisks2/Manager/manager_proxy.h interfaces/org/freedesktop/UDisks2/Manager/Manager.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/UDisks2/Manager/NVMe/nvme_proxy.h interfaces/org/freedesktop/UDisks2/Manager/NVMe/NVMe.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/UDisks2/NVMe/controller_proxy.h interfaces/org/freedesktop/UDisks2/NVMe/Controller/Controller.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/UDisks2/NVMe/Namespace/namespace_proxy.h interfaces/org/freedesktop/UDisks2/NVMe/Namespace/Namespace.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/UDisks2/Filesystem/filesystem_proxy.h interfaces/org/freedesktop/UDisks2/Filesystem/Filesystem.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/UDisks2/Partition/partition_proxy.h interfaces/org/freedesktop/UDisks2/Partition/Partition.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/UDisks2/PartitionTable/partition_table_proxy.h interfaces/org/freedesktop/UDisks2/PartitionTable/PartitionTable.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/UDisks2/Swapspace/swapspace_proxy.h interfaces/org/freedesktop/UDisks2/Swapspace/Swapspace.xml - -mkdir -p ${PROXY}/org/freedesktop/NetworkManager/{AgentManager,Connection/Active,Device,Device/Loopback,Device/Statistics,Device/Wireless,DnsManager,DHCP4Config,IP4Config,IP6Config,Settings,Settings/Connection} |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/NetworkManager/network_manager_proxy.h interfaces/org/freedesktop/NetworkManager/NetworkManager.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/NetworkManager/AgentManager/agent_manager_proxy.h interfaces/org/freedesktop/NetworkManager/AgentManager/AgentManager.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/NetworkManager/Connection/Active/active_proxy.h interfaces/org/freedesktop/NetworkManager/Connection/Active/Active.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/NetworkManager/Device/Loopback/loopback_proxy.h interfaces/org/freedesktop/NetworkManager/Device/Loopback/Loopback.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/NetworkManager/Device/Statistics/statistics_proxy.h interfaces/org/freedesktop/NetworkManager/Device/Statistics/Statistics.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/NetworkManager/Device/Wireless/wireless_proxy.h interfaces/org/freedesktop/NetworkManager/Device/Wireless/Wireless.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/NetworkManager/Device/device_proxy.h interfaces/org/freedesktop/NetworkManager/Device/Device.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/NetworkManager/DHCP4Config/dhcp4_config_proxy.h interfaces/org/freedesktop/NetworkManager/DHCP4Config/DHCP4Config.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/NetworkManager/DnsManager/dns_manager_proxy.h interfaces/org/freedesktop/NetworkManager/DnsManager/DnsManager.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/NetworkManager/IP4Config/ip4_config_proxy.h interfaces/org/freedesktop/NetworkManager/IP4Config/IP4Config.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/NetworkManager/IP6Config/ip6_config_proxy.h interfaces/org/freedesktop/NetworkManager/IP6Config/IP6Config.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/NetworkManager/Settings/Connection/connection_proxy.h interfaces/org/freedesktop/NetworkManager/Settings/Connection/Connection.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/NetworkManager/Settings/settings_proxy.h interfaces/org/freedesktop/NetworkManager/Settings/Settings.xml - -mkdir -p ${PROXY}/org/freedesktop/network1/{Link,Manager,Network} |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/network1/Link/link_proxy.h interfaces/org/freedesktop/network1/Link/Link.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/network1/Network/network_proxy.h interfaces/org/freedesktop/network1/Network/Network.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/network1/Manager/manager_proxy.h interfaces/org/freedesktop/network1/Manager/Manager.xml - -mkdir -p ${PROXY}/org/freedesktop/PolicyKit1/Authority |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/PolicyKit1/Authority/authority_proxy.h interfaces/org/freedesktop/PolicyKit1/Authority/Authority.xml - -mkdir -p ${PROXY}/org/freedesktop/systemd1/{Manager,Service,Unit} |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/systemd1/Manager/manager_proxy.h interfaces/org/freedesktop/systemd1/Manager/Manager.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/systemd1/Service/service_proxy.h interfaces/org/freedesktop/systemd1/Service/Service.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/freedesktop/systemd1/Unit/unit_proxy.h interfaces/org/freedesktop/systemd1/Unit/Unit.xml - -mkdir -p ${PROXY}/fi/w1/wpa_supplicant1 |true - -${XML2CPP} --verbose --proxy=${PROXY}/fi/w1/wpa_supplicant1/wpa_supplicant1_proxy.h interfaces/fi/w1/wpa_supplicant1/wpa_supplicant1.xml - -mkdir -p ${PROXY}/net/connman/{Clock,Manager,Service,Technology} |true - -${XML2CPP} --verbose --proxy=${PROXY}/net/connman/Clock/clock_proxy.h interfaces/net/connman/Clock/Clock.xml -${XML2CPP} --verbose --proxy=${PROXY}/net/connman/Manager/manager_proxy.h interfaces/net/connman/Manager/Manager.xml -${XML2CPP} --verbose --proxy=${PROXY}/net/connman/Service/service_proxy.h interfaces/net/connman/Service/Service.xml -${XML2CPP} --verbose --proxy=${PROXY}/net/connman/Technology/technology_proxy.h interfaces/net/connman/Technology/Technology.xml - -mkdir -p ${PROXY}/org/ofono/{HandsfreeAudioManager,Manager} |true - -${XML2CPP} --verbose --proxy=${PROXY}/org/ofono/HandsfreeAudioManager/handsfree_audio_manager_proxy.h interfaces/org/ofono/HandsfreeAudioManager/HandsfreeAudioManager.xml -${XML2CPP} --verbose --proxy=${PROXY}/org/ofono/Manager/manager_proxy.h interfaces/org/ofono/Manager/Manager.xml - -scripts/clang-format.sh src/proxy