From: Kefu Chai Date: Wed, 7 Mar 2018 07:04:33 +0000 (+0800) Subject: cmake: check for "npm" before using it X-Git-Tag: v13.0.2~68^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ad0d7c89a13a0b2497b5350877580413726d99ad;p=ceph.git cmake: check for "npm" before using it 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 --- diff --git a/src/pybind/mgr/dashboard_v2/CMakeLists.txt b/src/pybind/mgr/dashboard_v2/CMakeLists.txt index d5c22c1610a0..026b4e8b78c8 100644 --- a/src/pybind/mgr/dashboard_v2/CMakeLists.txt +++ b/src/pybind/mgr/dashboard_v2/CMakeLists.txt @@ -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(