Compare commits

...

13 Commits

16 changed files with 455 additions and 115 deletions

45
FindFsp.cmake Normal file
View File

@@ -0,0 +1,45 @@
if(NOT FSP_IS_EXTERNAL_PROJECT)
set(FSP_PREFIX "" CACHE PATH "The path to the prefix of an libfsp installation")
set(FSP_INCLUDE_DIR "" CACHE PATH "The path to the headers of an libfsp installation")
set(FSP_LIBRARY_DIR "" CACHE PATH "The path to the library of an libfsp installation")
set(_search_paths "")
if(FSP_INCLUDE_DIR AND EXISTS ${FSP_INCLUDE_DIR})
list(APPEND _search_paths ${FSP_INCLUDE_DIR})
endif()
if(FSP_PREFIX AND EXISTS ${FSP_PREFIX})
list(APPEND _search_paths "${FSP_PREFIX}/include")
endif()
find_path(
FSP_INCLUDE_DIRS
NAMES fsp/mods.hpp
PATHS ${_search_paths})
set(_search_paths "")
if(FSP_LIBRARY_DIR AND EXISTS ${FSP_LIBRARY_DIR})
list(APPEND _search_paths ${FSP_LIBRARY_DIR})
endif()
if(FSP_PREFIX AND EXISTS ${FSP_PREFIX})
list(APPEND _search_paths "${FSP_PREFIX}/lib")
endif()
find_library(
FSP_LIBRARIES
NAMES fsp
PATHS ${_search_paths})
unset(_search_paths)
if(FSP_INCLUDE_DIRS AND FSP_LIBRARIES)
set(FSP_FOUND TRUE)
endif()
if(FSP_FOUND)
if(NOT FSP_FIND_QUIETLY)
message(STATUS "Found libfsp")
endif()
set(HAVE_FSP 1)
elseif(FSP_FOUND)
if(FSP_FIND_REQUIRED)
message(FATAL_ERROR "Could not find libfsp")
endif()
endif()
endif()

42
FindFspThirdparty.cmake Normal file
View File

@@ -0,0 +1,42 @@
# Подключение внешних проектов
include(ExternalProject)
# cmake-format: off
list(APPEND _ext_project_args
libfsp
DEPENDS libpreprocmath libionobase myxlib
SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/libfsp
INSTALL_DIR ${CMAKE_BINARY_DIR}
DOWNLOAD_COMMAND ""
CONFIGURE_COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}"
-DPREPROCMATH_PREFIX=${CMAKE_BINARY_DIR}
-DIONOBASE_PREFIX=${CMAKE_BINARY_DIR}
-DMYXLIB_PREFIX=${CMAKE_BINARY_DIR}
-DCMLIB_MAIN_DIR=${CMLIB_MAIN_DIR}
${CMLIB_EXT_PROJ_DEFAULT_ARGS} <SOURCE_DIR>)
if(FspThirdparty_FIND_COMPONENTS STREQUAL "headers")
list(APPEND _ext_project_args
BUILD_COMMAND true
INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} fsp-install-headers)
endif()
ExternalProject_Add(${_ext_project_args})
unset(_ext_project_args)
set(FSP_IS_EXTERNAL_PROJECT ON CACHE BOOL "" FORCE)
# cmake-format: on
set(FSP_PREFIX
${CMAKE_BINARY_DIR}
CACHE FILEPATH "" FORCE)
set(FSP_INCLUDE_DIR
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}
CACHE PATH "" FORCE)
set(FSP_INCLUDE_DIRS
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}
CACHE PATH "" FORCE)
set(FSP_LIBRARY_DIR
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}
CACHE PATH "" FORCE)
set(FSP_LIBRARIES
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libfsp.a
CACHE FILEPATH "" FORCE)

View File

@@ -1,28 +1,44 @@
if(NOT LIBIONOBASE_PREFIX STREQUAL CMAKE_BINARY_DIR) if(NOT IONOBASE_IS_EXTERNAL_PROJECT)
set(LIBIONOBASE_PREFIX "" CACHE PATH "The path to the previx of an libionobase installation") set(IONOBASE_PREFIX "" CACHE PATH "The path to the prefix of an libionobase installation")
set(IONOBASE_INCLUDE_DIR "" CACHE PATH "The path to the headers of an libionobase installation")
set(IONOBASE_LIBRARY_DIR "" CACHE PATH "The path to the library of an libionobase installation")
set(_search_paths "")
if(IONOBASE_INCLUDE_DIR AND EXISTS ${IONOBASE_INCLUDE_DIR})
list(APPEND _search_paths ${IONOBASE_INCLUDE_DIR})
endif()
if(IONOBASE_PREFIX AND EXISTS ${IONOBASE_PREFIX})
list(APPEND _search_paths "${IONOBASE_PREFIX}/include")
endif()
find_path( find_path(
LIBIONOBASE_INCLUDE_DIRS IONOBASE_INCLUDE_DIRS
NAMES preprocmath/params.hpp NAMES ionobase/interchfor.h
PATHS ${LIBIONOBASE_PREFIX}/include) PATHS ${_search_paths})
find_library(
LIBIONOBASE_LIBRARY
NAMES preprocmath
PATHS ${LIBIONOBASE_PREFIX}/lib)
if(LIBIONOBASE_INCLUDE_DIRS AND LIBIONOBASE_LIBRARY) set(_search_paths "")
get_filename_component(LIBIONOBASE_LIBRARY_DIR ${LIBIONOBASE_LIBRARY} if(IONOBASE_LIBRARY_DIR AND EXISTS ${IONOBASE_LIBRARY_DIR})
DIRECTORY CACHE) list(APPEND _search_paths ${IONOBASE_LIBRARY_DIR})
set(LIBIONOBASE_FOUND TRUE) endif()
if(IONOBASE_PREFIX AND EXISTS ${IONOBASE_PREFIX})
list(APPEND _search_paths "${IONOBASE_PREFIX}/lib")
endif()
find_library(
IONOBASE_LIBRARIES
NAMES ionobase
PATHS ${_search_paths})
unset(_search_paths)
if(IONOBASE_INCLUDE_DIRS AND IONOBASE_LIBRARIES)
set(IONOBASE_FOUND TRUE)
endif() endif()
if(LIBIONOBASE_FOUND) if(IONOBASE_FOUND)
if(NOT LIBIONOBASE_FIND_QUIETLY) if(NOT IONOBASE_FIND_QUIETLY)
message(STATUS "Found libionobase") message(STATUS "Found libionobase")
endif() endif()
set(HAVE_LIBIONOBASE 1) set(HAVE_IONOBASE 1)
elseif(LIBIONOBASE_FOUND) elseif(IONOBASE_FOUND)
if(LIBIONOBASE_FIND_REQUIRED) if(IONOBASE_FIND_REQUIRED)
message(FATAL_ERROR "Could not find libionobase") message(FATAL_ERROR "Could not find libionobase")
endif() endif()
endif() endif()

View File

@@ -1,39 +1,40 @@
# Подключение внешних проектов # Подключение внешних проектов
include(ExternalProject) include(ExternalProject)
if(${IonobaseThirdparty_FIND_COMPONENTS} STREQUAL "headers") # cmake-format: off
ExternalProject_Add( list(APPEND _ext_project_args
libionobase libionobase
SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/libionobase SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/libionobase
INSTALL_DIR ${CMAKE_BINARY_DIR} INSTALL_DIR ${CMAKE_BINARY_DIR}
DOWNLOAD_COMMAND "" DOWNLOAD_COMMAND ""
CONFIGURE_COMMAND CONFIGURE_COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}"
${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" -DCMLIB_MAIN_DIR=${CMLIB_MAIN_DIR}
-DCMLIB_MAIN_DIR=${CMLIB_MAIN_DIR} ${CMLIB_EXT_PROJ_DEFAULT_ARGS} ${CMLIB_EXT_PROJ_DEFAULT_ARGS}
<SOURCE_DIR> <SOURCE_DIR>)
BUILD_COMMAND true
INSTALL_COMMAND make ionobase-install-headers)
else()
ExternalProject_Add(
libionobase
SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/libionobase
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}
<SOURCE_DIR>)
endif()
set(LIBIONOBASE_PREFIX if(IonobaseThirdparty_FIND_COMPONENTS STREQUAL "headers")
list(APPEND _ext_project_args
BUILD_COMMAND true
INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} ionobase-install-headers)
endif()
ExternalProject_Add(${_ext_project_args})
unset(_ext_project_args)
set(IONOBASE_IS_EXTERNAL_PROJECT ON CACHE BOOL "" FORCE)
# cmake-format: on
set(IONOBASE_PREFIX
${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}
CACHE FILEPATH "" FORCE) CACHE FILEPATH "" FORCE)
set(LIBIONOBASE_INCLUDE_DIRS set(IONOBASE_INCLUDE_DIR
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR} ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}
CACHE PATH "" FORCE) CACHE PATH "" FORCE)
set(LIBIONOBASE_LIBRARY_DIR set(IONOBASE_INCLUDE_DIRS
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}
CACHE PATH "" FORCE)
set(IONOBASE_LIBRARY_DIR
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}
CACHE PATH "" FORCE) CACHE PATH "" FORCE)
set(LIBIONOBASE_LIBRARY set(IONOBASE_LIBRARIES
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libionobase.a ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libionobase.a
CACHE FILEPATH "" FORCE) CACHE FILEPATH "" FORCE)

View File

@@ -8,16 +8,15 @@
# NOTE: MPFR prefix is understood to be the path to the root of the MPFR # NOTE: MPFR prefix is understood to be the path to the root of the MPFR
# installation library. # installation library.
set(MPFR_PREFIX "" CACHE PATH "The path to the previx of an MPFR installation") set(MPFR_PREFIX "" CACHE PATH "The path to the prefix of an MPFR installation")
find_path(MPFR_INCLUDE_DIR mpfr.h find_path(MPFR_INCLUDE_DIRS mpfr.h
PATHS ${MPFR_PREFIX}/include) PATHS ${MPFR_PREFIX}/include)
find_library(MPFR_LIBRARIES NAMES mpfr find_library(MPFR_LIBRARIES NAMES mpfr
PATHS ${MPFR_PREFIX}/lib) PATHS ${MPFR_PREFIX}/lib)
if(MPFR_INCLUDE_DIR AND MPFR_LIBRARIES) if(MPFR_INCLUDE_DIRS AND MPFR_LIBRARIES)
get_filename_component(MPFR_LIBRARY_DIR ${MPFR_LIBRARIES} PATH)
set(MPFR_FOUND TRUE) set(MPFR_FOUND TRUE)
endif() endif()

View File

@@ -1,4 +1,4 @@
set(MATHGP_PREFIX "" CACHE PATH "The path to the previx of an MathGL installation") set(MATHGP_PREFIX "" CACHE PATH "The path to the prefix of an MathGL installation")
find_path(MATHGL_INCLUDE_DIR NAMES mgl2/mgl.h find_path(MATHGL_INCLUDE_DIR NAMES mgl2/mgl.h
PATHS PATHS

View File

@@ -1,26 +1,67 @@
if(NOT MYXLIB_PREFIX STREQUAL CMAKE_BINARY_DIR) #[=======================================================================[.rst:
set(MYXLIB_PREFIX FindMyxlib
"" --------
CACHE PATH "The path to the previx of an myxlib installation")
Поиск библиотеки Myxlib
Входные переменные
^^^^^^^^^^^^^^^^^^
``MYXLIB_PREFIX``
корневой каталог установленной библиотеки.
``MYXLIB_INCLUDE_DIR``
каталог, в котором производится поиск заголовочных файлов.
``MYXLIB_LIBRARY_DIR``
каталог, в котором производится поиск библиотек.
Выходные переменные
^^^^^^^^^^^^^^^^^^^
``MYXLIB_FOUND``
true, если MYXLIB найдена
``MYXLIB_INCLUDE_DIRS``
каталог с найденными заголовочными файлами
``MYXLIB_LIBRARIES``
каталог с найденными библиотеками
#]=======================================================================]
if(NOT MYXLIB_IS_EXTERNAL_PROJECT)
set(MYXLIB_PREFIX "" CACHE PATH "The path to the prefix of an myxlib installation")
set(MYXLIB_INCLUDE_DIR "" CACHE PATH "The path to the headers of an myxlib installation")
set(MYXLIB_LIBRARY_DIR "" CACHE PATH "The path to the library of an myxlib installation")
set(_search_paths "")
if(MYXLIB_INCLUDE_DIR AND EXISTS ${MYXLIB_INCLUDE_DIR})
list(APPEND _search_paths ${MYXLIB_INCLUDE_DIR})
endif()
if(MYXLIB_PREFIX AND EXISTS ${MYXLIB_PREFIX})
list(APPEND _search_paths "${MYXLIB_PREFIX}/include")
endif()
find_path( find_path(
MYXLIB_INCLUDE_DIRS MYXLIB_INCLUDE_DIRS
NAMES myx/core/config.hpp NAMES myx/core/config.hpp
PATHS ${MYXLIB_PREFIX}/include) PATHS ${_search_paths})
find_library(
MYXLIB_QT_LIBRARY
NAMES myx-qt
PATHS ${MYXLIB_PREFIX}/lib)
find_library(
MYXLIB_FILESYSTEM_LIBRARY
NAMES myx-filesystem
PATHS ${MYXLIB_PREFIX}/lib)
if(MYXLIB_INCLUDE_DIRS set(_search_paths "")
AND MYXLIB_QT_LIBRARY if(MYXLIB_LIBRARY_DIR AND EXISTS ${MYXLIB_LIBRARY_DIR})
AND MYXLIB_FILESYSTEM_LIBRARY) list(APPEND _search_paths ${MYXLIB_LIBRARY_DIR})
get_filename_component(MYXLIB_LIBRARY_DIR ${MYXLIB_QT_LIBRARY} DIRECTORY endif()
CACHE) if(MYXLIB_PREFIX AND EXISTS ${MYXLIB_PREFIX})
list(APPEND _search_paths "${MYXLIB_PREFIX}/lib")
endif()
find_library(
MYXLIB_QT_LIBRARIES
NAMES myx-qt
PATHS ${_search_paths})
find_library(
MYXLIB_FILESYSTEM_LIBRARIES
NAMES myx-filesystem
PATHS ${_search_paths})
unset(_search_paths)
set(MYXLIB_LIBRARIES ${MYXLIB_QT_LIBRARIES} ${MYXLIB_FILESYSTEM_LIBRARIES})
if(MYXLIB_INCLUDE_DIRS AND MYXLIB_LIBRARIES)
set(MYXLIB_FOUND TRUE) set(MYXLIB_FOUND TRUE)
endif() endif()

View File

@@ -26,15 +26,22 @@ set(MYXLIB_IS_EXTERNAL_PROJECT ON CACHE BOOL "" FORCE)
set(MYXLIB_PREFIX set(MYXLIB_PREFIX
${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}
CACHE FILEPATH "" FORCE) CACHE FILEPATH "" FORCE)
set(MYXLIB_INCLUDE_DIR
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}
CACHE PATH "" FORCE)
set(MYXLIB_INCLUDE_DIRS set(MYXLIB_INCLUDE_DIRS
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR} ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}
CACHE PATH "" FORCE) CACHE PATH "" FORCE)
set(MYXLIB_LIBRARY_DIR set(MYXLIB_LIBRARY_DIR
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}
CACHE PATH "" FORCE) CACHE PATH "" FORCE)
set(MYXLIB_QT_LIBRARY set(MYXLIB_QT_LIBRARIES
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libmyx-qt.a ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libmyx-qt.a
CACHE FILEPATH "" FORCE) CACHE FILEPATH "" FORCE)
set(MYXLIB_FILESYSTEM_LIBRARY set(MYXLIB_FILESYSTEM_LIBRARIES
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libmyx-filesystem.a
CACHE FILEPATH "" FORCE)
set(MYXLIB_LIBRARIES
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libmyx-qt.a
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libmyx-filesystem.a ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libmyx-filesystem.a
CACHE FILEPATH "" FORCE) CACHE FILEPATH "" FORCE)

View File

@@ -1,28 +1,44 @@
if(NOT LIBPREPROC_IS_EXTERNAL_PROJECT) if(NOT PREPROC_IS_EXTERNAL_PROJECT)
set(LIBPREPROC_PREFIX "" CACHE PATH "The path to the prefix of an libpreproc installation") set(PREPROC_PREFIX "" CACHE PATH "The path to the prefix of an libpreproc installation")
set(PREPROC_INCLUDE_DIR "" CACHE PATH "The path to the headers of an libpreproc installation")
set(PREPROC_LIBRARY_DIR "" CACHE PATH "The path to the library of an libpreproc installation")
set(_search_paths "")
if(PREPROC_INCLUDE_DIR AND EXISTS ${PREPROC_INCLUDE_DIR})
list(APPEND _search_paths ${PREPROC_INCLUDE_DIR})
endif()
if(PREPROC_PREFIX AND EXISTS ${PREPROC_PREFIX})
list(APPEND _search_paths "${PREPROC_PREFIX}/include")
endif()
find_path( find_path(
LIBPREPROC_INCLUDE_DIRS PREPROC_INCLUDE_DIRS
NAMES preproc/mark.hpp NAMES preproc/mark.hpp
PATHS ${LIBPREPROC_PREFIX}/include) PATHS ${_search_paths})
find_library(
LIBPREPROC_LIBRARY
NAMES preproc
PATHS ${LIBPREPROC_PREFIX}/lib)
if(LIBPREPROC_INCLUDE_DIRS AND LIBPREPROC_LIBRARY) set(_search_paths "")
get_filename_component(LIBPREPROC_LIBRARY_DIR ${LIBPREPROC_LIBRARY} if(PREPROC_LIBRARY_DIR AND EXISTS ${PREPROC_LIBRARY_DIR})
DIRECTORY CACHE) list(APPEND _search_paths ${PREPROC_LIBRARY_DIR})
set(LIBPREPROC_FOUND TRUE) endif()
if(PREPROC_PREFIX AND EXISTS ${PREPROC_PREFIX})
list(APPEND _search_paths "${PREPROC_PREFIX}/lib")
endif()
find_library(
PREPROC_LIBRARIES
NAMES preproc
PATHS ${_search_paths})
unset(_search_paths)
if(PREPROC_INCLUDE_DIRS AND PREPROC_LIBRARIES)
set(PREPROC_FOUND TRUE)
endif() endif()
if(LIBPREPROC_FOUND) if(PREPROC_FOUND)
if(NOT LIBPREPROC_FIND_QUIETLY) if(NOT PREPROC_FIND_QUIETLY)
message(STATUS "Found libpreproc") message(STATUS "Found libpreproc")
endif() endif()
set(HAVE_LIBPREPROC 1) set(HAVE_PREPROC 1)
elseif(LIBPREPROC_FOUND) elseif(PREPROC_FOUND)
if(LIBPREPROC_FIND_REQUIRED) if(PREPROC_FIND_REQUIRED)
message(FATAL_ERROR "Could not find libpreproc") message(FATAL_ERROR "Could not find libpreproc")
endif() endif()
endif() endif()

View File

@@ -9,7 +9,7 @@ list(APPEND _ext_project_args
INSTALL_DIR ${CMAKE_BINARY_DIR} INSTALL_DIR ${CMAKE_BINARY_DIR}
DOWNLOAD_COMMAND "" DOWNLOAD_COMMAND ""
CONFIGURE_COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" CONFIGURE_COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}"
-DLIBPREPROCMATH_PREFIX=${CMAKE_BINARY_DIR} -DPREPROCMATH_PREFIX=${CMAKE_BINARY_DIR}
-DCMLIB_MAIN_DIR=${CMLIB_MAIN_DIR} -DCMLIB_MAIN_DIR=${CMLIB_MAIN_DIR}
${CMLIB_EXT_PROJ_DEFAULT_ARGS} <SOURCE_DIR>) ${CMLIB_EXT_PROJ_DEFAULT_ARGS} <SOURCE_DIR>)
if(PreprocThirdparty_FIND_COMPONENTS STREQUAL "headers") if(PreprocThirdparty_FIND_COMPONENTS STREQUAL "headers")
@@ -20,18 +20,21 @@ endif()
ExternalProject_Add(${_ext_project_args}) ExternalProject_Add(${_ext_project_args})
unset(_ext_project_args) unset(_ext_project_args)
set(LIBPREPROC_IS_EXTERNAL_PROJECT ON CACHE BOOL "" FORCE) set(PREPROC_IS_EXTERNAL_PROJECT ON CACHE BOOL "" FORCE)
# cmake-format: on # cmake-format: on
set(LIBPREPROC_PREFIX set(PREPROC_PREFIX
${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}
CACHE FILEPATH "" FORCE) CACHE FILEPATH "" FORCE)
set(LIBPREPROC_INCLUDE_DIRS set(PREPROC_INCLUDE_DIR
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR} ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}
CACHE PATH "" FORCE) CACHE PATH "" FORCE)
set(LIBPREPROC_LIBRARY_DIR set(PREPROC_INCLUDE_DIRS
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}
CACHE PATH "" FORCE)
set(PREPROC_LIBRARY_DIR
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}
CACHE PATH "" FORCE) CACHE PATH "" FORCE)
set(LIBPREPROC_LIBRARY set(PREPROC_LIBRARIES
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libpreproc.a ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libpreproc.a
CACHE FILEPATH "" FORCE) CACHE FILEPATH "" FORCE)

View File

@@ -1,28 +1,44 @@
if(NOT LIBPREPROCMATH_IS_EXTERNAL_PROJECT) if(NOT PREPROCMATH_IS_EXTERNAL_PROJECT)
set(LIBPREPROCMATH_PREFIX "" CACHE PATH "The path to the prefix of an libpreprocmath installation") set(PREPROCMATH_PREFIX "" CACHE PATH "The path to the prefix of an libpreprocmath installation")
set(PREPROCMATH_INCLUDE_DIR "" CACHE PATH "The path to the headers of an libpreprocmath installation")
set(PREPROCMATH_LIBRARY_DIR "" CACHE PATH "The path to the library of an libpreprocmath installation")
set(_search_paths "")
if(PREPROCMATH_INCLUDE_DIR AND EXISTS ${PREPROCMATH_INCLUDE_DIR})
list(APPEND _search_paths ${PREPROCMATH_INCLUDE_DIR})
endif()
if(PREPROCMATH_PREFIX AND EXISTS ${PREPROCMATH_PREFIX})
list(APPEND _search_paths "${PREPROCMATH_PREFIX}/include")
endif()
find_path( find_path(
LIBPREPROCMATH_INCLUDE_DIRS PREPROCMATH_INCLUDE_DIRS
NAMES preprocmath/params.hpp NAMES preprocmath/params.hpp
PATHS ${LIBPREPROCMATH_PREFIX}/include) PATHS ${_search_paths})
find_library(
LIBPREPROCMATH_LIBRARY
NAMES preprocmath
PATHS ${LIBPREPROCMATH_PREFIX}/lib)
if(LIBPREPROCMATH_INCLUDE_DIRS AND LIBPREPROCMATH_LIBRARY) set(_search_paths "")
get_filename_component(LIBPREPROCMATH_LIBRARY_DIR ${LIBPREPROCMATH_LIBRARY} if(PREPROCMATH_LIBRARY_DIR AND EXISTS ${PREPROCMATH_LIBRARY_DIR})
DIRECTORY CACHE) list(APPEND _search_paths ${PREPROCMATH_LIBRARY_DIR})
set(LIBPREPROCMATH_FOUND TRUE) endif()
if(PREPROCMATH_PREFIX AND EXISTS ${PREPROCMATH_PREFIX})
list(APPEND _search_paths "${PREPROCMATH_PREFIX}/lib")
endif()
find_library(
PREPROCMATH_LIBRARIES
NAMES preprocmath
PATHS ${_search_paths})
unset(_search_paths)
if(PREPROCMATH_INCLUDE_DIRS AND PREPROCMATH_LIBRARIES)
set(PREPROCMATH_FOUND TRUE)
endif() endif()
if(LIBPREPROCMATH_FOUND) if(PREPROCMATH_FOUND)
if(NOT LIBPREPROCMATH_FIND_QUIETLY) if(NOT PREPROCMATH_FIND_QUIETLY)
message(STATUS "Found libpreprocmath") message(STATUS "Found libpreprocmath")
endif() endif()
set(HAVE_LIBPREPROCMATH 1) set(HAVE_PREPROCMATH 1)
elseif(LIBPREPROCMATH_FOUND) elseif(PREPROCMATH_FOUND)
if(LIBPREPROCMATH_FIND_REQUIRED) if(PREPROCMATH_FIND_REQUIRED)
message(FATAL_ERROR "Could not find libpreprocmath") message(FATAL_ERROR "Could not find libpreprocmath")
endif() endif()
endif() endif()

View File

@@ -18,18 +18,21 @@ endif()
ExternalProject_Add(${_ext_project_args}) ExternalProject_Add(${_ext_project_args})
unset(_ext_project_args) unset(_ext_project_args)
set(LIBPREPROCMATH_IS_EXTERNAL_PROJECT ON CACHE BOOL "" FORCE) set(PREPROCMATH_IS_EXTERNAL_PROJECT ON CACHE BOOL "" FORCE)
# cmake-format: on # cmake-format: on
set(LIBPREPROCMATH_PREFIX set(PREPROCMATH_PREFIX
${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}
CACHE FILEPATH "" FORCE) CACHE FILEPATH "" FORCE)
set(LIBPREPROCMATH_INCLUDE_DIRS set(PREPROCMATH_INCLUDE_DIR
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR} ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}
CACHE PATH "" FORCE) CACHE PATH "" FORCE)
set(LIBPREPROCMATH_LIBRARY_DIR set(PREPROCMATH_INCLUDE_DIRS
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}
CACHE PATH "" FORCE)
set(PREPROCMATH_LIBRARY_DIR
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}
CACHE PATH "" FORCE) CACHE PATH "" FORCE)
set(LIBPREPROCMATH_LIBRARY set(PREPROCMATH_LIBRARIES
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libpreprocmath.a ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libpreprocmath.a
CACHE FILEPATH "" FORCE) CACHE FILEPATH "" FORCE)

45
FindSignalView.cmake Normal file
View File

@@ -0,0 +1,45 @@
if(NOT SIGNALVIEW_IS_EXTERNAL_PROJECT)
set(SIGNALVIEW_PREFIX "" CACHE PATH "The path to the prefix of an libsignalview installation")
set(SIGNALVIEW_INCLUDE_DIR "" CACHE PATH "The path to the headers of an libsignalview installation")
set(SIGNALVIEW_LIBRARY_DIR "" CACHE PATH "The path to the library of an libsignalview installation")
set(_search_paths "")
if(SIGNALVIEW_INLCUDE_DIR AND EXISTS ${SIGNALVIEW_INCLUDE_DIR})
list(APPEND _search_paths ${SIGNALVIEW_INCLUDE_DIR})
endif()
if(SIGNALVIEW_PREFIX AND EXISTS ${SIGNALVIEW_PREFIX})
list(APPEND _search_paths "${SIGNALVIEW_PREFIX}/include")
endif()
find_path(
SIGNALVIEW_INCLUDE_DIRS
NAMES signalview/wndSignalView.hpp
PATHS ${_search_paths})
set(_search_paths "")
if(SIGNALVIEW_LIBRARY_DIR AND EXISTS ${SIGNALVIEW_LIBRARY_DIR})
list(APPEND _search_paths ${SIGNALVIEW_LIBRARY_DIR})
endif()
if(SIGNALVIEW_PREFIX AND EXISTS ${SIGNALVIEW_PREFIX})
list(APPEND _search_paths "${SIGNALVIEW_PREFIX}/lib")
endif()
find_library(
SIGNALVIEW_LIBRARIES
NAMES signalview
PATHS ${_search_paths})
unset(_search_paths)
if(SIGNALVIEW_INCLUDE_DIRS AND SIGNALVIEW_LIBRARIES)
set(SIGNALVIEW_FOUND TRUE)
endif()
if(SIGNALVIEW_FOUND)
if(NOT SIGNALVIEW_FIND_QUIETLY)
message(STATUS "Found libsignalview")
endif()
set(HAVE_SIGNALVIEW 1)
elseif(SIGNALVIEW_FOUND)
if(SIGNALVIEW_FIND_REQUIRED)
message(FATAL_ERROR "Could not find libsignalview")
endif()
endif()
endif()

View File

@@ -0,0 +1,40 @@
# Подключение внешних проектов
include(ExternalProject)
# cmake-format: off
list(APPEND _ext_project_args
libsignalview
DEPENDS libpreprocmath
SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/libsignalview
INSTALL_DIR ${CMAKE_BINARY_DIR}
DOWNLOAD_COMMAND ""
CONFIGURE_COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}"
-DPREPROCMATH_PREFIX=${CMAKE_BINARY_DIR}
-DCMLIB_MAIN_DIR=${CMLIB_MAIN_DIR}
${CMLIB_EXT_PROJ_DEFAULT_ARGS} <SOURCE_DIR>)
if(SignalViewThirdparty_FIND_COMPONENTS STREQUAL "headers")
list(APPEND _ext_project_args
BUILD_COMMAND true
INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} signalview-install-headers)
endif()
ExternalProject_Add(${_ext_project_args})
unset(_ext_project_args)
set(SIGNALVIEW_IS_EXTERNAL_PROJECT ON CACHE BOOL "" FORCE)
# cmake-format: on
set(SIGNALVIEW_PREFIX
${CMAKE_BINARY_DIR}
CACHE FILEPATH "" FORCE)
set(SIGNALVIEW_INCLUDE_DIR
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}
CACHE PATH "" FORCE)
set(SIGNALVIEW_INCLUDE_DIRS
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}
CACHE PATH "" FORCE)
set(SIGNALVIEW_LIBRARY_DIR
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}
CACHE PATH "" FORCE)
set(SIGNALVIEW_LIBRARIES
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libsignalview.a
CACHE FILEPATH "" FORCE)

32
FindVeerProtocols.cmake Normal file
View File

@@ -0,0 +1,32 @@
if(NOT VEER_PROTOCOLS_IS_EXTERNAL_PROJECT)
set(VEER_PROTOCOLS_PREFIX "" CACHE PATH "The path to the prefix of an veer protocols installation")
set(VEER_PROTOCOLS_INCLUDE_DIR "" CACHE PATH "The path to the headers of an libfsp installation")
set(_search_paths "")
if(EXISTS VEER_PROTOCOLS_INCLUDE_DIR)
list(APPEND _search_paths ${VEER_PROTOCOLS_INCLUDE_DIR})
endif()
if(EXISTS VEER_PROTOCOLS_PREFIX)
list(APPEND _search_paths ${VEER_PROTOCOLS_PREFIX}/include)
endif()
find_path(
VEER_PROTOCOLS_INCLUDE_DIRS
NAMES veer/common/ports.hpp
PATHS ${_search_paths})
unset(_search_paths)
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()

View File

@@ -0,0 +1,34 @@
# Подключение внешних проектов
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}
<SOURCE_DIR>)
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_DIR
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}
CACHE PATH "" FORCE)
set(VEER_PROTOCOLS_INCLUDE_DIRS
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}
CACHE PATH "" FORCE)