]> OCCT Git - occt.git/commitdiff
Configuration - Validate the configuration on CMake 3.10 and later (#762)
authorPasukhin Dmitry <dpasukhi@opencascade.com>
Sat, 25 Oct 2025 14:49:04 +0000 (15:49 +0100)
committerGitHub <noreply@github.com>
Sat, 25 Oct 2025 14:49:04 +0000 (15:49 +0100)
- adm/cmake/gtest.cmake: check CMake version before using FetchContent; emit a warning and skip FetchContent-based GoogleTest setup when CMake < 3.11.
- adm/cmake/occt_macros.cmake: wrap list(REMOVE_DUPLICATES ...) calls in if() checks to avoid operating on empty/unset variables.

adm/cmake/gtest.cmake
adm/cmake/occt_macros.cmake

index 436713f35c877f2e1c0ac6dc662f4b0e5a682db1..280188546cd5dcf23111a5283982a394ada21926 100644 (file)
@@ -26,6 +26,13 @@ if(GTest_FOUND)
 else()
   message(STATUS "Googletest not found in system paths")
   if(GTEST_USE_FETCHCONTENT)
+    # FetchContent requires CMake 3.11 or higher
+    if(CMAKE_VERSION VERSION_LESS "3.11")
+      message(WARNING "FetchContent requires CMake 3.11 or higher (current version: ${CMAKE_VERSION}). "
+                      "Please either upgrade CMake, install Google Test manually, or disable BUILD_GTEST.")
+      set(GOOGLETEST_FOUND FALSE)
+      return()
+    endif()
     include(FetchContent)
 
     # Set option to disable GMock before declaring the content
index 228a7599e4634d6d2acf2c9c586d4c1928112d47..360a5306cf82541c5b5bf81447320d4b9c724d42 100644 (file)
@@ -332,8 +332,13 @@ function(EXCTRACT_TOOLKIT_FULL_DEPS SOLUTION_TYPE OCCT_TOOLKIT RESULT_TKS_AS_DEP
     list(APPEND OCCT_TOOLKIT_INCLUDE_FOLDERS ${DEP_INCLUDE_DIRS})
   endforeach()
 
-  list(REMOVE_DUPLICATES OCCT_TOOLKIT_FULL_DEPS)
-  list(REMOVE_DUPLICATES OCCT_TOOLKIT_INCLUDE_FOLDERS)
+  if (OCCT_TOOLKIT_FULL_DEPS)
+    list(REMOVE_DUPLICATES OCCT_TOOLKIT_FULL_DEPS)
+  endif()
+
+  if (OCCT_TOOLKIT_INCLUDE_FOLDERS)
+    list(REMOVE_DUPLICATES OCCT_TOOLKIT_INCLUDE_FOLDERS)
+  endif()
 
   set (${RESULT_TKS_AS_DEPS} ${OCCT_TOOLKIT_FULL_DEPS} PARENT_SCOPE)
   set (${RESULT_INCLUDE_FOLDERS} ${OCCT_TOOLKIT_INCLUDE_FOLDERS} PARENT_SCOPE)