diff --git a/CMakeLists.txt b/CMakeLists.txt
index aedb4d92068a69b920ff36dd143feae646bf0a82..d973a04ec5136347c3ddc7fc92989e65b0f34a42 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.11)
+cmake_minimum_required(VERSION 3.15)
 
 
 file(READ "${CMAKE_SOURCE_DIR}/version.txt" version)
@@ -52,17 +52,13 @@ target_include_directories(${module_name}
 generate_python_binding(${project} ${module_name})
 
 if (PYBIND)
-    message(STATUS "PYTHON INCLUDE DIR : ${PYTHON_INCLUDE_DIRS}")
-    message(STATUS "PYTHON PYTHON_LIBRARY : ${PYTHON_LIBRARIES}")
-
-    target_include_directories(${module_name}
-        PUBLIC
-            $<BUILD_INTERFACE:${PYTHON_INCLUDE_DIRS}>
-    )
+    # Handles Python + pybind11 headers dependencies
     target_link_libraries(${module_name}
+        PUBLIC 
+            pybind11::pybind11
         PRIVATE
-            ${PYTHON_LIBRARIES}
-    )
+            Python::Python
+        )
 endif()
 
 target_compile_features(${module_name} PRIVATE cxx_std_14)
diff --git a/cmake/PybindModuleCreation.cmake b/cmake/PybindModuleCreation.cmake
index 1074c409ac8bf28d4a8c129884a47b46c6b21cc7..18f4abc38e2537c3f4d949f08772a57b90758cb0 100644
--- a/cmake/PybindModuleCreation.cmake
+++ b/cmake/PybindModuleCreation.cmake
@@ -9,12 +9,15 @@ function(generate_python_binding name target_to_bind)
         GIT_TAG        v2.10.4 # or a later release
         )
 
+        # Use the New FindPython mode, recommanded. Requires CMake 3.15+
+        find_package(Python COMPONENTS Interpreter Development)
         FetchContent_MakeAvailable(PyBind11)
+
         message(STATUS "Creating binding for module ${name}")
         file(GLOB_RECURSE pybind_src_files "python_binding/*.cpp")
-        pybind11_add_module(${name}  MODULE ${pybind_src_files} "NO_EXTRAS")
-        target_include_directories(${name}  PUBLIC ${pybind11_INCLUDE_DIRS} "python_binding")
-        target_link_libraries(${name} PUBLIC ${target_to_bind})
-        
+
+        pybind11_add_module(${name} MODULE ${pybind_src_files} "NO_EXTRAS") # NO EXTRA recquired for pip install
+        target_include_directories(${name} PUBLIC "python_binding")
+        target_link_libraries(${name} PUBLIC ${target_to_bind})        
     endif()
 endfunction()