diff --git a/cmake/FindNPM.cmake b/cmake/FindNPM.cmake new file mode 100644 index 000000000..cf53d5b36 --- /dev/null +++ b/cmake/FindNPM.cmake @@ -0,0 +1,16 @@ +# Find the npm executable +# +# The following variables are set: +# NPM_FOUND - True if npm was found +# NPM_EXECUTABLE - Path to npm + +find_program(NPM_EXECUTABLE npm) + +if (${NPM_EXECUTABLE} MATCHES "NOTFOUND") + message(STATUS "Could not find npm") + set(NPM_FOUND FALSE CACHE INTERNAL "") + unset(NPM_EXECUTABLE) +else() + message(STATUS "Found npm: ${NPM_EXECUTABLE}") + set(NPM_FOUND TRUE CACHE INTERNAL "") +endif() diff --git a/maxctrl/CMakeLists.txt b/maxctrl/CMakeLists.txt index 552439ebc..76b63237e 100644 --- a/maxctrl/CMakeLists.txt +++ b/maxctrl/CMakeLists.txt @@ -1 +1,13 @@ +find_package(NPM) + +if (NPM_FOUND) + add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/maxctrl/maxctrl + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/build.sh ${CMAKE_SOURCE_DIR} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) + add_custom_target(maxctrl ALL DEPENDS ${CMAKE_BINARY_DIR}/maxctrl/maxctrl) + install_script(${CMAKE_BINARY_DIR}/maxctrl/maxctrl core) +else() + message(STATUS "Not building MaxCtrl: npm not found") +endif() + add_subdirectory(test) diff --git a/maxctrl/build.sh b/maxctrl/build.sh index 2a6e665dc..353fb4475 100755 --- a/maxctrl/build.sh +++ b/maxctrl/build.sh @@ -1,5 +1,15 @@ #/bin/bash +if [ $# -lt 1 ] +then + echo "Usage: $0 SRC" + exit 1 +fi + +# Copy sources to working directory +src=$1 +cp -r -t $PWD/maxctrl $src/maxctrl/* && cd $PWD/maxctrl + npm install npm install pkg node_modules/pkg/lib-es5/bin.js -t node6-linux-x64 .