Skip to content

Commit 6de9700

Browse files
author
Alam, Maksudul
committed
Suggested CMakeLists.txt for Yarn
1 parent f228056 commit 6de9700

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

viz/CMakeLists.txt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
set(__install_dest share/exago/viz)
22

33
set(EXAGO_VIZ_SUBDIRS backend components data geo_data images src)
4+
set(EXAGO_VIZ_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
45

56
set(EXAGO_VIZ_FILES
67
${CMAKE_CURRENT_SOURCE_DIR}/exago-logo.png
@@ -14,5 +15,50 @@ set(EXAGO_VIZ_FILES
1415
${CMAKE_CURRENT_SOURCE_DIR}/vite.config.ts
1516
)
1617

18+
find_program(YARN_EXECUTABLE yarn REQUIRED
19+
DOC "Path to the yarn package manager"
20+
)
21+
message(STATUS "Found yarn: ${YARN_EXECUTABLE}")
22+
23+
if(NOT EXISTS "${EXAGO_VIZ_DIR}/package.json")
24+
message(FATAL_ERROR "No package.json found: ${EXAGO_VIZ_DIR}\n")
25+
endif()
26+
27+
set(YARN_STAMP "${CMAKE_CURRENT_BINARY_DIR}/yarn_install.stamp")
28+
add_custom_command(
29+
OUTPUT "${YARN_STAMP}"
30+
COMMAND "${YARN_EXECUTABLE}" install
31+
COMMAND "${CMAKE_COMMAND}" -E touch "${YARN_STAMP}"
32+
WORKING_DIRECTORY "${EXAGO_VIZ_DIR}"
33+
DEPENDS "${EXAGO_VIZ_DIR}/package.json"
34+
"${EXAGO_VIZ_DIR}/yarn.lock"
35+
COMMENT "Running yarn install in ${EXAGO_VIZ_DIR}"
36+
VERBATIM
37+
)
38+
add_custom_target(yarn_install ALL
39+
DEPENDS "${YARN_STAMP}"
40+
)
41+
1742
install(DIRECTORY ${EXAGO_VIZ_SUBDIRS} DESTINATION ${__install_dest})
1843
install(FILES ${EXAGO_VIZ_FILES} DESTINATION ${__install_dest})
44+
install(CODE "
45+
46+
set(INSTALL_DIR \"\${CMAKE_INSTALL_PREFIX}/share/exago/viz\")
47+
48+
if(NOT EXISTS \"\${INSTALL_DIR}/package.json\")
49+
message(FATAL_ERROR \"package.json not found in \${INSTALL_DIR} — file copy may have failed.\")
50+
endif()
51+
52+
message(STATUS \"Running yarn install in \${INSTALL_DIR}\")
53+
execute_process(
54+
COMMAND \"${YARN_EXECUTABLE}\" install
55+
WORKING_DIRECTORY \"\${INSTALL_DIR}\"
56+
RESULT_VARIABLE YARN_RESULT
57+
)
58+
59+
if(NOT YARN_RESULT EQUAL 0)
60+
message(FATAL_ERROR \"yarn install failed in \${INSTALL_DIR} (exit code: \${YARN_RESULT})\")
61+
endif()
62+
63+
message(STATUS \"yarn install complete in \${INSTALL_DIR}\")
64+
")

0 commit comments

Comments
 (0)