########################################################################### # Copyright (C) 2018 "IoT.bzh" # # author: José Bollo # # Licensed 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. ########################################################################### set(LIBCORE_SOURCES anydb.c cyn.c db.c dbinit.c expire.c fbuf.c filedb.c memdb.c names.c pollitem.c queue.c ) set(SERVER_SOURCES agent-at.c cyn-protocol.c cyn-server.c idgen.c main-cynagorad.c prot.c socket.c ) set(LIBCLI_SOURCES cache.c cyn-protocol.c cynagora.c expire.c idgen.c names.c prot.c socket.c ) add_compile_definitions(_GNU_SOURCE) ########################################### # build and install libcynagora-core ########################################### add_library(cynagora-core SHARED ${LIBCORE_SOURCES}) target_include_directories(cynagora-core PUBLIC .) set_target_properties(cynagora-core PROPERTIES VERSION ${CYNAGORA_VERSION} SOVERSION ${CYNAGORA_SOVERSION} LINK_FLAGS -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/export-cynagora-core.map ) install(TARGETS cynagora-core LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) ########################################### # build client-objects ########################################### add_library(client-objects OBJECT ${LIBCLI_SOURCES}) target_compile_definitions(client-objects PRIVATE DEFAULT_SOCKET_DIR="${DEFAULT_SOCKET_DIR}" ) target_compile_options(client-objects PRIVATE -fPIC) ########################################### # build and install libcynagora-client ########################################### add_library(cynagora SHARED $) set_target_properties(cynagora PROPERTIES VERSION ${CYNAGORA_VERSION} SOVERSION ${CYNAGORA_SOVERSION} LINK_FLAGS -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/export-cynagora.map ) install(TARGETS cynagora LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) install(FILES cynagora.h DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}) ########################################### # build and install cynagorad ########################################### add_executable(cynagorad ${SERVER_SOURCES}) target_compile_definitions(cynagorad PRIVATE DEFAULT_DB_DIR="${DEFAULT_DB_DIR}" DEFAULT_SOCKET_DIR="${DEFAULT_SOCKET_DIR}" DEFAULT_INIT_FILE="${DEFAULT_INIT_FILE}" ) if(WITH_SYSTEMD) target_compile_definitions(cynagorad PRIVATE WITH_SYSTEMD_ACTIVATION) target_link_libraries(cynagorad ${libsystemd_LDFLAGS} ${libsystemd_LINK_LIBRARIES}) target_include_directories(cynagorad PRIVATE ${libsystemd_INCLUDE_DIRS}) target_compile_options(cynagorad PRIVATE ${libsystemd_CFLAGS}) endif() target_link_libraries(cynagorad cynagora-core cap) install(TARGETS cynagorad RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) ########################################### # build and install cynagora-admin ########################################### add_executable(cynagora-admin main-cynagora-admin.c expire.c) target_link_libraries(cynagora-admin cynagora) install(TARGETS cynagora-admin RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) ########################################### # build and install cynagora-agent ########################################### add_executable(cynagora-agent main-cynagora-agent.c expire.c) target_link_libraries(cynagora-agent cynagora) install(TARGETS cynagora-agent RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})