[libxchange] 1.2.0#1 with upstream commits post release (#52256)

This commit is contained in:
Attila Kovacs 2026-06-09 22:35:09 +02:00 committed by GitHub
parent 40dd49b0c9
commit 8be5834ad3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 208 additions and 1 deletions

200
ports/libxchange/0001.patch Normal file
View File

@ -0,0 +1,200 @@
From 60ccc9c7a1650115e40f691033b4d79f792de0c6 Mon Sep 17 00:00:00 2001
From: Attila Kovacs <attipaci@gmail.com>
Date: Mon, 8 Jun 2026 21:36:20 +0200
Subject: [PATCH 1/3] Add xIsDebug()
---
CHANGELOG.md | 8 ++++++++
include/xchange.h | 1 +
src/xchange.c | 18 +++++++++++++++---
3 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d33e3f9..6f32196 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [Unreleased]
+
+### Added
+
+ - Added `xIsDebug()` function to check on `xDebug`. While the global variable is fine in most cases, they are
+ problematic for Windows DLLs. It's better to use purely functional access instead.
+
+
## [1.2.0] - 2026-06-08
High priority bug fixes and version bump.
diff --git a/include/xchange.h b/include/xchange.h
index 9ace22e..bb00226 100644
--- a/include/xchange.h
+++ b/include/xchange.h
@@ -240,6 +240,7 @@ extern boolean xDebug; ///< Switch to enable debugging (very verbose) o
// In xutil.c ------------------------------------------------>
boolean xIsVerbose();
void xSetVerbose(boolean value);
+boolean xIsDebug();
void xSetDebug(boolean value);
int xError(const char *fn, int code);
const char *xErrorDescription(int code);
diff --git a/src/xchange.c b/src/xchange.c
index ca95a9e..ecd8644 100644
--- a/src/xchange.c
+++ b/src/xchange.c
@@ -129,7 +129,6 @@ int x_warn(const char *from, const char *desc, ...) {
* @return TRUE (1) if verbosity is enabled, or else FALSE (0).
*
* @sa xSetVerbose()
- * @sa xSetDebug()
*/
boolean xIsVerbose() {
return xVerbose;
@@ -140,18 +139,31 @@ boolean xIsVerbose() {
*
* @param value TRUE (non-zero) to enable verbose output, or else FALSE (0).
*
- * @sa xIsVerbose()
+ * @sa xIsVerbose(), xSetDebug()
*/
void xSetVerbose(boolean value) {
xVerbose = value ? TRUE : FALSE;
}
+/**
+ * Checks if debug output is enabled
+ *
+ * @return TRUE (1) if debug output is enabled, otherwise FALSE (0).
+ *
+ * @since 1.2.1
+ *
+ * @sa xSetDebug()
+ */
+boolean xIsDebug() {
+ return xDebug;
+}
+
/**
* Enables or disables debugging output.
*
* @param value TRUE (non-zero) to enable verbose output, or else FALSE (0).
*
- * @sa xSetVerbose()
+ * @sa xIsDebug(), xSetVerbose()
*/
void xSetDebug(boolean value) {
xDebug = value ? TRUE : FALSE;
--
2.54.0
From 30005906bc0101b7b683187fbb6cbd97ddb621ba Mon Sep 17 00:00:00 2001
From: Attila Kovacs <attipaci@gmail.com>
Date: Mon, 8 Jun 2026 21:37:19 +0200
Subject: [PATCH 2/3] Don't check for math lib in package config
---
CHANGELOG.md | 6 ++++++
cmake/xchangeConfig.cmake.in | 8 --------
2 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6f32196..7c09af6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
## [Unreleased]
+### Fixed
+
+ - CMake `xchangeConfig` to skip requiting math lib for non-Windows platforms in general, since it's can fail if the
+ math library is not in the search path, but in the build path, such as in case of some cross builds (see e.g. the
+ vcpkg Android builds)
+
### Added
- Added `xIsDebug()` function to check on `xDebug`. While the global variable is fine in most cases, they are
diff --git a/cmake/xchangeConfig.cmake.in b/cmake/xchangeConfig.cmake.in
index 1742cc7..a8060b0 100644
--- a/cmake/xchangeConfig.cmake.in
+++ b/cmake/xchangeConfig.cmake.in
@@ -7,14 +7,6 @@ include(CMakeFindDependencyMacro)
# Include targets
include("${CMAKE_CURRENT_LIST_DIR}/xchangeTargets.cmake")
-# Find math library if needed
-if(NOT WIN32)
- find_library(MATH_LIBRARY m)
- if(NOT MATH_LIBRARY)
- message(FATAL_ERROR "Math library not found")
- endif()
-endif()
-
# Get include directories from target properties
get_target_property(xchange_INCLUDE_DIRS xchange::core INTERFACE_INCLUDE_DIRECTORIES)
--
2.54.0
From b9c3f6ddc48fad6059929474e42796324c281cb8 Mon Sep 17 00:00:00 2001
From: Attila Kovacs <attipaci@gmail.com>
Date: Mon, 8 Jun 2026 21:44:31 +0200
Subject: [PATCH 3/3] Reference functions not vars in xvprintf() and xdprintf()
macros
---
CHANGELOG.md | 9 +++++++--
include/xchange.h | 4 ++--
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7c09af6..d1ca571 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,10 +9,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
## [Unreleased]
+Upcoming bug-fix release, possbily as early as 1 August 2026.
+
### Fixed
- - CMake `xchangeConfig` to skip requiting math lib for non-Windows platforms in general, since it's can fail if the
- math library is not in the search path, but in the build path, such as in case of some cross builds (see e.g. the
+ - CMake `xchangeConfig` to skip requiring math lib for non-Windows platforms in general, since it's can fail if the
+ math library is in the build path, but not in the search path, such as in case of some cross builds (see e.g. the
vcpkg Android builds)
### Added
@@ -20,6 +22,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
- Added `xIsDebug()` function to check on `xDebug`. While the global variable is fine in most cases, they are
problematic for Windows DLLs. It's better to use purely functional access instead.
+ - `xvprintf()` / `xdprintf()` macros to reference functions instead of global vars (see above comment on Windows
+ DLLs.
+
## [1.2.0] - 2026-06-08
diff --git a/include/xchange.h b/include/xchange.h
index bb00226..1dd1c3c 100644
--- a/include/xchange.h
+++ b/include/xchange.h
@@ -234,8 +234,8 @@ typedef struct {
extern boolean xVerbose; ///< Switch to enable verbose console output for XChange operations.
extern boolean xDebug; ///< Switch to enable debugging (very verbose) output for XChange operations.
-#define xvprintf if(xVerbose) printf ///< Use for generating verbose output
-#define xdprintf if(xDebug) printf ///< Use for generating debug output
+#define xvprintf if(xIsVerbose()) printf ///< Use for generating verbose output
+#define xdprintf if(xIsDebug()) printf ///< Use for generating debug output
// In xutil.c ------------------------------------------------>
boolean xIsVerbose();
--
2.54.0

View File

@ -4,6 +4,7 @@ vcpkg_from_github(
REF "v${VERSION}"
SHA512 abce6b7da5921b682bbff76ab237d79fbe1e3647a6f535340e513e163102f980d58f4f88ff53b04161c3f83b17f3f893c9f43314b711efbe6810610b16a7e90b
HEAD_REF main
PATCHES 0001.patch
)
vcpkg_cmake_configure(

View File

@ -1,6 +1,7 @@
{
"name": "libxchange",
"version": "1.2.0",
"port-version": 1,
"description": "Structured data representation and JSON support for C/C++",
"homepage": "https://sigmyne.github.io/xchange/",
"documentation": "https://sigmyne.github.io/xchange/doc/html/",

View File

@ -5910,7 +5910,7 @@
},
"libxchange": {
"baseline": "1.2.0",
"port-version": 0
"port-version": 1
},
"libxcomposite": {
"baseline": "0.4.7",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "0c9cc8e41fd0259656a94a2707d0c66361133372",
"version": "1.2.0",
"port-version": 1
},
{
"git-tree": "a417d621a8f02eb601159a06c293c926011759b4",
"version": "1.2.0",