blob: 1ffd94b1f51df070be8c0af53d9d37033532566c [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# Building Rhea requires that node.js is installed.
project(qpid-interop-test-rhea-shims)
set(RHEA_DIR "$ENV{HOME}/rhea" CACHE PATH "Path to local Rhea installation")
message(STATUS "Searching for Rhea shim build and run requirements... RHEA_DIR=${RHEA_DIR}")
find_file(RHEA package.json HINTS ${RHEA_DIR} NO_DEFAULT_PATH DOC "Rhea javascript package file")
if (RHEA STREQUAL "RHEA-NOTFOUND")
message(STATUS "No local Rhea directory found, using upstream package.")
set(LOCAL_RHEA_PATH "")
else()
message(STATUS "Local Rhea directory found at ${RHEA_DIR}")
set(LOCAL_RHEA_PATH ${RHEA_DIR})
endif()
find_program(PROG_NODE node)
find_program(PROG_NPM npm)
if ((PROG_NODE STREQUAL "PROG_NODE-NOTFOUND") OR (PROG_NPM STREQUAL "PROG_NPM-NOTFOUND"))
if (PROG_NODE STREQUAL "PROG_NODE-NOTFOUND")
message(STATUS "Program 'node' not found.")
endif()
if (PROG_NPM STREQUAL "PROG_NPM-NOTFOUND")
message(STATUS "Program 'npm' not found.")
endif()
# Set option that controls the build process
option(BUILD_RHEA "Build Rhea Javascript shim" OFF)
else ()
execute_process(COMMAND node --version OUTPUT_VARIABLE node_ver)
string(REGEX REPLACE "\n$" "" node_ver "${node_ver}") # Strip trailing newline
message(STATUS "node ${node_ver} found")
execute_process(COMMAND npm --version OUTPUT_VARIABLE npm_ver)
string(REGEX REPLACE "\n$" "" npm_ver "${npm_ver}") # Strip trailing newline
message(STATUS "npm ${npm_ver} found")
# Set option that controls the build process
option(BUILD_RHEA "Build Rhea Javascript shim" ON)
endif()
message(STATUS "BUILD_RHEA = ${BUILD_RHEA}")
if (${BUILD_RHEA})
# Install Rhea client dependencies
set(SHIM_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/libexec/qpid_interop_test/shims/rhea-js/)
install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/amqp_types_test/Receiver.js
DESTINATION ${SHIM_INSTALL_PATH}/amqp_types_test/)
install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/amqp_types_test/Sender.js
DESTINATION ${SHIM_INSTALL_PATH}/amqp_types_test/)
install(CODE "execute_process(COMMAND npm install node-uuid
WORKING_DIRECTORY ${SHIM_INSTALL_PATH})")
install(CODE "execute_process(COMMAND npm install rhea ${LOCAL_RHEA_PATH}
WORKING_DIRECTORY ${SHIM_INSTALL_PATH})")
endif()