From d5d415fed11839085a9ec58d8eaf93d58f5d210c Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Wed, 30 Jun 2021 12:18:20 +0300 Subject: [PATCH] cgal-widget --- FindCgalWidget.cmake | 45 ++++++++++++++++++++++++++++++++++ FindCgalWidgetThirdparty.cmake | 39 +++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 FindCgalWidget.cmake create mode 100644 FindCgalWidgetThirdparty.cmake diff --git a/FindCgalWidget.cmake b/FindCgalWidget.cmake new file mode 100644 index 0000000..06b1bdd --- /dev/null +++ b/FindCgalWidget.cmake @@ -0,0 +1,45 @@ +if(NOT CGAL_WIDGET_IS_EXTERNAL_PROJECT) + set(CGAL_WIDGET_PREFIX "" CACHE PATH "The path to the prefix of an cgal-widget installation") + set(CGAL_WIDGET_INCLUDE_DIR "" CACHE PATH "The path to the headers of an cgal-widget installation") + set(CGAL_WIDGET_LIBRARY_DIR "" CACHE PATH "The path to the library of an cgal-widget installation") + + set(_search_paths "") + if(CGAL_WIDGET_INCLUDE_DIR AND EXISTS ${CGAL_WIDGET_INCLUDE_DIR}) + list(APPEND _search_paths ${CGAL_WIDGET_INCLUDE_DIR}) + endif() + if(CGAL_WIDGET_PREFIX AND EXISTS ${CGAL_WIDGET_PREFIX}) + list(APPEND _search_paths "${CGAL_WIDGET_PREFIX}/include") + endif() + find_path( + CGAL_WIDGET_INCLUDE_DIRS + NAMES cgal-widget/cgal-widget.hpp + PATHS ${_search_paths}) + + set(_search_paths "") + if(CGAL_WIDGET_LIBRARY_DIR AND EXISTS ${CGAL_WIDGET_LIBRARY_DIR}) + list(APPEND _search_paths ${CGAL_WIDGET_LIBRARY_DIR}) + endif() + if(CGAL_WIDGET_PREFIX AND EXISTS ${CGAL_WIDGET_PREFIX}) + list(APPEND _search_paths "${CGAL_WIDGET_PREFIX}/lib") + endif() + find_library( + CGAL_WIDGET_LIBRARIES + NAMES preprocmath + PATHS ${_search_paths}) + unset(_search_paths) + + if(CGAL_WIDGET_INCLUDE_DIRS AND CGAL_WIDGET_LIBRARIES) + set(CGAL_WIDGET_FOUND TRUE) + endif() + + if(CGAL_WIDGET_FOUND) + if(NOT CGAL_WIDGET_FIND_QUIETLY) + message(STATUS "Found cgal-widget") + endif() + set(HAVE_CGAL_WIDGET 1) + elseif(CGAL_WIDGET_FOUND) + if(CGAL_WIDGET_FIND_REQUIRED) + message(FATAL_ERROR "Could not find cgal-widget") + endif() + endif() +endif() diff --git a/FindCgalWidgetThirdparty.cmake b/FindCgalWidgetThirdparty.cmake new file mode 100644 index 0000000..3639169 --- /dev/null +++ b/FindCgalWidgetThirdparty.cmake @@ -0,0 +1,39 @@ +# Подключение внешних проектов +include(ExternalProject) + +# cmake-format: off +list(APPEND _ext_project_args + cgal-widget + SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/cgal-widget + 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(CgalWidgetThirdparty_FIND_COMPONENTS STREQUAL "headers") + list(APPEND _ext_project_args + BUILD_COMMAND true + INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} cgal-widget-install-headers) +endif() +ExternalProject_Add(${_ext_project_args}) +unset(_ext_project_args) + +set(CGAL_WIDGET_IS_EXTERNAL_PROJECT ON CACHE BOOL "" FORCE) +# cmake-format: on + +set(CGAL_WIDGET_PREFIX + ${CMAKE_BINARY_DIR} + CACHE FILEPATH "" FORCE) +set(CGAL_WIDGET_INCLUDE_DIR + ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR} + CACHE PATH "" FORCE) +set(CGAL_WIDGET_INCLUDE_DIRS + ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR} + CACHE PATH "" FORCE) +set(CGAL_WIDGET_LIBRARY_DIR + ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} + CACHE PATH "" FORCE) +set(CGAL_WIDGET_LIBRARIES + ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libcgal-widget.a + CACHE FILEPATH "" FORCE)