From 96f8b3a43b66cfa749f5d6e95a4af8924e5aae84 Mon Sep 17 00:00:00 2001 From: Louis Gombert Date: Sat, 6 Dec 2025 18:52:06 +0100 Subject: [PATCH 1/2] CMake: require Netgen when BUILD_FEM_NETGEN is ON, don't fail silently --- CMakeLists.txt | 2 +- cMake/FindNETGEN.cmake | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b964c6269..fef81940e4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,7 +94,7 @@ if(NOT FREECAD_LIBPACK_USE OR FREECAD_LIBPACK_CHECKFILE_CLBUNDLER OR FREECAD_LIB endif(BUILD_GUI) SetupSalomeSMESH() if (BUILD_FEM_NETGEN) - find_package(NETGEN) + find_package(NETGEN REQUIRED) endif(BUILD_FEM_NETGEN) # not needed at the moment #find_package(OpenCV REQUIRED) diff --git a/cMake/FindNETGEN.cmake b/cMake/FindNETGEN.cmake index 8162adfbd0..23f8f7e5b9 100644 --- a/cMake/FindNETGEN.cmake +++ b/cMake/FindNETGEN.cmake @@ -13,7 +13,7 @@ # See also: http://git.salome-platform.org/gitweb/?p=NETGENPLUGIN_SRC.git;a=summary -find_package(Netgen CONFIG) +find_package(Netgen CONFIG QUIET) IF (Netgen_FOUND) set(NGLIB_INCLUDE_DIR ${NETGEN_INCLUDE_DIRS}) set(NGLIB_LIBRARIES nglib) @@ -147,3 +147,8 @@ IF (Netgen_FOUND) MESSAGE(STATUS "Found NETGEN version ${NETGEN_VERSION_MAJOR}.${NETGEN_VERSION_MINOR}, calculated: ${NETGEN_VERSION_C}") LIST(APPEND NETGEN_DEFINITIONS -DNETGEN_VERSION=${NETGEN_VERSION_C}) ENDIF () + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(NETGEN + REQUIRED_VARS NGLIB_INCLUDE_DIR NGLIB_LIBRARIES NETGEN_INCLUDE_DIRS + VERSION_VAR NETGEN_VERSION) From 193a789354ccf649192ac0cf7375949ad5b06667 Mon Sep 17 00:00:00 2001 From: Louis Gombert Date: Sun, 7 Dec 2025 11:03:56 +0100 Subject: [PATCH 2/2] CMake: only find Netgen when using internal smesh --- CMakeLists.txt | 7 +++++-- cMake/FindNETGEN.cmake | 4 ---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fef81940e4..cd72ef0279 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,8 +94,11 @@ if(NOT FREECAD_LIBPACK_USE OR FREECAD_LIBPACK_CHECKFILE_CLBUNDLER OR FREECAD_LIB endif(BUILD_GUI) SetupSalomeSMESH() if (BUILD_FEM_NETGEN) - find_package(NETGEN REQUIRED) - endif(BUILD_FEM_NETGEN) + set(NETGEN_DEFINITIONS -DNO_PARALLEL_THREADS -DOCCGEOMETRY) + if (NOT FREECAD_USE_EXTERNAL_SMESH) + find_package(NETGEN REQUIRED) + endif() + endif() # not needed at the moment #find_package(OpenCV REQUIRED) SetupSwig() diff --git a/cMake/FindNETGEN.cmake b/cMake/FindNETGEN.cmake index 23f8f7e5b9..8a6233e6e0 100644 --- a/cMake/FindNETGEN.cmake +++ b/cMake/FindNETGEN.cmake @@ -17,15 +17,11 @@ find_package(Netgen CONFIG QUIET) IF (Netgen_FOUND) set(NGLIB_INCLUDE_DIR ${NETGEN_INCLUDE_DIRS}) set(NGLIB_LIBRARIES nglib) - set(NETGEN_DEFINITIONS -DNO_PARALLEL_THREADS -DOCCGEOMETRY) # for external smesh only the following two variables are needed: set(NETGEN_FOUND True) set(NETGEN_INCLUDE_DIRS ${NETGEN_INCLUDE_DIRS}) - ELSE () - SET(NETGEN_DEFINITIONS -DNO_PARALLEL_THREADS -DOCCGEOMETRY) - IF (WIN32) FIND_PATH(NGLIB_INCLUDE_DIR NAMES nglib.h PATHS ${NETGEN_INCLUDEDIR}) SET(NETGEN_LIBS nglib mesh occ interface)