From b7210ed60d517aebb25c23a2f407ee59562587dd Mon Sep 17 00:00:00 2001 From: Gereon Kremer Date: Wed, 31 Mar 2021 21:16:05 +0200 Subject: Refactor SymFPU dependency (#6218) This PR refactors the contrib script to download SymFPU to a cmake external project. --- cmake/FindSymFPU.cmake | 47 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 4 deletions(-) (limited to 'cmake') diff --git a/cmake/FindSymFPU.cmake b/cmake/FindSymFPU.cmake index 47a047ce0..da8beac99 100644 --- a/cmake/FindSymFPU.cmake +++ b/cmake/FindSymFPU.cmake @@ -9,12 +9,51 @@ ## directory for licensing information. ## # Find SymFPU -# SymFPU_FOUND - system has SymFPU lib -# SymFPU_INCLUDE_DIR - the SymFPU include directory +# SymFPU_FOUND - should always be true +# SymFPU - interface target for the SymFPU headers find_path(SymFPU_INCLUDE_DIR NAMES symfpu/core/unpackedFloat.h) -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(SymFPU DEFAULT_MSG SymFPU_INCLUDE_DIR) +if(SymFPU_INCLUDE_DIR) + # Found SymFPU to be installed system-wide + set(SymFPU_FOUND_SYSTEM TRUE) +else() + set(SymFPU_FOUND_SYSTEM FALSE) + include(ExternalProject) + include(deps-helper) + set(SymFPU_COMMIT "8fbe139bf0071cbe0758d2f6690a546c69ff0053") + + ExternalProject_Add( + SymFPU-EP + PREFIX ${DEPS_PREFIX} + URL https://github.com/martin-cs/symfpu/archive/${SymFPU_COMMIT}.tar.gz + URL_HASH SHA1=9e00045130b93e3c2a46ce73a1b5b6451340dc46 + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory /core + /include/symfpu/core + COMMAND ${CMAKE_COMMAND} -E copy_directory /utils + /include/symfpu/utils + ) + + set(SymFPU_INCLUDE_DIR "${DEPS_BASE}/include/") +endif() + +set(SymFPU_FOUND TRUE) + +add_library(SymFPU INTERFACE IMPORTED GLOBAL) +set_target_properties( + SymFPU PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${SymFPU_INCLUDE_DIR}" +) + +mark_as_advanced(SymFPU_FOUND) +mark_as_advanced(SymFPU_FOUND_SYSTEM) mark_as_advanced(SymFPU_INCLUDE_DIR) + +if(SymFPU_FOUND_SYSTEM) + message(STATUS "Found SymFPU: ${SymFPU_INCLUDE_DIR}") +else() + message(STATUS "Building SymFPU: ${SymFPU_INCLUDE_DIR}") + add_dependencies(SymFPU SymFPU-EP) +endif() -- cgit v1.2.3