CMakeLists.txt 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # CMakeList.txt : CMake project for vulkan_guide, include source and define
  2. # project specific logic here.
  3. #
  4. cmake_minimum_required (VERSION 3.8)
  5. project ("Coral3D")
  6. find_package(Vulkan REQUIRED)
  7. add_subdirectory(third_party)
  8. set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/bin")
  9. set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/bin")
  10. add_subdirectory(src)
  11. find_program(GLSL_VALIDATOR glslangValidator HINTS /usr/bin /usr/local/bin $ENV{VULKAN_SDK}/Bin/ $ENV{VULKAN_SDK}/Bin32/)
  12. file(GLOB_RECURSE GLSL_SOURCE_FILES
  13. "${PROJECT_SOURCE_DIR}/shaders/*.frag"
  14. "${PROJECT_SOURCE_DIR}/shaders/*.vert"
  15. "${PROJECT_SOURCE_DIR}/shaders/*.comp"
  16. )
  17. foreach(GLSL ${GLSL_SOURCE_FILES})
  18. message(STATUS "BUILDING SHADER")
  19. get_filename_component(FILE_NAME ${GLSL} NAME)
  20. set(SPIRV "${PROJECT_SOURCE_DIR}/shaders/${FILE_NAME}.spv")
  21. message(STATUS ${GLSL})
  22. add_custom_command(
  23. OUTPUT ${SPIRV}
  24. COMMAND ${GLSL_VALIDATOR} -V ${GLSL} -o ${SPIRV}
  25. DEPENDS ${GLSL})
  26. list(APPEND SPIRV_BINARY_FILES ${SPIRV})
  27. endforeach(GLSL)
  28. add_custom_target(
  29. Shaders
  30. DEPENDS ${SPIRV_BINARY_FILES}
  31. )