
Cherry-picked 12e6ada259c38d535003c068a49bc525c33830d8 into 2.3. Since the maxctrl build process uses add_custom_command, we must explicitly list the sources that it depends on. With this change, maxctrl is rebuild whenever the sources change.
31 lines
1.2 KiB
CMake
31 lines
1.2 KiB
CMake
if (BUILD_MAXCTRL)
|
|
find_package(NPM)
|
|
find_package(NodeJS)
|
|
|
|
if (NPM_FOUND AND NODEJS_FOUND AND NODEJS_VERSION VERSION_GREATER "6.0.0")
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lib/version.js.in ${CMAKE_CURRENT_BINARY_DIR}/lib/version.js @ONLY)
|
|
|
|
file(GLOB_RECURSE MAXCTRL_SOURCES lib/*)
|
|
|
|
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/maxctrl/maxctrl
|
|
DEPENDS ${MAXCTRL_SOURCES} maxctrl.js
|
|
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)
|
|
|
|
add_custom_target(test_maxctrl
|
|
COMMAND ${CMAKE_SOURCE_DIR}/test/run_npm_test.sh
|
|
${CMAKE_SOURCE_DIR} # Path to MaxScale sources
|
|
${CMAKE_CURRENT_SOURCE_DIR} # Path to test sources
|
|
${CMAKE_BINARY_DIR}/maxctrl-test/ # Location where tests are built and run
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
|
|
elseif(NOT BUILD_SYSTEM_TESTS)
|
|
message(FATAL_ERROR "Not building MaxCtrl: npm or Node.js >= 6.0.0 not found. Add the following to skip MaxCtrl: -DBUILD_MAXCTRL=N")
|
|
endif()
|
|
else()
|
|
message(STATUS "Not building MaxCtrl: BUILD_MAXCTRL=N")
|
|
endif()
|