Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .devcontainer
Submodule .devcontainer updated 63 files
+185 −0 .github/actions/cmake-build/action.yml
+10 −16 .github/wf-templates/xpbuild.yml
+1 −2 .github/wf-templates/xprelease.yml
+61 −17 .github/workflows/README.md
+67 −60 .github/workflows/build-linux.yml
+7 −35 .github/workflows/build-macos.yml
+7 −43 .github/workflows/build-windows.yml
+75 −122 .github/workflows/release-from-build.yml
+288 −0 .windsurf/workflows/manifestUpdate.md
+3 −3 README.md
+0 −40 cmake/Findexdlpro.cmake
+0 −78 cmake/Findwebpro.cmake
+79 −68 cmake/README.md
+0 −17 cmake/cmswxconfig.cmake
+1 −1 cmake/cpack/README.md
+78 −13 cmake/deps.cmake
+9 −9 cmake/deps.dot
+ cmake/deps.png
+499 −0 cmake/deps.svg
+0 −0 cmake/legacy/Findscript.cmake.in
+0 −0 cmake/legacy/cmsappendsuffix.cmake
+0 −0 cmake/legacy/cmsconfigurefile.cmake
+0 −0 cmake/legacy/cmscopyfilemd5.cmake
+0 −0 cmake/legacy/cmscopyfiles.cmake
+0 −0 cmake/legacy/cmscopymanuals.cmake
+0 −0 cmake/legacy/cmsdownload.cmake
+0 −0 cmake/legacy/launchWorkflow.cmake
+0 −0 cmake/legacy/macpro.cmake
+1 −2 cmake/legacy/sync.cmake
+0 −0 cmake/legacy/sync.sh.in
+928 −0 cmake/legacy/xpfunmac.cmake
+0 −0 cmake/legacy/xpopts.cmake.in
+0 −0 cmake/legacy/xpsolpkg.cmake
+0 −67 cmake/presets/xpDarwinMakefilesRelease.json
+0 −67 cmake/presets/xpLinuxMakefilesRelease.json
+204 −505 cmake/pros.cmake
+14 −36 cmake/pros.md
+0 −7 cmake/usexp.cmake.in
+0 −22 cmake/usexpdev.cmake.in
+0 −0 cmake/web/NodePath.cmake
+0 −0 cmake/web/version.js.in
+0 −0 cmake/web/version.ts.in
+0 −0 cmake/web/versionjs.cmake
+82 −139 cmake/web/xpweb.cmake
+119 −8 cmake/xpcfg.cmake
+344 −1,060 cmake/xpfunmac.cmake
+6 −0 cmake/xproinc.cmake
+1 −2 cmake/xptoplevel.cmake
+6 −5 cmake/xpuse.cmake.in
+0 −1 compose.bld.sh
+0 −1 compose.bld.yml
+0 −1 compose.ci.sh
+1 −1 compose.gpu.sh
+0 −1 compose.gpu.yml
+1 −2 compose.pro.sh
+0 −6 compose.xdl.sh
+7 −90 denv.sh
+66 −32 funcs.sh
+15 −10 graph/graph.dot
+ graph/graph.png
+1 −6 local.dockerfile
+90 −0 tools.sh
+84 −0 xp.svg
20 changes: 10 additions & 10 deletions .github/workflows/xpbuild.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
name: Build
permissions:
contents: read
pull-requests: write
on:
push:
branches: [ "dev" ]
Expand All @@ -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
3 changes: 1 addition & 2 deletions .github/workflows/xprelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
50 changes: 26 additions & 24 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
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")
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)
Expand Down Expand Up @@ -151,27 +148,29 @@ 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(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 ${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"
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)
Expand Down Expand Up @@ -202,6 +201,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()

Expand All @@ -210,13 +210,13 @@ install(FILES readme.md
COMPONENT doc)

# Add an interface target to export it
add_library(${PROJECT_NAME} INTERFACE)
add_library(${lib_name} INTERFACE)

target_include_directories(${PROJECT_NAME} INTERFACE $<INSTALL_INTERFACE:include>)
target_include_directories(${lib_name} INTERFACE $<INSTALL_INTERFACE:include>)

install(DIRECTORY include/rapidjson
DESTINATION "${INCLUDE_INSTALL_DIR}"
COMPONENT ${RAPIDJSON_COMPONENT})
COMPONENT dev)

install(DIRECTORY example/
DESTINATION "${DOC_INSTALL_DIR}/examples"
Expand Down Expand Up @@ -259,16 +259,18 @@ 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
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 ${lib_name} EXPORT ${targetsFile})
INSTALL(EXPORT ${targetsFile} DESTINATION ${CMAKE_INSTALL_DIR} ${nameSpace})
ENDIF()