cmake_minimum_required(VERSION 3.10) project(LearningVulkan) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) add_compile_options(-Wall -Wextra -O2) set(IMGUI_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/imgui) # Recursively find all .cpp files under src/ file(GLOB_RECURSE SOURCES "src/*.cpp") # Core ImGui files list(APPEND SOURCES ${IMGUI_DIR}/imgui.cpp ${IMGUI_DIR}/imgui_demo.cpp ${IMGUI_DIR}/imgui_draw.cpp ${IMGUI_DIR}/imgui_tables.cpp ${IMGUI_DIR}/imgui_widgets.cpp ${IMGUI_DIR}/backends/imgui_impl_glfw.cpp ${IMGUI_DIR}/backends/imgui_impl_vulkan.cpp ) add_executable(${PROJECT_NAME} ${SOURCES}) target_include_directories(${PROJECT_NAME} PRIVATE lib lib/stb lib/tinyobjloader ${IMGUI_DIR} ${IMGUI_DIR}/backends src src/utilities src/private src/public ) target_link_libraries(${PROJECT_NAME} PRIVATE glfw vulkan dl pthread X11 Xxf86vm Xrandr Xi )