CMakeLists.txt 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. find_package(Vulkan REQUIRED)
  2. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/libs")
  3. set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/libs")
  4. # GLFW
  5. set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
  6. set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
  7. set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
  8. add_subdirectory(GLFW)
  9. # GLM
  10. add_library(glm INTERFACE)
  11. target_include_directories(glm INTERFACE glm)
  12. # vkbootstrap
  13. add_library(vkbootstrap STATIC)
  14. target_sources(vkbootstrap PRIVATE
  15. vkbootstrap/VkBootstrap.h
  16. vkbootstrap/VkBootstrap.cpp
  17. )
  18. target_include_directories(vkbootstrap PUBLIC vkbootstrap)
  19. target_link_libraries(vkbootstrap PUBLIC Vulkan::Vulkan $<$<BOOL:UNIX>:${CMAKE_DL_LIBS}>)
  20. # VMA
  21. add_library(vma INTERFACE)
  22. target_include_directories(vma SYSTEM INTERFACE vma)
  23. # tinyobjloader
  24. add_library(tinyobjloader STATIC)
  25. target_sources(tinyobjloader PRIVATE
  26. tinyobjloader/tiny_obj_loader.h
  27. tinyobjloader/tiny_obj_loader.cc
  28. )
  29. target_include_directories(tinyobjloader PUBLIC tinyobjloader)
  30. # tinygltf
  31. add_library(tinygltf INTERFACE)
  32. target_include_directories(tinygltf INTERFACE tinygltf)
  33. # STB
  34. add_library(stb_image INTERFACE)
  35. target_include_directories(stb_image SYSTEM INTERFACE stb_image)
  36. # IMGUI
  37. add_library(imgui STATIC)
  38. target_include_directories(imgui PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/imgui")
  39. target_sources(imgui PRIVATE
  40. "${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui.h"
  41. "${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui.cpp"
  42. "${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_stdlib.h"
  43. "${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_stdlib.cpp"
  44. "${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_demo.cpp"
  45. "${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_draw.cpp"
  46. "${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_widgets.cpp"
  47. "${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_tables.cpp"
  48. "${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_impl_vulkan.cpp"
  49. "${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_impl_glfw.cpp"
  50. )
  51. target_link_libraries(imgui PUBLIC Vulkan::Vulkan glfw)