diff --git a/cmake/FindNodeJS.cmake b/cmake/FindNodeJS.cmake new file mode 100644 index 000000000..43a31e3bd --- /dev/null +++ b/cmake/FindNodeJS.cmake @@ -0,0 +1,22 @@ +# Find the Node.js executable +# +# The following variables are set: +# NODEJS_FOUND True if Node.js was found +# NODEJS_EXECUTABLE Path to the Node.js executable +# NODEJS_VERSION Node.js version + +find_program(NODEJS_EXECUTABLE node) + +if (${NODEJS_EXECUTABLE} MATCHES "NOTFOUND") + message(STATUS "Could not find Node.js") + set(NODEJS_FOUND FALSE CACHE INTERNAL "") + unset(NODEJS_EXECUTABLE) +else() + execute_process(COMMAND ${NODEJS_EXECUTABLE} --version + OUTPUT_VARIABLE VERSION_VAR) + string(REGEX REPLACE "[v]" "" VERSION_VAR ${VERSION_VAR}) + string(STRIP ${VERSION_VAR} VERSION_VAR) + set(NODEJS_VERSION ${VERSION_VAR} CACHE INTERNAL "") + set(NODEJS_FOUND TRUE CACHE INTERNAL "") + message(STATUS "Found Node.js version ${NODEJS_VERSION}: ${NODEJS_EXECUTABLE}") +endif() diff --git a/maxctrl/CMakeLists.txt b/maxctrl/CMakeLists.txt index 5601c3d5b..0b697a47a 100644 --- a/maxctrl/CMakeLists.txt +++ b/maxctrl/CMakeLists.txt @@ -1,6 +1,7 @@ find_package(NPM) +find_package(NodeJS) -if (NPM_FOUND) +if (NPM_FOUND AND NODEJS_FOUND AND NODEJS_VERSION VERSION_GREATER "6.0.0") add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/maxctrl/maxctrl COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/build.sh ${CMAKE_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) @@ -15,5 +16,5 @@ if (NPM_FOUND) WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) else() - message(STATUS "Not building MaxCtrl: npm not found") + message(STATUS "Not building MaxCtrl: npm or Node.js >= 6.0.0 not found") endif()