1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
# vim: noautoindent:
cmake_minimum_required(VERSION 3.18...3.26 FATAL_ERROR)
project(TangoSourceDistribution LANGUAGES CXX)
set(SHELL "/usr/bin/env sh")
get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(NOT IS_MULTI_CONFIG AND NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release")
endif()
# switches
option(TSD_LIB "Install and use bundled libtango, if OFF use libtango found on system" ON)
option(TSD_JAVA "Installation of java applications" ON)
option(TSD_DATABASE "Installation of tango database server" ON)
option(TSD_TAC "Installation of access control server" OFF)
option(TSD_HTML_DOCUMENTATION "Include the HTML documentation" ON)
# non-boolean knobs
SET(TSD_JAVA_PATH "" CACHE STRING "Path to the java interpreter")
if(TSD_JAVA)
set(JAVA_HOME ${TSD_JAVA_PATH})
find_package(Java 11 COMPONENTS Runtime REQUIRED)
set(TSD_JAVA_VERSION ${Java_VERSION_STRING})
set(TSD_JAVA_EXEC ${Java_JAVA_EXECUTABLE})
else()
set(TSD_JAVA_VERSION "unknown")
set(TSD_JAVA_EXEC "unknown")
endif()
SET(TSD_RC_FILE "/etc/tangorc")
# Overwrite settings of included projects
option(BUILD_TESTING "Enable building the cppTango tests" OFF)
set(tangoidl_FOUND ON CACHE BOOL "")
set(IDL_VERSION_FOUND "6.0.2" CACHE STRING "")
add_library(tangoidl::tangoidl INTERFACE IMPORTED)
set_target_properties(tangoidl::tangoidl PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/lib/idl/include"
)
set(tangoidl_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/lib/idl")
add_subdirectory(lib)
if (TSD_LIB)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
endif()
add_subdirectory(cppserver)
add_subdirectory(doc)
add_subdirectory(pogo)
if(TSD_DATABASE)
add_subdirectory(scripts)
endif()
add_subdirectory(utils)
# mysql/mariadb server is found in TangoDatabase cmake logic
set(TSD_OMNIORB_VERSION ${OMNIORB_VERSION})
set(TSD_OMNIORB_PATH ${omniORB4_INCLUDE_DIR})
set(TSD_ZMQ_PATH ${ZeroMQ_INCLUDE_DIR})
if(_ZeroMQ_PKG_VERSION)
set(TSD_ZMQ_VERSION ${_ZeroMQ_PKG_VERSION})
else()
set(TSD_ZMQ_VERSION "not-yet-supported")
endif()
set(TSD_CPPZMQ_PATH ${cppzmq_INCLUDE_DIR})
if(_cppzmq_PKG_VERSION)
set(TSD_CPPZMQ_VERSION ${_cppzmq_PKG_VERSION})
else()
set(TSD_CPPZMQ_VERSION "not-yet-supported")
endif()
# Unfortunately, TangoDatabase's FindMySQL.cmake does not cache MySQL_LIBRARY,
# only MySQL_LIBRARY_RELEASE and MySQL_LIBRARY_DEBUG.
if (NOT MySQL_LIBRARY)
include(SelectLibraryConfigurations)
select_library_configurations(MySQL)
endif()
set(TSD_MYSQL_CLIENT_LDLIBS ${MySQL_LIBRARY})
set(TSD_MYSQL_CLIENT_VERSION ${MySQL_VERSION})
set(TSD_MYSQL_SERVER_VERSION ${TDB_DB_VERSION})
set(TSD_MYSQL_SERVER_CONNECTION ${TDB_DB_CONNECTION_RESULT})
message(STATUS "\
Summary: \n \
Configuration (TangoSourceDistribution): \n \
\n \
Source code location: ${CMAKE_SOURCE_DIR} \n \
Version: 10.0.2 \n \
Compiler: C++ ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION} \n \
\n \
OMNIORB PATH: ${TSD_OMNIORB_PATH} \n \
OMNIORB VERSION: ${TSD_OMNIORB_VERSION} \n \
\n \
CPPZMQ PATH: ${TSD_CPPZMQ_PATH} \n \
CPPZMQ VERSION: ${TSD_CPPZMQ_VERSION} \n \
\n \
ZMQ PATH: ${TSD_ZMQ_PATH} \n \
ZMQ VERSION: ${TSD_ZMQ_VERSION} \n \
\n \
JAVA PATH: ${TSD_JAVA_EXEC} \n \
JAVA VERSION: ${TSD_JAVA_VERSION} \n \
\n \
Database: \n \
\n \
DB NAME: ${TANGO_DB_NAME} \n \
CLIENT LIB: ${TSD_MYSQL_CLIENT_LDLIBS} \n \
CLIENT VERSION: ${TSD_MYSQL_CLIENT_VERSION} \n \
SERVER VERSION: ${TSD_MYSQL_SERVER_VERSION} \n \
CONNECTION: ${TSD_MYSQL_SERVER_CONNECTION} \n \
\n \
Build: \n \
\n \
libraries: ${TSD_LIB} \n \
java application : ${TSD_JAVA} \n \
access control server: ${TSD_TAC} \n \
database server: ${TSD_DATABASE} \n \
database schema create: ${TDB_DATABASE_SCHEMA} \n \
\n \
Please check whether the configuration I detected matches what you would like to have.")
|