cmake_minimum_required(VERSION 3.10)
project(BIPY_Project)

# Настройки стандарта C++
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(OpenGL_GL_PREFERENCE GLVND)

# 1. ОТКЛЮЧАЕМ проверки нативных платформ ImGui (исправляет ошибку glfwGetX11Display)
add_definitions(-DIMGUI_DISABLE_X11)
add_definitions(-DIMGUI_DISABLE_WAYLAND)

# 2. Поиск необходимых системных библиотек
find_package(glfw3 REQUIRED)
find_package(OpenGL REQUIRED)
find_package(OpenMP REQUIRED)
find_package(Vulkan REQUIRED)

# 3. Список всех исходных файлов (Ядро + GUI + ImGui)
set(SOURCES
    main.cpp
    Xenith/core.cpp
    Xenith/token/token.cpp
    imgui/imgui.cpp
    imgui/imgui_draw.cpp
    imgui/imgui_widgets.cpp
    imgui/imgui_tables.cpp
    imgui/imgui_demo.cpp
    imgui/backends/imgui_impl_glfw.cpp
    imgui/backends/imgui_impl_opengl3.cpp
)

# 4. Создание исполняемого файла
add_executable(BIPY_App ${SOURCES})

# 5. Подключение папок с заголовками
target_include_directories(BIPY_App PRIVATE 
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${CMAKE_CURRENT_SOURCE_DIR}/Xenith
    ${CMAKE_CURRENT_SOURCE_DIR}/Xenith/token
    ${CMAKE_CURRENT_SOURCE_DIR}/imgui
    ${CMAKE_CURRENT_SOURCE_DIR}/imgui/backends
)

# 6. Линковка библиотек
# Добавлены X11 и dl для стабильности в Linux
target_link_libraries(BIPY_App 
    PRIVATE 
    glfw 
    OpenGL::GL
    Vulkan::Vulkan
    OpenMP::OpenMP_CXX
    X11
    dl
    pthread
)
