]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: check for "npm" before using it
authorKefu Chai <kchai@redhat.com>
Wed, 7 Mar 2018 07:04:33 +0000 (15:04 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 7 Mar 2018 09:23:49 +0000 (17:23 +0800)
and allows use to specify the path in which npm is installed. in my
case, if $HOME/.npmrc points "prefix" to ${HOME}/.npm-packages, i will
be able to run

NPM_ROOT=${HOME}/.npm-packages cmake ..

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/pybind/mgr/dashboard_v2/CMakeLists.txt

index d5c22c1610a04af25c382234fed53ef1329ef81d..026b4e8b78c81431fbccd303a780d104228ceb6c 100644 (file)
@@ -9,10 +9,16 @@ add_custom_target(mgr-dashboard_v2-test-venv
 add_dependencies(tests mgr-dashboard_v2-test-venv)
 
 if(WITH_MGR_DASHBOARD_V2_FRONTEND AND NOT CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64|arm|ARM")
+  find_program(NPM_BIN
+    NAMES npm
+    HINTS $ENV{NPM_ROOT}/bin)
+  if(NOT NPM_BIN)
+    message(FATAL_ERROR "WITH_MGR_DASHBOARD_V2_FRONTEND not npm not found")
+  endif()
 
 add_custom_command(
   OUTPUT "${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard_v2/frontend/node_modules"
-  COMMAND npm install
+  COMMAND ${NPM_BIN} install
   DEPENDS frontend/package.json
   WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard_v2/frontend
   COMMENT "dashboard_v2 frontend dependencies are being installed"
@@ -42,9 +48,9 @@ file(
   frontend/src/*/*/*/*/*/*.html)
 
 if(NOT CMAKE_BUILD_TYPE STREQUAL Debug)
-  set(npm_command npm run build -- --prod)
+  set(npm_command ${NPM_BIN} run build -- --prod)
 else()
-  set(npm_command npm run build)
+  set(npm_command ${NPM_BIN} run build)
 endif()
 
 add_custom_command(