CMakeLists.txt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. find_package(Vulkan REQUIRED)
  2. add_library(vkbootstrap STATIC)
  3. add_library(glm INTERFACE)
  4. add_library(vma INTERFACE)
  5. add_library(stb_image INTERFACE)
  6. add_subdirectory(fastgltf)
  7. add_subdirectory(fmt EXCLUDE_FROM_ALL)
  8. add_subdirectory(SDL EXCLUDE_FROM_ALL)
  9. target_sources(vkbootstrap PRIVATE
  10. vkbootstrap/VkBootstrap.h
  11. vkbootstrap/VkBootstrap.cpp
  12. )
  13. target_include_directories(vkbootstrap PUBLIC vkbootstrap)
  14. target_link_libraries(vkbootstrap PUBLIC Vulkan::Vulkan $<$<BOOL:UNIX>:${CMAKE_DL_LIBS}>)
  15. #both vma and glm and header only libs so we only need the include path
  16. target_include_directories(vma INTERFACE vma)
  17. target_include_directories(glm INTERFACE glm)
  18. #add_library(sdl2 INTERFACE)
  19. #target_include_directories(sdl2 INTERFACE $ENV{VULKAN_SDK}/Include/SDL2 )
  20. #target_link_directories(sdl2 INTERFACE $ENV{VULKAN_SDK}/Lib )
  21. #target_link_libraries(sdl2 INTERFACE SDL2 SDL2main)
  22. add_library(imgui STATIC)
  23. target_include_directories(imgui PUBLIC imgui)
  24. target_sources(imgui PRIVATE
  25. imgui/imgui.h
  26. imgui/imgui.cpp
  27. imgui/imgui_demo.cpp
  28. imgui/imgui_draw.cpp
  29. imgui/imgui_widgets.cpp
  30. imgui/imgui_tables.cpp
  31. imgui/imgui_impl_vulkan.cpp
  32. imgui/imgui_impl_sdl2.cpp
  33. )
  34. target_link_libraries(imgui PUBLIC Vulkan::Vulkan SDL2::SDL2)
  35. target_include_directories(stb_image INTERFACE stb_image)