From 30906c897e80181758ffd9281f0f0b9f179b686a Mon Sep 17 00:00:00 2001 From: Marco Fargetta Date: Thu, 16 Jul 2026 18:25:48 +0200 Subject: [PATCH] Fix bundled jackson version mismatch New versions of jackson (>2.20) uses a major.minor version for the jackson-annotations package but it keep the same major.minor.update for the other modules. Since the cmake script will retrieve the version from the jackson-annotations the compilation is failing when 2.21.4 is bundled. This change will consider the jackson-annotation separately from the other modules. --- base/CMakeLists.txt | 57 +++++++++++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/base/CMakeLists.txt b/base/CMakeLists.txt index 08444e3641..6ed1e16ceb 100644 --- a/base/CMakeLists.txt +++ b/base/CMakeLists.txt @@ -404,30 +404,15 @@ if (EXISTS "${CMAKE_SOURCE_DIR}/base/common/lib") COMMAND ls ${CMAKE_SOURCE_DIR}/base/common/lib COMMAND sed -n "s/^jackson-annotations-\\(.*\\)\\.jar\$/\\1/p" OUTPUT_STRIP_TRAILING_WHITESPACE - OUTPUT_VARIABLE JACKSON_VERSION + OUTPUT_VARIABLE JACKSON_ANNOTATIONS_VERSION ) endif (EXISTS "${CMAKE_SOURCE_DIR}/base/common/lib") -if (JACKSON_VERSION) +if (JACKSON_ANNOTATIONS_VERSION) # use imported JARs - set(JACKSON_ANNOTATIONS_JAR "${CMAKE_SOURCE_DIR}/base/common/lib/jackson-annotations-${JACKSON_VERSION}.jar") - set(JACKSON_ANNOTATIONS_LINK "jackson-annotations-${JACKSON_VERSION}.jar") - - set(JACKSON_CORE_JAR "${CMAKE_SOURCE_DIR}/base/common/lib/jackson-core-${JACKSON_VERSION}.jar") - set(JACKSON_CORE_LINK "jackson-core-${JACKSON_VERSION}.jar") - - set(JACKSON_DATABIND_JAR "${CMAKE_SOURCE_DIR}/base/common/lib/jackson-databind-${JACKSON_VERSION}.jar") - set(JACKSON_DATABIND_LINK "jackson-databind-${JACKSON_VERSION}.jar") - - set(JACKSON_JAXRS_BASE_JAR "${CMAKE_SOURCE_DIR}/base/common/lib/jackson-jaxrs-base-${JACKSON_VERSION}.jar") - set(JACKSON_JAXRS_BASE_LINK "jackson-jaxrs-base-${JACKSON_VERSION}.jar") - - set(JACKSON_JAXRS_JSON_PROVIDER_JAR "${CMAKE_SOURCE_DIR}/base/common/lib/jackson-jaxrs-json-provider-${JACKSON_VERSION}.jar") - set(JACKSON_JAXRS_JSON_PROVIDER_LINK "jackson-jaxrs-json-provider-${JACKSON_VERSION}.jar") - - set(JACKSON_MODULE_JAXB_ANNOTATIONS_JAR "${CMAKE_SOURCE_DIR}/base/common/lib/jackson-module-jaxb-annotations-${JACKSON_VERSION}.jar") - set(JACKSON_MODULE_JAXB_ANNOTATIONS_LINK "jackson-module-jaxb-annotations-${JACKSON_VERSION}.jar") + set(JACKSON_ANNOTATIONS_JAR "${CMAKE_SOURCE_DIR}/base/common/lib/jackson-annotations-${JACKSON_ANNOTATIONS_VERSION}.jar") + set(JACKSON_ANNOTATIONS_LINK "jackson-annotations-${JACKSON_ANNOTATIONS_VERSION}.jar") else() # use system JARs @@ -440,6 +425,38 @@ else() ) set(JACKSON_ANNOTATIONS_LINK "../../../..${JACKSON_ANNOTATIONS_JAR}") +endif (JACKSON_ANNOTATIONS_VERSION) + +if (EXISTS "${CMAKE_SOURCE_DIR}/base/common/lib") + execute_process( + COMMAND ls ${CMAKE_SOURCE_DIR}/base/common/lib + COMMAND sed -n "s/^jackson-core-\\(.*\\)\\.jar\$/\\1/p" + OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE JACKSON_CORE_VERSION + ) +endif (EXISTS "${CMAKE_SOURCE_DIR}/base/common/lib") + +if (JACKSON_CORE_VERSION) + # use imported JARs + + set(JACKSON_CORE_JAR "${CMAKE_SOURCE_DIR}/base/common/lib/jackson-core-${JACKSON_CORE_VERSION}.jar") + set(JACKSON_CORE_LINK "jackson-core-${JACKSON_CORE_VERSION}.jar") + + set(JACKSON_DATABIND_JAR "${CMAKE_SOURCE_DIR}/base/common/lib/jackson-databind-${JACKSON_CORE_VERSION}.jar") + set(JACKSON_DATABIND_LINK "jackson-databind-${JACKSON_CORE_VERSION}.jar") + + set(JACKSON_JAXRS_BASE_JAR "${CMAKE_SOURCE_DIR}/base/common/lib/jackson-jaxrs-base-${JACKSON_CORE_VERSION}.jar") + set(JACKSON_JAXRS_BASE_LINK "jackson-jaxrs-base-${JACKSON_CORE_VERSION}.jar") + + set(JACKSON_JAXRS_JSON_PROVIDER_JAR "${CMAKE_SOURCE_DIR}/base/common/lib/jackson-jaxrs-json-provider-${JACKSON_CORE_VERSION}.jar") + set(JACKSON_JAXRS_JSON_PROVIDER_LINK "jackson-jaxrs-json-provider-${JACKSON_CORE_VERSION}.jar") + + set(JACKSON_MODULE_JAXB_ANNOTATIONS_JAR "${CMAKE_SOURCE_DIR}/base/common/lib/jackson-module-jaxb-annotations-${JACKSON_CORE_VERSION}.jar") + set(JACKSON_MODULE_JAXB_ANNOTATIONS_LINK "jackson-module-jaxb-annotations-${JACKSON_CORE_VERSION}.jar") + +else() + # use system JARs + find_file(JACKSON_CORE_JAR NAMES jackson-core.jar @@ -483,7 +500,7 @@ else() ) set(JACKSON_MODULE_JAXB_ANNOTATIONS_LINK "../../../..${JACKSON_MODULE_JAXB_ANNOTATIONS_JAR}") -endif (JACKSON_VERSION) +endif (JACKSON_CORE_VERSION) if (EXISTS "${CMAKE_SOURCE_DIR}/base/common/lib") execute_process( -- 2.55.0