Skip to content
Snippets Groups Projects
Forked from asapo / asapo
858 commits behind the upstream repository.
CMakeLists.txt 2.39 KiB
cmake_minimum_required(VERSION 3.7)
project(ASAPO)

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeModules/ ${PROJECT_SOURCE_DIR}/CMakeIncludes/)

#protocol version changes if one of the microservice API's change
set (ASAPO_CONSUMER_PROTOCOL "v0.5")
set (ASAPO_PRODUCER_PROTOCOL "v0.5")
set (ASAPO_DISCOVERY_API_VER "v0.1")
set (ASAPO_AUTHORIZER_API_VER "v0.2")
set (ASAPO_BROKER_API_VER "v0.5")
set (ASAPO_FILE_TRANSFER_SERVICE_API_VER "v0.2")
set (ASAPO_RECEIVER_API_VER "v0.5")
set (ASAPO_RDS_API_VER "v0.1")
set (DB_SCHEMA_VER "v0.1")

#global settings

set(ConfigPackageLocation lib/cmake/Asapo)


# options

option(BUILD_PYTHON "Build python libs" ON)
option(BUILD_CLIENTS_ONLY "Build clients only" OFF)

option(BUILD_CONSUMER_TOOLS "Build consumer tools" OFF)
option(BUILD_EVENT_MONITOR_PRODUCER "Build the event monitor producer" OFF)

option(BUILD_TESTS "Build unit tests" OFF)
option(BUILD_INTEGRATION_TESTS "Include integration tests" OFF)

option(BUILD_EXAMPLES "Build examples" OFF)
option(INSTALL_EXAMPLES "Install examples" OFF)

option(STOP_BUILD_ON_WARNINGS "Stop build if compiler has warnings" OFF)

option(BUILD_CPP_DOCS "Build the C++ documentaion with doxygen" OFF)
option(BUILD_PYTHON_DOCS "Build the Python documentaion with sphinx" OFF)
option(BUILD_ASAPO_SITE "Build the asapo web site" OFF)

option(ENABLE_LIBFABRIC "Enables LibFabric support for RDMA transfers" OFF)
option(ENABLE_LIBFABRIC_LOCALHOST "Emulates LibFabric stack over TCP. Only for localhost and testing purposes." OFF)

option(BUILD_SHARED_CLIENT_LIBS "Build shared consumer and producer libs" ON)
option(BUILD_STATIC_CLIENT_LIBS "Build static consumer and producer libs" ON)

# includes

include(language_settings)
include(dependencies)

include(astyle)

include(prepare_version_tag)
include(testing_cpp)
include(prepare_asapo)
include(prepare_version)
include(packaging)

#subdirectorties

add_subdirectory(common/cpp)
add_subdirectory(producer)
add_subdirectory(consumer)
if (NOT BUILD_CLIENTS_ONLY)
    add_subdirectory(broker)
    add_subdirectory(receiver)
    add_subdirectory(discovery)
    add_subdirectory(authorizer)
    add_subdirectory(asapo_tools)
    add_subdirectory(file_transfer)
endif()

add_subdirectory(deploy)

if(BUILD_INTEGRATION_TESTS)
    add_subdirectory(tests)
endif()

if(BUILD_EXAMPLES OR INSTALL_EXAMPLES OR BUILD_ASAPO_SITE)
    add_subdirectory(examples)
endif()

add_subdirectory(docs)

add_subdirectory(install)