From 6cfe6ccb49ff4954ce42c83b3fd76654b677a606 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 20 Aug 2026 12:31:53 -0600 Subject: [PATCH 1/6] cmakeup: CMake updates, remove XP_NAMESPACE - Update minimum CMake version from 3.31 to 4.3 - Remove XP_NAMESPACE and xproinc.cmake inclusion (now part of CMakePresets) - Add CMAKE_EXPERIMENTAL_GENERATE_SBOM in presets - Define [APR|OPENSSL]_LIBRARIES if not defined (found via cps instead of cmake script) - Package name and Target Namespace now match - Make xpExternPackage conditional 'if(COMMAND' and move to end of CMakeLists.txt - Infer dependencies (apr, openssl) --- CMakeLists.txt | 3 +-- CMakePresetsBase.json | 2 +- activemq-cpp/CMakeLists.txt | 25 ++++++++++++++++++------- activemq-cpp/src/main/CMakeLists.txt | 17 +++++++++-------- 4 files changed, 29 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ba4097c2d..914d74dfb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,3 @@ -cmake_minimum_required(VERSION 3.31) -set(CMAKE_PROJECT_TOP_LEVEL_INCLUDES .devcontainer/cmake/xproinc.cmake) +cmake_minimum_required(VERSION 4.3) project(activemq-cpp) add_subdirectory(activemq-cpp) diff --git a/CMakePresetsBase.json b/CMakePresetsBase.json index 4489d79c3..c54ade998 100644 --- a/CMakePresetsBase.json +++ b/CMakePresetsBase.json @@ -6,7 +6,7 @@ "hidden": true, "binaryDir": "${sourceDir}/_bld-${presetName}", "cacheVariables": { - "XP_NAMESPACE": "xpro" + "CMAKE_EXPERIMENTAL_GENERATE_SBOM": "ca494ed3-b261-4205-a01f-603c95e4cae0" } } ], diff --git a/activemq-cpp/CMakeLists.txt b/activemq-cpp/CMakeLists.txt index affaa2446..a88b1a5b5 100644 --- a/activemq-cpp/CMakeLists.txt +++ b/activemq-cpp/CMakeLists.txt @@ -1,5 +1,11 @@ find_package(apr REQUIRED) find_package(openssl REQUIRED) +if(NOT DEFINED APR_LIBRARIES AND TARGET apr::apr-1) + set(APR_LIBRARIES apr::apr-1) +endif() +if(NOT DEFINED OPENSSL_LIBRARIES AND TARGET openssl::crypto AND TARGET openssl::ssl) + set(OPENSSL_LIBRARIES openssl::crypto openssl::ssl) +endif() # determine version from configure.ac file(STRINGS configure.ac MAJOR REGEX "^ACTIVEMQ_MAJOR_VERSION=([0-9]+)") file(STRINGS configure.ac MINOR REGEX "^ACTIVEMQ_MINOR_VERSION=([0-9]+)") @@ -18,12 +24,17 @@ if(has_noDeprecatedDeclarations) endif() set(lib activemqcpp) set(targetsFile ${lib}-targets) -xpExternPackage(NAMESPACE ${XP_NAMESPACE} - TARGETS_FILE ${targetsFile} LIBRARIES activemqcpp - BASE ${CMAKE_PROJECT_NAME}-${AMQ_VER} XPDIFF "auto" DEPS apr openssl - WEB "http://activemq.apache.org/cms/" UPSTREAM "github.com/apache/activemq-cpp" - DESC "ActiveMQ C++ Messaging Service (CMS) client library" - LICENSE "[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.html 'Apache License, Version 2.0')" - ) +if(NOT DEFINED CMAKE_INSTALL_CMAKEDIR) + set(CMAKE_INSTALL_CMAKEDIR ${CMAKE_INSTALL_DATADIR}/cmake) +endif() add_subdirectory(src/main) add_subdirectory(src/examples) +if(COMMAND xpExternPackage) + xpExternPackage(TARGETS_FILE ${targetsFile} + LIBRARIES ${lib} DEFAULT_TARGETS ${lib} + BASE ${CMAKE_PROJECT_NAME}-${AMQ_VER} XPDIFF "auto" + WEB "http://activemq.apache.org/cms/" UPSTREAM "github.com/apache/activemq-cpp" + DESC "ActiveMQ C++ Messaging Service (CMS) client library" + LICENSE "[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.html 'Apache License, Version 2.0')" + ) +endif() diff --git a/activemq-cpp/src/main/CMakeLists.txt b/activemq-cpp/src/main/CMakeLists.txt index 0fc914208..9d0478c5d 100644 --- a/activemq-cpp/src/main/CMakeLists.txt +++ b/activemq-cpp/src/main/CMakeLists.txt @@ -1665,10 +1665,14 @@ target_link_libraries(${lib_name} PUBLIC ${APR_LIBRARIES} ${OPENSSL_LIBRARIES}) target_include_directories(${lib_name} PUBLIC $ $ ) -if(TARGET xpro::crypto) - get_target_property(defs xpro::crypto INTERFACE_COMPILE_DEFINITIONS) - string(REPLACE "OPENSSL_API_COMPAT=0x10100000L" "OPENSSL_API_COMPAT=0x00908000L" newDefs "${defs}") - set_target_properties(xpro::crypto PROPERTIES INTERFACE_COMPILE_DEFINITIONS "${newDefs}") +if(TARGET opensssl::crypto) + get_target_property(defs openssl::crypto INTERFACE_COMPILE_DEFINITIONS) + if(defs) + string(REPLACE "OPENSSL_API_COMPAT=0x10100000L" "OPENSSL_API_COMPAT=0x00908000L" newDefs "${defs}") + if(NOT newDefs STREQUAL defs) + set_target_properties(openssl::crypto PROPERTIES INTERFACE_COMPILE_DEFINITIONS "${newDefs}") + endif() + endif() endif() install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${lib_name} @@ -1679,7 +1683,4 @@ install(TARGETS ${lib_name} EXPORT ${targetsFile} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) -if(DEFINED XP_NAMESPACE) - set(nameSpace NAMESPACE ${XP_NAMESPACE}::) -endif() -install(EXPORT ${targetsFile} DESTINATION ${CMAKE_INSTALL_CMAKEDIR} ${nameSpace}) +install(EXPORT ${targetsFile} DESTINATION ${CMAKE_INSTALL_CMAKEDIR} NAMESPACE ${CMAKE_PROJECT_NAME}::) From bc77318334ade8d04f9a82261e54c88c21b91473 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 20 Aug 2026 18:35:36 +0000 Subject: [PATCH 2/6] externpro 26.01.5-11-gc7e9a73 --- .devcontainer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer b/.devcontainer index cc12bc2d6..c7e9a7347 160000 --- a/.devcontainer +++ b/.devcontainer @@ -1 +1 @@ -Subproject commit cc12bc2d64d265d336711a8f5cd6e44796110e71 +Subproject commit c7e9a7347c98e67170d884a65e89258f916fe5be From 2dcc0ec68cfcb88230295b9e77e764f9ffac1edc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 20 Aug 2026 18:35:36 +0000 Subject: [PATCH 3/6] sync GitHub Actions workflows --- .github/workflows/xpbuild.yml | 12 ++++++++---- .github/workflows/xprelease.yml | 2 +- .github/workflows/xptag.yml | 4 ++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/xpbuild.yml b/.github/workflows/xpbuild.yml index 76b2701de..25962792d 100644 --- a/.github/workflows/xpbuild.yml +++ b/.github/workflows/xpbuild.yml @@ -14,11 +14,15 @@ jobs: contents: read pull-requests: write packages: write - uses: externpro/externpro/.github/workflows/build-linux.yml@25.07.6 - secrets: inherit + uses: externpro/externpro/.github/workflows/build-linux.yml@26.01.5 + secrets: + automation_token: ${{ secrets.GHCR_TOKEN }} + with: {} macos: - uses: externpro/externpro/.github/workflows/build-macos.yml@25.07.6 + uses: externpro/externpro/.github/workflows/build-macos.yml@26.01.5 secrets: inherit + with: {} windows: - uses: externpro/externpro/.github/workflows/build-windows.yml@25.07.6 + uses: externpro/externpro/.github/workflows/build-windows.yml@26.01.5 secrets: inherit + with: {} diff --git a/.github/workflows/xprelease.yml b/.github/workflows/xprelease.yml index a2eb28224..5181b8f71 100644 --- a/.github/workflows/xprelease.yml +++ b/.github/workflows/xprelease.yml @@ -34,7 +34,7 @@ jobs: # Upload build artifacts as release assets release-from-build: if: github.event_name == 'workflow_dispatch' - uses: externpro/externpro/.github/workflows/release-from-build.yml@25.07.6 + uses: externpro/externpro/.github/workflows/release-from-build.yml@26.01.5 with: workflow_run_url: ${{ github.event.inputs.workflow_run_url }} permissions: diff --git a/.github/workflows/xptag.yml b/.github/workflows/xptag.yml index b5ce9503a..1f6b0193f 100644 --- a/.github/workflows/xptag.yml +++ b/.github/workflows/xptag.yml @@ -8,9 +8,9 @@ on: jobs: tag: if: ${{ github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'xpro' && contains(github.event.pull_request.labels.*.name, 'release:tag') }} - uses: externpro/externpro/.github/workflows/tag-release.yml@25.07.6 + uses: externpro/externpro/.github/workflows/tag-release.yml@26.01.5 with: merge_sha: ${{ github.event.pull_request.merge_commit_sha }} pr_number: ${{ github.event.pull_request.number }} secrets: - workflow_write_token: ${{ secrets.XPUPDATE_TOKEN }} + automation_token: ${{ secrets.XPRO_TOKEN }} From b7b821890515eee10135b9a242846e1cd80c1b0f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 20 Aug 2026 18:35:36 +0000 Subject: [PATCH 4/6] update .github/release-tag.json --- .github/release-tag.json | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .github/release-tag.json diff --git a/.github/release-tag.json b/.github/release-tag.json new file mode 100644 index 000000000..e8ca43c57 --- /dev/null +++ b/.github/release-tag.json @@ -0,0 +1,4 @@ +{ + "message": "xpro version 3.9.5.4 tag", + "tag": "xpv3.9.5.4" +} From e469c76cda4a42dd6fe28894693690c090ede557 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 20 Aug 2026 18:35:36 +0000 Subject: [PATCH 5/6] dependency updates --- xprodeps.md | 11 +++++---- xprodeps.svg | 66 +++++++++++++++++++++++++++++++++------------------- 2 files changed, 48 insertions(+), 29 deletions(-) diff --git a/xprodeps.md b/xprodeps.md index 2a21edb92..bf37ad0ff 100644 --- a/xprodeps.md +++ b/xprodeps.md @@ -3,14 +3,15 @@ |project|license [^_l]|description [dependencies]|version|source|diff [^_d]| |-------|-------------|--------------------------|-------|------|----------| |[activemq-cpp](http://activemq.apache.org/cms/)|[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.html 'Apache License, Version 2.0')|ActiveMQ C++ Messaging Service (CMS) client library [deps: _apr, openssl_]| |[upstream](https://github.com/apache/activemq-cpp 'github.com/apache/activemq-cpp')| [auto]| -|[apr](http://apr.apache.org/)|[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.html 'Apache License, Version 2.0')|Apache Portable Runtime project|[xpv1.7.6.3](https://github.com/externpro/apr/releases/tag/xpv1.7.6.3 'release')|[repo](https://github.com/externpro/apr 'github.com/externpro/apr') [upstream](https://github.com/apache/apr 'github.com/apache/apr')|[diff](https://github.com/externpro/apr/compare/1.7.6...xpv1.7.6.3 'github.com/externpro/apr/compare/1.7.6...xpv1.7.6.3') [patch(msw), auto(unix)]| -|[openssl](http://www.openssl.org/)|[BSD-style](http://www.openssl.org/source/license.html 'dual OpenSSL and SSLeay License: both are BSD-style licenses')|Cryptography and SSL/TLS Toolkit [pvt deps: _nasm, yasm_]|[xpv1.1.1l.4](https://github.com/externpro/openssl/releases/tag/xpv1.1.1l.4 'release')|[repo](https://github.com/externpro/openssl 'github.com/externpro/openssl') [upstream](https://github.com/openssl/openssl 'github.com/openssl/openssl')|[diff](https://github.com/externpro/openssl/compare/OpenSSL_1_1_1l...xpv1.1.1l.4 'github.com/externpro/openssl/compare/OpenSSL_1_1_1l...xpv1.1.1l.4') [intro]| -|[nasm](https://www.nasm.us/)|[BSD-2-Clause](https://www.nasm.us/ 'BSD 2-Clause Simplified License')|The Netwide Assembler - an 80x86 and x86-64 assembler (MSW-only)|[xpv2.14.02.4](https://github.com/externpro/nasm/releases/tag/xpv2.14.02.4 'release')|[repo](https://github.com/externpro/nasm 'github.com/externpro/nasm')|[diff](https://github.com/externpro/nasm/compare/v0...xpv2.14.02.4 'github.com/externpro/nasm/compare/v0...xpv2.14.02.4') [bin]| -|[yasm](http://yasm.tortall.net/)|[BSD-2-Clause](https://github.com/yasm/yasm/blob/v1.3.0/COPYING 'BSD 2-Clause Simplified License')|assembler and disassembler for the Intel x86 architecture|[xpv1.3.0.3](https://github.com/externpro/yasm/releases/tag/xpv1.3.0.3 'release')|[repo](https://github.com/externpro/yasm 'github.com/externpro/yasm') [upstream](https://github.com/yasm/yasm 'github.com/yasm/yasm')|[diff](https://github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.3 'github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.3') [patch]| +|[apr](http://apr.apache.org/)|[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.html 'Apache License, Version 2.0')|Apache Portable Runtime project [deps: _Threads_]|[xpv1.7.6.4](https://github.com/externpro/apr/releases/tag/xpv1.7.6.4 'release')|[repo](https://github.com/externpro/apr 'github.com/externpro/apr') [upstream](https://github.com/apache/apr 'github.com/apache/apr')|[diff](https://github.com/externpro/apr/compare/1.7.6...xpv1.7.6.4 'github.com/externpro/apr/compare/1.7.6...xpv1.7.6.4') [patch[msw], auto[unix]]| +|[openssl](http://www.openssl.org/)|[OpenSSL AND SSLeay](http://www.openssl.org/source/license.html 'dual OpenSSL and SSLeay License: both apply')|Cryptography and SSL/TLS Toolkit [deps: _Threads_] [pvt deps: _nasm, yasm_]|[xpv1.1.1l.5](https://github.com/externpro/openssl/releases/tag/xpv1.1.1l.5 'release')|[repo](https://github.com/externpro/openssl 'github.com/externpro/openssl') [upstream](https://github.com/openssl/openssl 'github.com/openssl/openssl')|[diff](https://github.com/externpro/openssl/compare/OpenSSL_1_1_1l...xpv1.1.1l.5 'github.com/externpro/openssl/compare/OpenSSL_1_1_1l...xpv1.1.1l.5') [intro]| +|[Threads](https://cmake.org/cmake/help/latest/module/FindThreads.html)|[LGPL-2.1-or-later](https://spdx.org/licenses/LGPL-2.1-or-later.html 'GNU Lesser General Public License v2.1 or later')|Finds and determines the thread library of the system for multithreading support|[xpv1.0.4](https://github.com/externpro/Threads/releases/tag/xpv1.0.4 'release')|[repo](https://github.com/externpro/Threads 'github.com/externpro/Threads')|[diff](https://github.com/externpro/Threads/compare/v0...xpv1.0.4 'github.com/externpro/Threads/compare/v0...xpv1.0.4') [bin]| +|[nasm](https://www.nasm.us/)|[BSD-2-Clause](https://www.nasm.us/ 'BSD 2-Clause Simplified License')|The Netwide Assembler - an 80x86 and x86-64 assembler (MSW-only)|[xpv2.14.02.5](https://github.com/externpro/nasm/releases/tag/xpv2.14.02.5 'release')|[repo](https://github.com/externpro/nasm 'github.com/externpro/nasm')|[diff](https://github.com/externpro/nasm/compare/v0...xpv2.14.02.5 'github.com/externpro/nasm/compare/v0...xpv2.14.02.5') [bin]| +|[yasm](http://yasm.tortall.net/)|[BSD-2-Clause](https://github.com/yasm/yasm/blob/v1.3.0/COPYING 'BSD 2-Clause Simplified License')|assembler and disassembler for the Intel x86 architecture|[xpv1.3.0.4](https://github.com/externpro/yasm/releases/tag/xpv1.3.0.4 'release')|[repo](https://github.com/externpro/yasm 'github.com/externpro/yasm') [upstream](https://github.com/yasm/yasm 'github.com/yasm/yasm')|[diff](https://github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.4 'github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.4') [patch]| ![deps](xprodeps.svg 'dependencies') -Dependency version check: all 4 parent-manifest versions match pinned versions. +Dependency version check: all 6 parent-manifest versions match pinned versions. |diff |description| |------|-----------| diff --git a/xprodeps.svg b/xprodeps.svg index ae1cdcfdc..29c7f07af 100644 --- a/xprodeps.svg +++ b/xprodeps.svg @@ -4,63 +4,81 @@ - + GG activemq-cpp - -activemq-cpp + +activemq-cpp apr - -apr + +apr activemq-cpp->apr - - + + openssl - -openssl + +openssl activemq-cpp->openssl - - + + - + +Threads + +Threads + + + +apr->Threads + + + + + +openssl->Threads + + + + + nasm - -nasm + +nasm - + openssl->nasm - - + + - + yasm - -yasm + +yasm - + openssl->yasm - - + + From b785fc2b33f44d2a3fd14921ab015fb492cb8829 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 20 Aug 2026 18:35:36 +0000 Subject: [PATCH 6/6] externpro 26.01.5-11-gc7e9a73 updates --- .github/release-tag.yml | 2 -- CMakePresets.json | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) delete mode 100644 .github/release-tag.yml diff --git a/.github/release-tag.yml b/.github/release-tag.yml deleted file mode 100644 index 094f822f0..000000000 --- a/.github/release-tag.yml +++ /dev/null @@ -1,2 +0,0 @@ -tag: xpv3.9.5.3 -message: "xpro version 3.9.5.3 tag" diff --git a/CMakePresets.json b/CMakePresets.json index f82cfdd2c..28efa3978 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -3,6 +3,7 @@ "include": [ ".devcontainer/cmake/presets/xpLinuxNinja.json", ".devcontainer/cmake/presets/xpDarwinNinja.json", - ".devcontainer/cmake/presets/xpWindowsVs2022.json" + ".devcontainer/cmake/presets/xpMswVs2022.json", + ".devcontainer/cmake/presets/xpMswVs2026.json" ] }