From 5ab78454627ddec9f4f52662b75a7afbdf2b1f45 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Wed, 22 Sep 2021 14:24:51 +0300 Subject: [PATCH] PvdProtocol --- FindPvdProtocol.cmake | 32 ++++++++++++++++++++++++++++++++ FindPvdProtocolThirdparty.cmake | 30 ++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 FindPvdProtocol.cmake create mode 100644 FindPvdProtocolThirdparty.cmake diff --git a/FindPvdProtocol.cmake b/FindPvdProtocol.cmake new file mode 100644 index 0000000..df7a9b4 --- /dev/null +++ b/FindPvdProtocol.cmake @@ -0,0 +1,32 @@ +if(NOT PVD_PROTOCOL_IS_EXTERNAL_PROJECT) + set(PVD_PROTOCOL_PREFIX "" CACHE PATH "The path to the prefix of an PVD protocols installation") + set(PVD_PROTOCOL_INCLUDE_DIR "" CACHE PATH "The path to the headers of an PVD protocols installation") + + set(_search_paths "") + if(EXISTS PVD_PROTOCOL_INCLUDE_DIR) + list(APPEND _search_paths ${PVD_PROTOCOL_INCLUDE_DIR}) + endif() + if(EXISTS PVD_PROTOCOL_PREFIX) + list(APPEND _search_paths "${PVD_PROTOCOL_PREFIX}/include") + endif() + find_path( + PVD_PROTOCOL_INCLUDE_DIRS + NAMES pvd/zg108g6/fsp/header.hpp + PATHS ${_search_paths}) + unset(_search_paths) + + if(PVD_PROTOCOL_INCLUDE_DIRS) + set(PVD_PROTOCOL_FOUND TRUE) + endif() + + if(PVD_PROTOCOL_FOUND) + if(NOT PVD_PROTOCOL_FIND_QUIETLY) + message(STATUS "Found PVD protocol") + endif() + set(HAVE_PVD_PROTOCOL 1) + elseif(PVD_PROTOCOL_FOUND) + if(PVD_PROTOCOL_FIND_REQUIRED) + message(FATAL_ERROR "Could not find PVD protocol") + endif() + endif() +endif() diff --git a/FindPvdProtocolThirdparty.cmake b/FindPvdProtocolThirdparty.cmake new file mode 100644 index 0000000..ecbcfba --- /dev/null +++ b/FindPvdProtocolThirdparty.cmake @@ -0,0 +1,30 @@ +# Подключение внешних проектов +include(ExternalProject) + +set(PVD_PROTOCOL_PREFIX + ${CMAKE_BINARY_DIR} + CACHE FILEPATH "" FORCE) +set(PVD_PROTOCOL_INCLUDE_DIR + ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR} + CACHE PATH "" FORCE) +set(PVD_PROTOCOL_INCLUDE_DIRS + ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR} + CACHE PATH "" FORCE) + +# cmake-format: off +list(APPEND _ext_project_args + pvd-protocol + SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/pvd-protocol + INSTALL_DIR ${CMAKE_BINARY_DIR} + CMAKE_ARGS ${CMLIB_EXT_PROJ_DEFAULT_ARGS} + ) +if(FcProtocolThirdparty_FIND_COMPONENTS STREQUAL "headers") + list(APPEND _ext_project_args + BUILD_COMMAND true + INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} pvd-protocol-install-headers) +endif() +ExternalProject_Add(${_ext_project_args}) +unset(_ext_project_args) + +set(PVD_PROTOCOL_IS_EXTERNAL_PROJECT ON CACHE BOOL "" FORCE) +# cmake-format: on