| # |
| # 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. |
| # |
| |
| project(qpid-interop-test) |
| |
| cmake_minimum_required(VERSION 2.8.7 FATAL_ERROR) |
| |
| set (ErrorFlag FALSE) |
| |
| # Find xpath |
| |
| find_program(Xpath xpath) |
| if (Xpath STREQUAL "Xpath-NOTFOUND") |
| message(WARNING "xpath not found") |
| set (ErrorFlag TRUE) |
| else () |
| message(STATUS "xpath found: ${Xpath}") |
| endif () |
| |
| # Find Python 2.7.x install path |
| |
| find_package( PythonInterp 2.7 REQUIRED ) |
| execute_process(COMMAND ${CMAKE_SOURCE_DIR}/get-python-dir-name |
| OUTPUT_VARIABLE PYTHON_DIR_NAME) |
| message(STATUS "Python install directory name: ${PYTHON_DIR_NAME}") |
| |
| # Find Java |
| |
| find_package(Java 1.8 COMPONENTS Development) |
| # RHEL7 bug: Java_FOUND is not being set, so workaround: |
| if (DEFINED Java_JAVA_EXECUTABLE AND DEFINED Java_JAVAC_EXECUTABLE AND DEFINED Java_JAR_EXECUTABLE) |
| message(STATUS "Java ${Java_VERSION_STRING} found") |
| message(STATUS "Java executable: ${Java_JAVA_EXECUTABLE}") |
| message(STATUS "Java compiler: ${Java_JAVAC_EXECUTABLE}") |
| message(STATUS "Java archiver: ${Java_JAR_EXECUTABLE}") |
| else () |
| message(WARNING "Java compiler not found") |
| set (ErrorFlag TRUE) |
| endif () |
| |
| # Find Maven |
| |
| find_program(Maven mvn) |
| if (Maven STREQUAL "Maven-NOTFOUND") |
| message (WARNING "Maven not found") |
| set (ErrorFlag TRUE) |
| else () |
| message (STATUS "Maven found: ${Maven}") |
| endif () |
| |
| # Find Proton components |
| |
| find_package(Proton 0.18) |
| if (Proton_FOUND) |
| get_filename_component(PROTON_INSTALL_DIR ${Proton_INCLUDE_DIRS} PATH CACHE PATH "Proton install directory") |
| message(STATUS "Qpid proton found. Version ${Proton_VERSION} at ${Proton_INCLUDE_DIRS}") |
| else () |
| message(WARNING "Qpid proton not found.") |
| set (ErrorFlag TRUE) |
| endif () |
| |
| find_package(ProtonCpp 0.18) |
| if (ProtonCpp_FOUND) |
| get_filename_component(PROTON_CPP_INSTALL_DIR ${ProtonCpp_INCLUDE_DIRS} PATH CACHE PATH "ProtonCpp install directory") |
| message(STATUS "Qpid proton c++ binding found. Version ${ProtonCpp_VERSION} at ${ProtonCpp_INCLUDE_DIRS}") |
| else() |
| message(WARNING "Qpid proton c++ binding not found.") |
| set (ErrorFlag TRUE) |
| endif () |
| |
| if (ErrorFlag) |
| message(FATAL_ERROR "Required component(s) missing, aborting configuration.") |
| endif () |
| |
| add_subdirectory(shims/qpid-proton-cpp/src) |
| add_subdirectory(shims/qpid-jms) |
| add_subdirectory(shims/amqpnetlite/src) |
| add_subdirectory(shims/rhea-js) |
| add_subdirectory(docs) |
| |
| # Install files using python setup.py |
| install(CODE "MESSAGE(STATUS \"Python install dir: ${CMAKE_INSTALL_PREFIX}/lib/${PYTHON_DIR_NAME}/site-packages/qpid_interop_test/\")") |
| install(CODE "execute_process(COMMAND python setup.py install --prefix ${CMAKE_INSTALL_PREFIX} |
| WORKING_DIRECTORY ../)") |
| |
| # TODO: THIS IS UGLY! |
| # Find a way to handle this as part of the Python install process instead |
| # Set the following Python scripts to executable: |
| install(CODE "execute_process(COMMAND bash -c \"chmod +x *_test.py\" |
| WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/lib/${PYTHON_DIR_NAME}/site-packages/qpid_interop_test/)") |
| |
| configure_file(config.sh.in config.sh) |