This is a fork from an original code from https://github.com/sikoragmbh/qtbonjour
Qt 6.8 LTS is the minimum (QT_DISABLE_DEPRECATED_BEFORE=0x060800). On Windows the
Bonjour SDK headers come from Conan (bonjoursdk/3.0.0@dn/stable, see conaninstall.pri),
so a Conan 1.x client with the dn remote and the msvc19.x86_64.* profiles is needed;
no local Bonjour SDK install is required.
qmake qtbonjour.pro -spec win32-msvc PREFIX=<out>/Windows/Debug CONFIG+=debug
nmake install
ci/azure-pipelines.yml builds with qt-conan-ci
2.8.1 (Qt 6.8.8, msvc2022_64). Only Windows x86_64 is built, as Montage consumes
qtbonjour on Windows only. Stage order: SecretScan + DependencyScan (in parallel,
from DisplayNote/dn-pipeline-templates v1.1.2, blocking: a finding fails the
stage, so the stages that depend on it don't run) → setup →
tests_coverage (the tests/ suite under OpenCppCoverage, audit mode) → the
Windows build → deploy.
- Pull requests publish
qtbonjour/pr-<number>@dn/develop. - A SemVer tag (e.g.
1.3.0) buildsqtbonjour/<tag>; theqtbonjourrelease pipeline underlibsthen promotes it todn/developanddn/stable.
Qt 6.5 and 6.8 are not ABI compatible: packages built against Qt 6.8 must use a new version, never a rebuild of an existing one (1.2.0 and earlier predate Qt 6.8).
The GoogleTest suite lives in tests/ and runs with coverage in CI. It uses a fake
dns_sd, so no Bonjour service is needed. See docs/testing.md.
The tests_coverage stage reports line coverage of the library sources (roadmap
2.23, target 75%).
- Measured: the library's
*.cppand*.hin the repository root (bonjourrecord,bonjourservicebrowser,bonjourserviceresolver,bonjourserviceregister), built for Windows x86_64 Debug. - Excluded:
tests/(including the fake dns_sd), the generatedmoc_*files and the Bonjour SDK headers from Conan - the qt-conan-ci default exclusions - plusmain.cpp, the demo app's entry point (qtbonjour_app.pro), listed inexcludedSources. - Not executed in the current lane: the Linux (avahi) branches in the headers
and
qtbonjour.pro, the big-endian branch of the port swap inBonjourServiceRegister::onStarted(), and its "already registered" guard, which the public API cannot reach.
The exclusions are reviewed quarterly.