修正cmake

This commit is contained in:
2026-08-13 06:31:21 +08:00
parent a517804d27
commit 6d2cf825ae
4 changed files with 19 additions and 1942 deletions
+19 -7
View File
@@ -23,11 +23,14 @@ if (WIN32 AND DEFINED ENV{APPDATA})
endif ()
find_program(Renderive_Web_node_executable NAMES node node.exe
HINTS ${Renderive_Web_node_search_paths} REQUIRED)
get_filename_component(Renderive_Web_node_dir "${Renderive_Web_node_executable}" DIRECTORY)
if (WIN32)
find_program(Renderive_Web_npm_executable NAMES npm.cmd
HINTS ${Renderive_Web_node_search_paths} REQUIRED)
set(Renderive_Web_npm_executable "${Renderive_Web_node_dir}/npm.cmd")
else ()
find_program(Renderive_Web_npm_executable NAMES npm REQUIRED)
set(Renderive_Web_npm_executable "${Renderive_Web_node_dir}/npm")
endif ()
if (NOT EXISTS "${Renderive_Web_npm_executable}")
message(FATAL_ERROR "npm was not found next to Node.js: ${Renderive_Web_node_dir}")
endif ()
set(Renderive_Web_frontend_dir "${CMAKE_CURRENT_LIST_DIR}/../webapp_gallery")
set(Renderive_Web_frontend_install_stamp "${CMAKE_CURRENT_BINARY_DIR}/webapp_gallery_npm_ci.stamp")
@@ -43,9 +46,16 @@ set(Renderive_Web_frontend_configuration
"${Renderive_Web_frontend_dir}/tsconfig.app.json"
"${Renderive_Web_frontend_dir}/index.html"
)
if (WIN32)
set(Renderive_Web_node_path "${Renderive_Web_node_dir};$ENV{PATH}")
else ()
set(Renderive_Web_node_path "${Renderive_Web_node_dir}:$ENV{PATH}")
endif ()
add_custom_command(
OUTPUT "${Renderive_Web_frontend_install_stamp}"
COMMAND "${Renderive_Web_npm_executable}" ci
COMMAND "${CMAKE_COMMAND}" -E env
"PATH=${Renderive_Web_node_path}"
"${Renderive_Web_npm_executable}" ci
COMMAND "${CMAKE_COMMAND}" -E touch "${Renderive_Web_frontend_install_stamp}"
DEPENDS
"${Renderive_Web_frontend_dir}/package.json"
@@ -56,7 +66,9 @@ add_custom_command(
)
add_custom_command(
OUTPUT "${Renderive_Web_frontend_build_stamp}"
COMMAND "${Renderive_Web_npm_executable}" run build
COMMAND "${CMAKE_COMMAND}" -E env
"PATH=${Renderive_Web_node_path}"
"${Renderive_Web_npm_executable}" run build
COMMAND "${CMAKE_COMMAND}" -E touch "${Renderive_Web_frontend_build_stamp}"
DEPENDS "${Renderive_Web_frontend_install_stamp}"
${Renderive_Web_frontend_configuration}
@@ -124,7 +136,7 @@ append_glob_source(Renderive_Web_Server_sources "${Renderive_Web_Server_source_d
add_executable(Renderive_Web_Server ${Renderive_Web_Server_sources})
target_compile_features(Renderive_Web_Server PRIVATE cxx_std_20)
target_link_libraries(Renderive_Web_Server PRIVATE Renderive_Web)
add_dependencies(Renderive_Web_Server Renderive_Web_Assets)
#add_dependencies(Renderive_Web_Server Renderive_Web_Assets)
if (MSVC)
target_compile_options(Renderive_Web PRIVATE /utf-8)
target_compile_options(Renderive_Web_Server PRIVATE /utf-8)
@@ -146,4 +158,4 @@ if (RENDERIVE_BUILD_TESTS)
target_link_libraries("${Renderive_Web_test_target}" PRIVATE Renderive_Web Adminive::Nlohmann GTest::gtest_main)
add_test(NAME "${Renderive_Web_test_target}" COMMAND "${Renderive_Web_test_target}")
endforeach ()
endif ()
endif ()