--- CMakeLists.txt.orig	2026-08-03 15:39:52.086856000 +0200
+++ CMakeLists.txt	2026-08-03 16:05:12.576976000 +0200
@@ -28,10 +28,12 @@
 set(PYTHONOCC_VERSION_DEVEL )
 
 # set OCCT version
-set(OCCT_VERSION_MAJOR 8)
-set(OCCT_VERSION_MINOR 0)
-set(OCCT_VERSION_PATCH 0)
 
+# will allow more patch
+#set(OCCT_VERSION_MAJOR 8)
+#set(OCCT_VERSION_MINOR 0)
+#set(OCCT_VERSION_PATCH 0)
+
 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
 
 ## cmake policies
@@ -73,6 +75,12 @@
 find_package(OpenGL)
 include_directories(${OPENGL_INCLUDE_DIR})
 
+##############################
+# rapidjson
+#############################
+find_package(RapidJSON REQUIRED)
+set(RapidJSON_INCLUDE_DIR /usr/local/include CACHE PATH "path to the rapidjson include directory")
+
 #################
 # Build options #
 #################
@@ -88,7 +96,7 @@
 option_with_default(PYTHONOCC_WRAP_OCAF "Compile OCCT Application Framework wrapper" ON)
 option_with_default(SWIG_HIDE_WARNINGS "Check this option if you want a less verbose swig output." ON)
 option_with_default(OCCT_HIDE_DEPRECATED "Check this option to disable deprecation warnings for OCCT." ON)
-option_with_default(PYTHONOCC_MESHDS_NUMPY "Enable using numpy to speed up mesh data source arrays (requires numpy dev libraries and headers)." OFF)
+option_with_default(PYTHONOCC_MESHDS_NUMPY "Enable using numpy to speed up mesh data source arrays (requires numpy dev libraries and headers)." ON)
 
 ############
 # Python 3 #
@@ -100,8 +108,6 @@
     include_directories(${Python3_NumPy_INCLUDE_DIRS})
     message(STATUS "Numpy include directory: ${Python3_NumPy_INCLUDE_DIRS}")
     set(CMAKE_SWIG_FLAGS ${CMAKE_SWIG_FLAGS} -DBUILD_MESHDS_NUMPY)
-else(PYTHONOCC_MESHDS_NUMPY)
-    find_package(Python3 COMPONENTS Interpreter Development REQUIRED)
 endif(PYTHONOCC_MESHDS_NUMPY)
 message(STATUS "Python3 interpreter:" ${Python3_EXECUTABLE})
 message(STATUS "Python include directory: ${Python3_INCLUDE_DIRS}")
@@ -110,7 +116,8 @@
 ########
 # SWIG #
 ########
-find_package(SWIG 4.2.1...4.4.1 REQUIRED)
+#find_package(SWIG 4.2.1...4.4.1 REQUIRED)
+find_package(SWIG 4.2.1)
 message(STATUS "SWIG version found: ${SWIG_VERSION}")
 include(${SWIG_USE_FILE})
 set(SWIG_FILES_PATH src/SWIG_files/wrapper)
@@ -164,8 +171,15 @@
 # if OCCT_INCLUDE_DIR is not passed at command line,
 # find OCE automatically
 else(OCCT_INCLUDE_DIR)
-  find_package(OpenCASCADE ${OCCT_VERSION_MAJOR}.${OCCT_VERSION_MINOR}.${OCCT_VERSION_PATCH} EXACT REQUIRED)
-  if(OpenCASCADE_FOUND)
+#   find_package(OpenCASCADE ${OCCT_VERSION_MAJOR}.${OCCT_VERSION_MINOR}.${OCCT_VERSION_PATCH} EXACT REQUIRED)
+find_package(OpenCASCADE REQUIRED)
+if (OpenCASCADE_VERSION VERSION_LESS 8.0.0)
+    message(FATAL_ERROR "Minimal OpenCASCADE version is 8.0.0")
+elseif (OpenCASCADE_VERSION VERSION_GREATER 8.0.3)
+    message(FATAL_ERROR "Maximal OpenCASCADE version is 8.0.3")
+endif ()
+
+if(OpenCASCADE_FOUND)
     message(STATUS "OpenCASCADE version found: " ${OpenCASCADE_MAJOR_VERSION} "." ${OpenCASCADE_MINOR_VERSION} "." ${OpenCASCADE_MAINTENANCE_VERSION})
     message(STATUS "OpenCASCADE include directory: " ${OpenCASCADE_INCLUDE_DIR})
     message(STATUS "OpenCASCADE binary directory: " ${OpenCASCADE_BINARY_DIR})
