From 2055d3a52fc7766ee635779a7f2f471e474f1b4c Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 22 Jan 2026 09:58:32 -0700 Subject: [PATCH 1/5] externpro 25.07.3-39-g6acb576 --- .devcontainer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer b/.devcontainer index 97db0d6b7..6acb57670 160000 --- a/.devcontainer +++ b/.devcontainer @@ -1 +1 @@ -Subproject commit 97db0d6b7d00d8f33e52e646a1aef1395fa58931 +Subproject commit 6acb5767043db56da05239d1b5d516e1624937b7 From b90b5b9fc6ac32c4a11c5edfd534147f7d4a52e4 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 22 Jan 2026 10:00:27 -0700 Subject: [PATCH 2/5] workflows: externpro@25.07.3 --- .github/workflows/xpbuild.yml | 20 ++++++++++---------- .github/workflows/xprelease.yml | 3 +-- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.github/workflows/xpbuild.yml b/.github/workflows/xpbuild.yml index b9166a830..8d2fdecb6 100644 --- a/.github/workflows/xpbuild.yml +++ b/.github/workflows/xpbuild.yml @@ -1,4 +1,7 @@ name: Build +permissions: + contents: read + pull-requests: write on: push: branches: [ "dev" ] @@ -7,24 +10,21 @@ on: workflow_dispatch: jobs: linux: - uses: externpro/externpro/.github/workflows/build-linux.yml@25.05.2 + permissions: + contents: read + pull-requests: write + packages: write + uses: externpro/externpro/.github/workflows/build-linux.yml@25.07.3 with: cmake-workflow-preset: LinuxRelease - runon: ubuntu-latest - secrets: inherit - linux-arm64: - uses: externpro/externpro/.github/workflows/build-linux.yml@25.05.2 - with: - cmake-workflow-preset: LinuxRelease - runon: ubuntu-24.04-arm secrets: inherit macos: - uses: externpro/externpro/.github/workflows/build-macos.yml@25.05.2 + uses: externpro/externpro/.github/workflows/build-macos.yml@25.07.3 with: cmake-workflow-preset: DarwinRelease secrets: inherit windows: - uses: externpro/externpro/.github/workflows/build-windows.yml@25.05.2 + uses: externpro/externpro/.github/workflows/build-windows.yml@25.07.3 with: cmake-workflow-preset: WindowsRelease secrets: inherit diff --git a/.github/workflows/xprelease.yml b/.github/workflows/xprelease.yml index 273199e97..86b6f88b5 100644 --- a/.github/workflows/xprelease.yml +++ b/.github/workflows/xprelease.yml @@ -9,10 +9,9 @@ on: jobs: # Upload build artifacts as release assets release-from-build: - uses: externpro/externpro/.github/workflows/release-from-build.yml@25.05.2 + uses: externpro/externpro/.github/workflows/release-from-build.yml@25.07.3 with: workflow_run_url: ${{ github.event.inputs.workflow_run_url }} - artifact_pattern: "*.tar.xz" permissions: contents: write id-token: write From 705c0b456953ca13433e60141f454c16ccd6de46 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 22 Jan 2026 10:05:40 -0700 Subject: [PATCH 3/5] cmake: xproinc enhancements --- CMakeLists.txt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d651d203b..bad596fc5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,5 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.5...3.31) -set(CMAKE_PROJECT_TOP_LEVEL_INCLUDES .devcontainer/cmake/xproinc.cmake) SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules) set(LIB_MAJOR_VERSION "1") @@ -8,11 +7,9 @@ set(LIB_MINOR_VERSION "1") set(LIB_PATCH_VERSION "0") set(LIB_VERSION_STRING "${LIB_MAJOR_VERSION}.${LIB_MINOR_VERSION}.${LIB_PATCH_VERSION}") +set(CMAKE_PROJECT_TOP_LEVEL_INCLUDES .devcontainer/cmake/xproinc.cmake) PROJECT(RapidJSON VERSION "${LIB_VERSION_STRING}" LANGUAGES CXX) -include(GNUInstallDirs) -include(xpflags) - # compile in release with debug info mode by default if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE) From 20a9d50449ad5af1ed257fbab8c22bb86f75b278 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 22 Jan 2026 10:49:13 -0700 Subject: [PATCH 4/5] cmake: xpExternPackage() replaces xpPackageDevel() minimize changes from upstream BASE tag --- CMakeLists.txt | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bad596fc5..584e8d167 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -148,27 +148,27 @@ endif() SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}" CACHE PATH "The directory the headers are installed in") SET(LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}" CACHE STRING "Directory where lib will install") SET(DOC_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/doc/${PROJECT_NAME}" CACHE PATH "Path to the documentation") -if(NOT DEFINED XP_INSTALL_CMAKEDIR) - set(XP_INSTALL_CMAKEDIR "${CMAKE_INSTALL_DATADIR}/cmake") -endif() -SET(CMAKE_INSTALL_DIR "${XP_INSTALL_CMAKEDIR}" CACHE PATH "The directory cmake files are installed in") -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) +IF(NOT DEFINED XP_NAMESPACE) + SET(_CMAKE_INSTALL_DIR "${LIB_INSTALL_DIR}/cmake/${PROJECT_NAME}") +ELSE() + SET(_CMAKE_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/cmake") +ENDIF() +SET(CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" CACHE PATH "The directory cmake files are installed in") -function(callPackageDevel) - set(lib ${PROJECT_NAME}) - string(PREPEND lib ${XP_NAMESPACE}::) - string(TOLOWER ${PROJECT_NAME} CMAKE_PROJECT_NAME) - xpPackageDevel(TARGETS_FILE ${targetsFile} LIBRARIES ${lib}) -endfunction() +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) -set(targetsFile ${PROJECT_NAME}-targets) if(DEFINED XP_NAMESPACE) + set(XP_INSTALL_CMAKEDIR "${CMAKE_INSTALL_DIR}") + xpExternPackage(REPO_NAME rapidjson NAMESPACE ${XP_NAMESPACE} + TARGETS_FILE RapidJSON-targets LIBRARIES RapidJSON + BASE v${CMAKE_PROJECT_VERSION}-763 XPDIFF "patch" + WEB "http://Tencent.github.io/rapidjson/" UPSTREAM "github.com/Tencent/rapidjson" + DESC "A fast JSON parser/generator for C++ with both SAX/DOM style API" + LICENSE "[MIT](https://raw.githubusercontent.com/Tencent/rapidjson/master/license.txt 'MIT License')" + ) set(nameSpace NAMESPACE ${XP_NAMESPACE}::) - callPackageDevel() - set(RAPIDJSON_COMPONENT devel) -else() - set(RAPIDJSON_COMPONENT dev) + set(OPT_INSTALL EXCLUDE_FROM_ALL) endif() if(RAPIDJSON_BUILD_DOC) @@ -199,6 +199,7 @@ IF (UNIX OR CYGWIN) @ONLY) INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION "${LIB_INSTALL_DIR}/pkgconfig" + ${OPT_INSTALL} COMPONENT pkgconfig) ENDIF() @@ -207,13 +208,13 @@ install(FILES readme.md COMPONENT doc) # Add an interface target to export it -add_library(${PROJECT_NAME} INTERFACE) +add_library(RapidJSON INTERFACE) -target_include_directories(${PROJECT_NAME} INTERFACE $) +target_include_directories(RapidJSON INTERFACE $) install(DIRECTORY include/rapidjson DESTINATION "${INCLUDE_INSTALL_DIR}" - COMPONENT ${RAPIDJSON_COMPONENT}) + COMPONENT dev) install(DIRECTORY example/ DESTINATION "${DOC_INSTALL_DIR}/examples" @@ -256,6 +257,7 @@ CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}Config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}Config.cmake @ONLY ) INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}Config.cmake" + ${OPT_INSTALL} DESTINATION ${CMAKECONFIG_INSTALL_DIR} ) # Install files @@ -263,9 +265,10 @@ IF(CMAKE_INSTALL_DIR) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake + ${OPT_INSTALL} DESTINATION "${CMAKE_INSTALL_DIR}" COMPONENT dev) - INSTALL(TARGETS ${PROJECT_NAME} EXPORT ${targetsFile} COMPONENT ${RAPIDJSON_COMPONENT}) - INSTALL(EXPORT ${targetsFile} DESTINATION ${CMAKE_INSTALL_DIR} ${nameSpace} COMPONENT ${RAPIDJSON_COMPONENT}) + INSTALL(TARGETS RapidJSON EXPORT RapidJSON-targets) + INSTALL(EXPORT RapidJSON-targets DESTINATION ${CMAKE_INSTALL_DIR} ${nameSpace}) ENDIF() From 50b26b890ab54fbc2310b3f7b346b9771c6dea29 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 22 Jan 2026 11:37:47 -0700 Subject: [PATCH 5/5] cmake: lib_name and targetsFile --- CMakeLists.txt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 584e8d167..05422194b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -158,10 +158,12 @@ SET(CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" CACHE PATH "The directory cmake fi include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) +set(lib_name ${PROJECT_NAME}) +set(targetsFile ${PROJECT_NAME}-targets) if(DEFINED XP_NAMESPACE) set(XP_INSTALL_CMAKEDIR "${CMAKE_INSTALL_DIR}") xpExternPackage(REPO_NAME rapidjson NAMESPACE ${XP_NAMESPACE} - TARGETS_FILE RapidJSON-targets LIBRARIES RapidJSON + TARGETS_FILE ${targetsFile} LIBRARIES ${lib_name} BASE v${CMAKE_PROJECT_VERSION}-763 XPDIFF "patch" WEB "http://Tencent.github.io/rapidjson/" UPSTREAM "github.com/Tencent/rapidjson" DESC "A fast JSON parser/generator for C++ with both SAX/DOM style API" @@ -208,9 +210,9 @@ install(FILES readme.md COMPONENT doc) # Add an interface target to export it -add_library(RapidJSON INTERFACE) +add_library(${lib_name} INTERFACE) -target_include_directories(RapidJSON INTERFACE $) +target_include_directories(${lib_name} INTERFACE $) install(DIRECTORY include/rapidjson DESTINATION "${INCLUDE_INSTALL_DIR}" @@ -269,6 +271,6 @@ IF(CMAKE_INSTALL_DIR) DESTINATION "${CMAKE_INSTALL_DIR}" COMPONENT dev) - INSTALL(TARGETS RapidJSON EXPORT RapidJSON-targets) - INSTALL(EXPORT RapidJSON-targets DESTINATION ${CMAKE_INSTALL_DIR} ${nameSpace}) + INSTALL(TARGETS ${lib_name} EXPORT ${targetsFile}) + INSTALL(EXPORT ${targetsFile} DESTINATION ${CMAKE_INSTALL_DIR} ${nameSpace}) ENDIF()