From c79d5268d33eae8ca4f738420113960e0833ac03 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Thu, 24 Jun 2021 11:52:12 +0300 Subject: [PATCH] veer-protocols --- FindVeerProtocols.cmake | 25 +++++++++++++++++++++++++ FindVeerProtocolsThirdparty.cmake | 31 +++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 FindVeerProtocols.cmake create mode 100644 FindVeerProtocolsThirdparty.cmake diff --git a/FindVeerProtocols.cmake b/FindVeerProtocols.cmake new file mode 100644 index 0000000..5547a4e --- /dev/null +++ b/FindVeerProtocols.cmake @@ -0,0 +1,25 @@ +if(NOT VEER_PROTOCOLS_IS_EXTERNAL_PROJECT) + set(VEER_PROTOCOLS_PREFIX + "" + CACHE PATH "The path to the prefix of an veer protocols installation") + + find_path( + VEER_PROTOCOLS_INCLUDE_DIRS + NAMES veer/common/ports.hpp + PATHS ${VEER_PROTOCOLS_PREFIX}/include) + + if(VEER_PROTOCOLS_INCLUDE_DIRS) + set(VEER_PROTOCOLS_FOUND TRUE) + endif() + + if(VEER_PROTOCOLS_FOUND) + if(NOT VEER_PROTOCOLS_FIND_QUIETLY) + message(STATUS "Found veer protocols") + endif() + set(HAVE_VEER_PROTOCOLS 1) + elseif(VEER_PROTOCOLS_FOUND) + if(VEER_PROTOCOLS_FIND_REQUIRED) + message(FATAL_ERROR "Could not find veer protocols") + endif() + endif() +endif() diff --git a/FindVeerProtocolsThirdparty.cmake b/FindVeerProtocolsThirdparty.cmake new file mode 100644 index 0000000..e3d1dd7 --- /dev/null +++ b/FindVeerProtocolsThirdparty.cmake @@ -0,0 +1,31 @@ +# Подключение внешних проектов +include(ExternalProject) + +# cmake-format: off +list(APPEND _ext_project_args + veer-protocols + SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/veer-protocols + INSTALL_DIR ${CMAKE_BINARY_DIR} + DOWNLOAD_COMMAND "" + CONFIGURE_COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" + -DCMLIB_MAIN_DIR=${CMLIB_MAIN_DIR} + ${CMLIB_EXT_PROJ_DEFAULT_ARGS} + ) + +if(VeerProtocolsThirdparty_FIND_COMPONENTS STREQUAL "headers") + list(APPEND _ext_project_args + BUILD_COMMAND true + INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} veer-protocols-install-headers) +endif() +ExternalProject_Add(${_ext_project_args}) +unset(_ext_project_args) + +set(VEER_PROTOCOLS_IS_EXTERNAL_PROJECT ON CACHE BOOL "" FORCE) +# cmake-format: on + +set(VEER_PROTOCOLS_PREFIX + ${CMAKE_BINARY_DIR} + CACHE FILEPATH "" FORCE) +set(VEER_PROTOCOLS_INCLUDE_DIRS + ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR} + CACHE PATH "" FORCE)