From f0355e4a620e879d746dce59b52007726126a1e9 Mon Sep 17 00:00:00 2001 From: Gennaro Prota Date: Mon, 16 Mar 2026 08:16:01 +0100 Subject: [PATCH 1/4] fix(build): set CMP0144 policy for CMake 3.27+ compatibility CMake 3.27 introduced CMP0144, which changes how upper-case package name variables are handled in find_package. Setting the policy to NEW suppresses deprecation warnings. --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 852a077d11..38699627ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ # #------------------------------------------------- cmake_minimum_required(VERSION 3.13) +cmake_policy(SET CMP0144 NEW) project( MrDocs VERSION 0.8.0 From 6993df1db8f2dfdeb4d30c22ddc83d57b773bc6c Mon Sep 17 00:00:00 2001 From: Gennaro Prota Date: Mon, 16 Mar 2026 08:19:59 +0100 Subject: [PATCH 2/4] fix(bootstrap): use correct preset suffix "win" on Windows The LLVM CMakePresets use "win" (e.g. release-win, debug-win), not "windows". The incorrect suffix caused preset lookup failures when bootstrapping on Windows. --- util/bootstrap/src/recipes/loader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/bootstrap/src/recipes/loader.py b/util/bootstrap/src/recipes/loader.py index ae2896ccd5..941618544d 100644 --- a/util/bootstrap/src/recipes/loader.py +++ b/util/bootstrap/src/recipes/loader.py @@ -47,7 +47,7 @@ def recipe_placeholders( Returns: Dictionary mapping placeholder names to values. """ - host_suffix = "windows" if is_windows() else "unix" + host_suffix = "win" if is_windows() else "unix" return { "BOOTSTRAP_BUILD_TYPE": recipe.build_type, "BOOTSTRAP_BUILD_TYPE_LOWER": recipe.build_type.lower(), From 5a5f4dadfafd5e56e8c8a2fa88c24b20513f0232 Mon Sep 17 00:00:00 2001 From: Gennaro Prota Date: Mon, 16 Mar 2026 08:23:02 +0100 Subject: [PATCH 3/4] chore(docs): regenerate package-lock.json Remove stale peer dependency markers for @asciidoctor/core and progress. --- docs/package-lock.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index e8b7ac1c13..2a57122306 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -372,7 +372,6 @@ "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.8.tgz", "integrity": "sha512-oozXk7ZO1RAd/KLFLkKOhqTcG4GO3CV44WwOFg2gMcCsqCUTarvMT7xERIoWW2WurKbB0/ce+98r01p8xPOlBw==", "license": "MIT", - "peer": true, "dependencies": { "asciidoctor-opal-runtime": "0.3.3", "unxhr": "1.0.1" @@ -2518,7 +2517,6 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.4.0" } From bb34b23da33e192e5b758659dbd96ce50e93f40d Mon Sep 17 00:00:00 2001 From: Gennaro Prota Date: Mon, 16 Mar 2026 12:39:09 +0100 Subject: [PATCH 4/4] fix(build): find LibXml2 in both config and module mode On Windows, bootstrap.py installs LibXml2 with a CMake config package, so find_package() only succeeds in CONFIG mode. On Linux, system libxml2-dev is found via CMake's FindLibXml2 module. So, try config mode first; fall back to module mode if that fails. --- CMakeLists.txt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 38699627ff..e790439096 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -551,11 +551,15 @@ if (MRDOCS_BUILD_TESTS) #------------------------------------------------- # XML lint #------------------------------------------------- - if (MRDOCS_BUILD_STRICT_TESTS) - # Strict mode expects xml-lint to run; require LibXml2. - find_package(LibXml2 REQUIRED) - else() - find_package(LibXml2) + # Try config mode first (e.g. libxml2 installed by bootstrap.py), + # then fall back to module mode (e.g. system libxml2-dev on Linux). + find_package(LibXml2 CONFIG) + if (NOT LibXml2_FOUND) + if (MRDOCS_BUILD_STRICT_TESTS) + find_package(LibXml2 REQUIRED) + else() + find_package(LibXml2) + endif() endif() if (LibXml2_FOUND) find_package(Java REQUIRED Runtime)