
file(GLOB xxxproject_namexxx_sources "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" "${CMAKE_CURRENT_BINARY_DIR}/*.cpp")
# Remove all binding files from main library sources
file(GLOB binding_files "${CMAKE_CURRENT_SOURCE_DIR}/*_binding.cpp")
list(REMOVE_ITEM xxxproject_namexxx_sources ${binding_files})

phoenix_add_library(xxxproject_namexxx ${xxxproject_namexxx_sources})
XXXProjectNameTargetLinkLinDependenciesXXX
install(TARGETS xxxproject_namexxx LIBRARY DESTINATION ${LIBRARY_DIRECTORY} ARCHIVE DESTINATION ${LIBRARY_DIRECTORY})

file(GLOB header "${CMAKE_CURRENT_SOURCE_DIR}/*.h"  "${CMAKE_CURRENT_BINARY_DIR}/*.h")
install(FILES ${header} DESTINATION include/XXXProjectNameXXX)

#==================== NANOBIND INTEGRATION ====================
# Locate the Python interpreter and development module
find_package(Python 3 COMPONENTS Interpreter Development.Module REQUIRED)

# Determine the nanobind CMake include path and register it
execute_process(
        COMMAND "${Python_EXECUTABLE}" -m nanobind --cmake_dir
        OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE NB_DIR)

message(STATUS "NanoBind CMake directory found at: ${NB_DIR}")
list(APPEND CMAKE_PREFIX_PATH "${NB_DIR}")

# Import nanobind through CMake's find_package mechanism
find_package(nanobind CONFIG REQUIRED)

xxxnanobind_sourcesxxx
#=============================================================
