独立项目

This commit is contained in:
2026-08-11 13:37:32 +08:00
parent a39fe2bc49
commit 6fe003d199
9 changed files with 225 additions and 6 deletions
+1
View File
@@ -0,0 +1 @@
/.idea
+20
View File
@@ -0,0 +1,20 @@
if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_LIST_DIR})
cmake_minimum_required(VERSION 3.16)
# cmake_policy(SET CMP0141 NEW)
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<$<CONFIG:Debug,RelWithDebInfo>:Embedded>")
project(Renderive)
set(Renderive_VERSION 1.0.0)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
include(third_party/build_infra/start.cmake)
include(third_party/CPP_Core/main.cmake)
include(${CMAKE_SOURCE_DIR}/main.cmake)
include(third_party/build_infra/end.cmake)
else ()
endif ()
+7
View File
@@ -0,0 +1,7 @@
{
"version": 4,
"include": [
"toolchain/vs2022.json",
"toolchain/vs2019.json"
]
}
+16 -6
View File
@@ -13,18 +13,20 @@ set(renderive_dependencies
${Psc_Core_dependencies}
)
#rcl_generate_registered_cmake_library()
rcl_load_dependency_environment(${renderive_dependencies})
library_is_installed_with_rely(renderive_dependencies_installed ${renderive_dependencies})
if (NOT renderive_dependencies_installed)
set(log "[FATAL_ERROR] Renderive 依赖未安装,请先构建 renderive_env 目标")
rcl_log_append("${log}")
rcl_add_dependency_action_targets(renderive_env ${renderive_dependencies})
return()
else ()
find_package(Drogon)
find_package(spdlog CONFIG REQUIRED)
find_package(LibDataChannel CONFIG REQUIRED)
endif ()
rcl_load_dependency_environment(${renderive_dependencies})
find_package(Drogon)
find_package(spdlog CONFIG REQUIRED)
find_package(LibDataChannel CONFIG REQUIRED)
find_package(Qt5 MODULE REQUIRED COMPONENTS
Core Gui Widgets Svg Xml PrintSupport QuickWidgets Multimedia
)
@@ -129,7 +131,15 @@ endif ()
if (NOT TARGET Adminive::Nlohmann)
set(renderive_saved_build_testing "${BUILD_TESTING}")
set(BUILD_TESTING OFF)
add_subdirectory("${root_dir}/../Adminive"
if (CMAKE_CURRENT_LIST_DIR STREQUAL CMAKE_SOURCE_DIR)
set(3rd_dir "${CMAKE_SOURCE_DIR}/third_party")
else ()
set(3rd_dir "${root_dir}/..")
endif ()
add_subdirectory("${3rd_dir}/Adminive"
"${CMAKE_CURRENT_BINARY_DIR}/third_party/Adminive"
EXCLUDE_FROM_ALL)
set(BUILD_TESTING "${renderive_saved_build_testing}")
+52
View File
@@ -0,0 +1,52 @@
#!/usr/bin/env bash
set -euo pipefail
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$root"
origin="$(git remote get-url origin)"
origin="${origin%/}"
remote_root="$(printf '%s\n' "$origin" | sed -E 's#/[^/]+(\.git)?$##')"
remote_root="${remote_root%/*}"
echo "remote_root: $remote_root"
get_default_branch() {
local repo="$1"
local branch
branch="$(git ls-remote --symref "$repo" HEAD | awk '$1 == "ref:" {
sub("^refs/heads/", "", $2)
print $2
exit
}')"
if [ -z "$branch" ]; then
printf '无法获取远程仓库默认分支: %s\n' "$repo" >&2
return 1
fi
printf '%s\n' "$branch"
}
fetch_repo() {
local repo="$1"
local dir="$2"
local branch="${3-}"
if [ -z "$branch" ]; then
branch="$(get_default_branch "$repo")"
fi
if [ -d "$dir" ]; then
git -C "$dir" rev-parse --is-inside-work-tree >/dev/null
git -C "$dir" remote set-url origin "$repo"
git -C "$dir" fetch origin "$branch"
git -C "$dir" checkout "$branch"
git -C "$dir" pull --ff-only origin "$branch"
else
git clone --branch "$branch" --single-branch "$repo" "$dir"
fi
}
fetch_repo_ex() {
local name="$1"
local branch="${2-}"
local repo="${remote_root}/${name}"
local dir="${name##*/}"
fetch_repo "$repo" "third_party/${dir}" "$branch"
}
fetch_repo_ex "ae/build_infra"
fetch_repo_ex "ae/CPP_Core"
fetch_repo_ex "psc/Structive"
fetch_repo_ex "psc/Adminive"
+40
View File
@@ -0,0 +1,40 @@
include_guard(GLOBAL)
#set(base_dir "C:/Program Files/Microsoft Visual Studio/18/Enterprise/VC/Tools/MSVC/14.50.35717/bin/Hostx64/x64")
#set(CMAKE_C_COMPILER "${base_dir}/cl.bat" CACHE FILEPATH "")
#set(CMAKE_CXX_COMPILER "{${base_dir}}/cl.bat" CACHE FILEPATH "")
#set(CMAKE_MAKE_PROGRAM "C:/Program Files/Microsoft Visual Studio/18/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" CACHE FILEPATH "")
function(_append_msvc_init_options variable)
set(value "${${variable}}")
separate_arguments(existing_options WINDOWS_COMMAND "${value}")
foreach (option IN LISTS ARGN)
list(FIND existing_options "${option}" option_index)
if (option_index EQUAL -1)
list(APPEND existing_options "${option}")
endif ()
endforeach ()
list(JOIN existing_options " " value)
set(${variable} "${value}" PARENT_SCOPE)
endfunction()
_append_msvc_init_options(
CMAKE_CXX_FLAGS_INIT
/wd4819
/utf-8
/Zc:preprocessor
/DNOMINMAX
/D_USE_MATH_DEFINES
/EHsc
/bigobj
/DWIN32_LEAN_AND_MEAN
)
_append_msvc_init_options(
CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT
/PROFILE
)
_append_msvc_init_options(
CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT
/PROFILE
)
_append_msvc_init_options(
CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT
/PROFILE
)
+38
View File
@@ -0,0 +1,38 @@
{
"version": 10,
"cmakeMinimumRequired": {
"major": 3,
"minor": 21,
"patch": 0
},
"configurePresets": [
{
"name": "vs2019",
"hidden": true,
"graphviz": "${sourceDir}/../build/${presetName}/graphviz/yc.dot",
"generator": "Ninja",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/toolchain/vs2019.cmake"
},
"vendor": {
"jetbrains.com/clion": {
"toolchain": "vs2019"
}
}
},
{
"name": "vs2019_Debug",
"inherits": "vs2019",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
}
},
{
"name": "vs2019_Release",
"inherits": "vs2019",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
}
]
}
+13
View File
@@ -0,0 +1,13 @@
set(dir "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64")
set(CMAKE_CXX_COMPILER "${dir}/cl.bat")
set(CMAKE_C_COMPILER "${dir}/cl.bat")
set(CMAKE_LINKER "${dir}/link.bat")
#set(CMAKE_CXX_COMPILER "${dir}/cl.exe")
#set(CMAKE_C_COMPILER "${dir}/cl.exe")
#set(CMAKE_LINKER "${dir}/link.exe")
# [2/2] C:\Windows\system32\cmd.exe /C "cd . && "C:\Program Files\JetBrains\CLion 2025.3.4\bin\cmake\win\x64\bin\cmake.exe" -E vs_link_exe --msvc-ver=1944 --intdir=CMakeFiles\radio.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100261~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100261~1.0\x64\mt.exe --manifests -- C:\PROGRA~1\MICROS~1\2022\ENTERP~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\LINK_2~1.BAT /nologo @CMakeFiles\radio.rsp /out:radio.exe /implib:radio.lib /pdb:radio.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console && cd ."
+38
View File
@@ -0,0 +1,38 @@
{
"version": 10,
"cmakeMinimumRequired": {
"major": 3,
"minor": 21,
"patch": 0
},
"configurePresets": [
{
"name": "vs2022",
"hidden": true,
"graphviz": "${sourceDir}/../build/${presetName}/graphviz/yc.dot",
"generator": "Ninja",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/toolchain/vs2022.cmake"
},
"vendor": {
"jetbrains.com/clion": {
"toolchain": "vs2022"
}
}
},
{
"name": "vs2022_debug",
"inherits": "vs2022",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
}
},
{
"name": "vs2022_release",
"inherits": "vs2022",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
}
]
}