From c0ec2e7e2bf35bb28739be04ef809b162619d52e Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Thu, 18 Sep 2025 14:37:54 +0500 Subject: [PATCH] cmake - use find_package if explicit paths are not provided --- cmake/CMakeLists.txt | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 10f361ec44..1b448c9aca 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -229,8 +229,16 @@ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) endmacro() if(WITH_CGAL) - if(NOT CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT EXISTS "${CGAL_INCLUDE_DIR}") - message(FATAL_ERROR "CGAL_INCLUDE_DIR ('${CGAL_INCLUDE_DIR}') is not provided or doesn't exist.") + if(NOT CGAL_INCLUDE_DIR) + find_package(CGAL REQUIRED) + if(NOT CGAL_DIR) + message( + FATAL_ERROR + "CGAL_SUPPORT enabled, but CGAL_INCLUDE_DIR wasn't provided and CGAL package couldn't be found." + ) + endif() + message(STATUS "CGAL: found config at '${CGAL_DIR}'.") + link_libraries(CGAL::CGAL) endif() add_definitions(-DIFOPSH_WITH_CGAL) @@ -1066,7 +1074,11 @@ else() endif() if(BUILD_IFCGEOM) - if(WITH_CGAL) + # CGAL::CGAL target already has dependencies resolved. + if(WITH_CGAL AND CGAL_DIR) + set(CGAL_LIBRARIES CGAL::CGAL) + message(STATUS "Using found CGAL package at '${CGAL_DIR}'") + elseif(WITH_CGAL AND NOT CGAL_DIR) clear_wasm_sysroot() find_library(libGMP NAMES gmp mpir PATHS ${GMP_LIBRARY_DIR} NO_DEFAULT_PATH) find_library(libMPFR NAMES mpfr PATHS ${MPFR_LIBRARY_DIR} NO_DEFAULT_PATH)