Skip to content

Commit bed0e10

Browse files
committed
ci: 修复 win 不能正常编译 angel-lsp
1 parent 8555e05 commit bed0e10

File tree

1 file changed

+29
-32
lines changed

1 file changed

+29
-32
lines changed

CMakeLists.txt

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,8 @@ if(WINGHEX_ANGEL_LSP)
717717
endif()
718718

719719
set(SRC_JS "${NODE_SUBDIR}/src/server.ts")
720-
set(DIST_JS "${BUILD_BIN_BUILD_DIR}/dist/angelscript-language-server.js")
720+
set(DIST_DIR "${BUILD_BIN_BUILD_DIR}/dist")
721+
set(DIST_JS "${DIST_DIR}/angelscript-language-server.js")
721722
set(OUT_BIN "${BUILD_BIN_DIR}/${OUT_NAME}")
722723

723724
find_program(NODE_EXE NAMES node)
@@ -746,8 +747,7 @@ if(WINGHEX_ANGEL_LSP)
746747
endif()
747748

748749
set(ESBUILD_CMD
749-
${NPX_EXE}
750-
esbuild
750+
${NPX_EXE} esbuild
751751
"${SRC_JS}"
752752
--bundle
753753
--platform=node
@@ -756,61 +756,58 @@ if(WINGHEX_ANGEL_LSP)
756756
--minify)
757757

758758
set(PKG_CMD
759-
${NPX_EXE}
760-
pkg
759+
${NPX_EXE} pkg
761760
"${DIST_JS}"
762761
--targets
763762
${PKG_TARGET}
764763
--output
765764
"${OUT_BIN}")
766765

766+
# Build JS bundle (ensure dist directory exists, run npm ci and esbuild)
767767
add_custom_command(
768-
OUTPUT ${DIST_JS}
769-
WORKING_DIRECTORY ${NODE_SUBDIR}
768+
OUTPUT "${DIST_JS}"
769+
COMMAND ${CMAKE_COMMAND} -E make_directory "${DIST_DIR}"
770770
COMMAND ${CMAKE_COMMAND} -E echo "[1] npm ci (local deps)"
771-
COMMAND ${NPM_EXE} ci --silent
772-
COMMAND ${CMAKE_COMMAND} -E echo "[2] building with esbuild"
773-
COMMAND ${NPX_EXE} tsc
774-
COMMAND ${ESBUILD_CMD}
771+
COMMAND ${CMAKE_COMMAND} -E chdir "${NODE_SUBDIR}" ${NPM_EXE} ci --silent
772+
COMMAND ${CMAKE_COMMAND} -E echo "[2] building with tsc + esbuild"
773+
COMMAND ${CMAKE_COMMAND} -E chdir "${NODE_SUBDIR}" ${NPX_EXE} tsc
774+
COMMAND ${CMAKE_COMMAND} -E chdir "${NODE_SUBDIR}" ${ESBUILD_CMD}
775+
BYPRODUCTS "${DIST_JS}"
776+
DEPENDS "${NODE_SUBDIR}/src/server.ts" "${NODE_SUBDIR}/package.json"
775777
COMMENT "Building JS bundle with esbuild -> ${DIST_JS}"
776778
VERBATIM)
777779

780+
# Packaging to native binary
778781
if(WIN32)
779782
add_custom_command(
780-
OUTPUT ${OUT_BIN}
781-
DEPENDS ${DIST_JS}
782-
WORKING_DIRECTORY ${NODE_SUBDIR}
783+
OUTPUT "${OUT_BIN}"
784+
DEPENDS "${DIST_JS}"
783785
COMMAND ${CMAKE_COMMAND} -E make_directory "${BUILD_BIN_DIR}"
784786
COMMAND ${CMAKE_COMMAND} -E make_directory "${BUILD_BIN_BUILD_DIR}"
785-
COMMAND ${CMAKE_COMMAND} -E echo
786-
"[3] packaging with pkg/npm exec/npx"
787-
COMMAND ${PKG_CMD}
787+
COMMAND ${CMAKE_COMMAND} -E echo "[3] packaging with pkg/npm exec/npx"
788+
COMMAND ${CMAKE_COMMAND} -E chdir "${NODE_SUBDIR}" ${PKG_CMD}
788789
COMMAND ${CMAKE_COMMAND} -E echo "[4] Packaging with pkg"
789-
COMMAND ${CMAKE_COMMAND} -E copy "${NODE_ROOT_SUBDIR}/package.json"
790-
"${BUILD_BIN_DIR}"
791-
COMMAND ${CMAKE_COMMAND} -E copy "${NODE_SUBDIR}/modIcon_win.js"
792-
"${BUILD_BIN_DIR}"
793-
COMMAND ${CMAKE_COMMAND} -E copy "${NODE_SUBDIR}/icon.ico"
794-
"${BUILD_BIN_DIR}"
790+
COMMAND ${CMAKE_COMMAND} -E copy "${NODE_ROOT_SUBDIR}/package.json" "${BUILD_BIN_DIR}"
791+
COMMAND ${CMAKE_COMMAND} -E copy "${NODE_SUBDIR}/modIcon_win.js" "${BUILD_BIN_DIR}"
792+
COMMAND ${CMAKE_COMMAND} -E copy "${NODE_SUBDIR}/icon.ico" "${BUILD_BIN_DIR}"
795793
COMMAND ${NODE_EXE} "${BUILD_BIN_DIR}/modIcon_win.js"
796-
COMMAND ${CMAKE_COMMAND} -E remove "${BUILD_BIN_DIR}/modIcon_win.js"
797-
"${BUILD_BIN_DIR}/icon.ico" "${BUILD_BIN_DIR}/package.json"
794+
COMMAND ${CMAKE_COMMAND} -E remove "${BUILD_BIN_DIR}/modIcon_win.js" "${BUILD_BIN_DIR}/icon.ico" "${BUILD_BIN_DIR}/package.json"
798795
COMMAND ${CMAKE_COMMAND} -E echo "[5] Modifying exe icon"
796+
BYPRODUCTS "${OUT_BIN}"
799797
VERBATIM)
800798
else()
801799
add_custom_command(
802-
OUTPUT ${OUT_BIN}
803-
DEPENDS ${DIST_JS}
804-
WORKING_DIRECTORY ${NODE_SUBDIR}
800+
OUTPUT "${OUT_BIN}"
801+
DEPENDS "${DIST_JS}"
805802
COMMAND ${CMAKE_COMMAND} -E make_directory "${BUILD_BIN_DIR}"
806803
COMMAND ${CMAKE_COMMAND} -E make_directory "${BUILD_BIN_BUILD_DIR}"
807-
COMMAND ${CMAKE_COMMAND} -E echo
808-
"[3] packaging with pkg/npm exec/npx"
809-
COMMAND ${PKG_CMD}
804+
COMMAND ${CMAKE_COMMAND} -E echo "[3] packaging with pkg/npm exec/npx"
805+
COMMAND ${CMAKE_COMMAND} -E chdir "${NODE_SUBDIR}" ${PKG_CMD}
810806
COMMAND ${CMAKE_COMMAND} -E echo "[4] Packaging with pkg"
807+
BYPRODUCTS "${OUT_BIN}"
811808
VERBATIM)
812809
endif()
813810

814-
add_custom_target(build_angel_lsp ALL DEPENDS ${OUT_BIN})
811+
add_custom_target(build_angel_lsp ALL DEPENDS "${OUT_BIN}")
815812
add_dependencies(WingHexExplorer2 build_angel_lsp)
816813
endif()

0 commit comments

Comments
 (0)