From 51fb09b5643383bee2efb6180d582cd35dc1d45b Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 6 Nov 2025 20:56:38 -0700 Subject: [PATCH 1/9] git submodule add https://github.com/externpro/externpro .devcontainer --- .devcontainer | 1 + .gitmodules | 3 +++ 2 files changed, 4 insertions(+) create mode 160000 .devcontainer create mode 100644 .gitmodules diff --git a/.devcontainer b/.devcontainer new file mode 160000 index 0000000..380bfcd --- /dev/null +++ b/.devcontainer @@ -0,0 +1 @@ +Subproject commit 380bfcdd1f7655c7e27a9835f71de92e99c281fe diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..18932ab --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule ".devcontainer"] + path = .devcontainer + url = https://github.com/externpro/externpro From fb6798e618669375c867638af838db37c9451d0a Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 6 Nov 2025 20:59:37 -0700 Subject: [PATCH 2/9] docker-compose links --- docker-compose.sh | 1 + docker-compose.yml | 1 + 2 files changed, 2 insertions(+) create mode 120000 docker-compose.sh create mode 120000 docker-compose.yml diff --git a/docker-compose.sh b/docker-compose.sh new file mode 120000 index 0000000..85f182f --- /dev/null +++ b/docker-compose.sh @@ -0,0 +1 @@ +.devcontainer/compose.pro.sh \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 120000 index 0000000..46c1f89 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1 @@ +.devcontainer/compose.bld.yml \ No newline at end of file From dd5c0ecd1f21e9dbab8cccf453d68eb344b6ffa4 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 6 Nov 2025 21:00:06 -0700 Subject: [PATCH 3/9] add CMakePresets cp .devcontainer/cmake/presets/CMakePresets* . --- CMakePresets.json | 8 ++++++++ CMakePresetsBase.json | 16 ++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 CMakePresets.json create mode 100644 CMakePresetsBase.json diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 0000000..f82cfdd --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,8 @@ +{ + "version": 8, + "include": [ + ".devcontainer/cmake/presets/xpLinuxNinja.json", + ".devcontainer/cmake/presets/xpDarwinNinja.json", + ".devcontainer/cmake/presets/xpWindowsVs2022.json" + ] +} diff --git a/CMakePresetsBase.json b/CMakePresetsBase.json new file mode 100644 index 0000000..085cdc3 --- /dev/null +++ b/CMakePresetsBase.json @@ -0,0 +1,16 @@ +{ + "version": 8, + "configurePresets": [ + { + "name": "config-base", + "hidden": true, + "binaryDir": "${sourceDir}/_bld-${presetName}" + } + ], + "buildPresets": [ + { + "name": "build-base", + "hidden": true + } + ] +} From f082a8e2c8319740572019b0232aac60f9034987 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 6 Nov 2025 21:00:44 -0700 Subject: [PATCH 4/9] gitignore: externpro ignores --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1fc17fa --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.env +_bld*/ +docker-compose.override.yml From e6fda3d74d7789eeba65bd5813a4ac72960abff6 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 6 Nov 2025 21:03:32 -0700 Subject: [PATCH 5/9] externpro github/workflows @25.06 cp .devcontainer/.github/wf-templates/xp*.yml .github/workflows --- .github/workflows/xpbuild.yml | 30 ++++++++++++++++++++++++++++++ .github/workflows/xprelease.yml | 20 ++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 .github/workflows/xpbuild.yml create mode 100644 .github/workflows/xprelease.yml diff --git a/.github/workflows/xpbuild.yml b/.github/workflows/xpbuild.yml new file mode 100644 index 0000000..169ff52 --- /dev/null +++ b/.github/workflows/xpbuild.yml @@ -0,0 +1,30 @@ +name: Build +on: + push: + branches: [ "dev" ] + pull_request: + branches: [ "dev" ] + workflow_dispatch: +jobs: + linux: + uses: externpro/externpro/.github/workflows/build-linux.yml@25.06 + with: + cmake-workflow-preset: Linux + runon: ubuntu-latest + secrets: inherit + linux-arm64: + uses: externpro/externpro/.github/workflows/build-linux.yml@25.06 + with: + cmake-workflow-preset: Linux + runon: ubuntu-24.04-arm + secrets: inherit + macos: + uses: externpro/externpro/.github/workflows/build-macos.yml@25.06 + with: + cmake-workflow-preset: Darwin + secrets: inherit + windows: + uses: externpro/externpro/.github/workflows/build-windows.yml@25.06 + with: + cmake-workflow-preset: Windows + secrets: inherit diff --git a/.github/workflows/xprelease.yml b/.github/workflows/xprelease.yml new file mode 100644 index 0000000..1461914 --- /dev/null +++ b/.github/workflows/xprelease.yml @@ -0,0 +1,20 @@ +name: Release +on: + workflow_dispatch: + inputs: + workflow_run_url: + description: 'URL of the workflow run containing artifacts to upload (e.g., https://github.com/owner/repo/actions/runs/123456789)' + required: true + type: string +jobs: + # Upload build artifacts as release assets + release-from-build: + uses: externpro/externpro/.github/workflows/release-from-build.yml@25.06 + with: + workflow_run_url: ${{ github.event.inputs.workflow_run_url }} + artifact_pattern: "*.tar.xz" + permissions: + contents: write + id-token: write + attestations: write + secrets: inherit From 91e628e47dca3870dab51576d6621ef3c459df93 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 6 Nov 2025 21:07:40 -0700 Subject: [PATCH 6/9] CMakePresetsBase: add cacheVariables XP_NAMESPACE --- CMakePresetsBase.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CMakePresetsBase.json b/CMakePresetsBase.json index 085cdc3..4489d79 100644 --- a/CMakePresetsBase.json +++ b/CMakePresetsBase.json @@ -4,7 +4,10 @@ { "name": "config-base", "hidden": true, - "binaryDir": "${sourceDir}/_bld-${presetName}" + "binaryDir": "${sourceDir}/_bld-${presetName}", + "cacheVariables": { + "XP_NAMESPACE": "xpro" + } } ], "buildPresets": [ From 1ab2d037c1fbfe63bfa347593b5d6f29655ea6ae Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 6 Nov 2025 21:07:55 -0700 Subject: [PATCH 7/9] externpro dependency provider --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 42ffc5b..ee0de7b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,5 @@ cmake_minimum_required(VERSION 3.31) +set(CMAKE_PROJECT_TOP_LEVEL_INCLUDES .devcontainer/cmake/xproinc.cmake) project(rapidxml) include(GNUInstallDirs) include(xpflags) From a99cad4bf0e6aad6de06d573b576601593ad32cd Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 6 Nov 2025 21:17:03 -0700 Subject: [PATCH 8/9] xpbuild: cmake-workflow-preset Release --- .github/workflows/xpbuild.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/xpbuild.yml b/.github/workflows/xpbuild.yml index 169ff52..33ec5df 100644 --- a/.github/workflows/xpbuild.yml +++ b/.github/workflows/xpbuild.yml @@ -9,22 +9,22 @@ jobs: linux: uses: externpro/externpro/.github/workflows/build-linux.yml@25.06 with: - cmake-workflow-preset: Linux + cmake-workflow-preset: LinuxRelease runon: ubuntu-latest secrets: inherit linux-arm64: uses: externpro/externpro/.github/workflows/build-linux.yml@25.06 with: - cmake-workflow-preset: Linux + cmake-workflow-preset: LinuxRelease runon: ubuntu-24.04-arm secrets: inherit macos: uses: externpro/externpro/.github/workflows/build-macos.yml@25.06 with: - cmake-workflow-preset: Darwin + cmake-workflow-preset: DarwinRelease secrets: inherit windows: uses: externpro/externpro/.github/workflows/build-windows.yml@25.06 with: - cmake-workflow-preset: Windows + cmake-workflow-preset: WindowsRelease secrets: inherit From 518370a8b8b62a6fd46db405a1a96bd42846cbcf Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 6 Nov 2025 21:17:18 -0700 Subject: [PATCH 9/9] externpro devel package --- CMakeLists.txt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ee0de7b..458e269 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,13 +19,16 @@ list(APPEND ${lib_name}_libsrcs ${root_srcs}) add_library(${lib_name} INTERFACE ${${lib_name}_libsrcs}) target_include_directories(${lib_name} INTERFACE $) ######################################## -set(targetsFile ${PROJECT_NAME}-targets) -install(TARGETS ${lib_name} EXPORT ${targetsFile}) -install(FILES ${root_srcs} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) +set(lib ${lib_name}) if(DEFINED XP_NAMESPACE) set(nameSpace NAMESPACE ${XP_NAMESPACE}::) + string(PREPEND lib "${XP_NAMESPACE}::") endif() if(NOT DEFINED XP_INSTALL_CMAKEDIR) set(XP_INSTALL_CMAKEDIR ${CMAKE_INSTALL_DATADIR}/cmake) endif() +set(targetsFile ${PROJECT_NAME}-targets) +xpPackageDevel(TARGETS_FILE ${targetsFile} LIBRARIES ${lib}) +install(TARGETS ${lib_name} EXPORT ${targetsFile}) +install(FILES ${root_srcs} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) install(EXPORT ${targetsFile} DESTINATION ${XP_INSTALL_CMAKEDIR} ${nameSpace})