- TODO: build test tools
- TODO: (watchdog) detect if the agent fails/crashes too often and disable it/return to fullscreen mode
- TODO: consider rewriting window tracking logic to use windows hooks intead of polling (I don't remember why hooks weren't used in the first place, maybe they don't work reliably for all windows since DLL injection is needed and that breaks for protected processes like winlogon)
- TODO: custom WDDM driver (maybe some time in the future)
To build locally, all QWT component sources should be stored in parallel directories, like shown below (without the qubes- prefix).
+---artifacts (build output, generated by the build process)
+---core-agent-windows
+---core-qubesdb
+---core-vchan-xen
+---gui-agent-windows
+---gui-common
+---installer-windows-tools
+---vmm-xen-windows-pvdrivers
\---windows-utils
Executables are test-signed, build output is copied to the .artifacts directory inside the component and linked to the global artifacts directory mentioned above. Run clean.cmd to remove all files produced by the build process.
- Microsoft EWDK iso mounted as a drive.
QUBES_BUILDERenvironment variable set to the location ofqubes-builderv2repository.- Internet connection.
powershell-yamlPowerShell package installed (runpowershell -command Install-Package powershell-yamlas admin) (TODO: provide offline installer for this).
Run vs.cmd to open the project in Visual Studio with pre-set environment for development/building.
Run build.cmd [Release|Debug]. Release configuration is built if no option is provided.