diff --git a/CMakeLists.txt b/CMakeLists.txt
index d9892b6bebe2f6e20ef5575f6e621780d461ef85..1368373abb3cf53a8c1427b552c8ad3b7a230df0 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)
 file(READ "${CMAKE_SOURCE_DIR}/project_name.txt" project)
@@ -48,17 +48,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 a80b594bc3bac05cb651793ee0e80a2c1dd6552e..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") # NO EXTRA recquired for pip install
-        target_include_directories(${name} PUBLIC ${pybind11_INCLUDE_DIRS} "python_binding")
-        target_link_libraries(${name} PUBLIC ${target_to_bind})
-        
+        target_include_directories(${name} PUBLIC "python_binding")
+        target_link_libraries(${name} PUBLIC ${target_to_bind})        
     endif()
 endfunction()