Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cmake_minimum_required(VERSION 3.7)
- project(vulkanengine)
- set(SOURCE_FILES main.cpp sdl_render.cpp vmath.cpp bitfont.cpp animation.cpp vulkan_render.cpp)
- set(CMAKE_INCLUDE_CURRENT_DIR ON)
- # Find SDL2 and OpenGL
- set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
- find_package(SDL2 REQUIRED COMPONENTS main)
- find_package(SDL2_image REQUIRED)
- find_package(Vulkan REQUIRED)
- include_directories(${SDL2_INCLUDE_DIRS} ${SDL2main_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS} ${CMAKE_BINARY_DIR})
- add_executable(vulkanengine ${SOURCE_FILES})
- target_link_libraries(vulkanengine ${SDL2_LIBS} ${SDL2_IMAGE_LIBRARIES})
- target_compile_definitions(vulkanengine PRIVATE VK_USE_PLATFORM_WIN32_KHR)
- target_link_libraries(vulkanengine Vulkan::Vulkan)
- # Copy SDL2 DLLs to output folder on Windows
- if(WIN32)
- foreach(DLL ${SDL2_DLLS})
- add_custom_command(TARGET vulkanengine POST_BUILD COMMAND
- ${CMAKE_COMMAND} -E copy_if_different ${DLL} $<TARGET_FILE_DIR:vulkanengine>)
- endforeach()
- foreach(IMGDLL ${SDL2_IMAGE_DLLS})
- add_custom_command(TARGET vulkanengine POST_BUILD COMMAND
- ${CMAKE_COMMAND} -E copy_if_different ${IMGDLL} $<TARGET_FILE_DIR:vulkanengine>)
- endforeach()
- endif()
- if (${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "AMD64")
- set(GLSL_VALIDATOR "$ENV{VULKAN_SDK}/Bin/glslangValidator.exe")
- else()
- set(GLSL_VALIDATOR "$ENV{VULKAN_SDK}/Bin32/glslangValidator.exe")
- endif()
- file(GLOB_RECURSE GLSL_SOURCE_FILES
- "${Project_SOURCE_DIR}/*.frag"
- "${Project_SOURCE_DIR}/*.vert"
- )
- message(STATUS "TEST")
- foreach(GLSL ${GLSL_SOURCE_FILES})
- message(STATUS "BUILDING SHADER")
- get_filename_component(FILE_NAME ${GLSL} NAME)
- set(SPIRV "${PROJECT_SOURCE_DIR}/../assets/shaders/${FILE_NAME}.spv")
- message(STATUS ${GLSL})
- add_custom_command(
- OUTPUT ${SPIRV}
- #COMMAND ${CMAKE_COMMAND} -E make_directory "${PROJECT_SOURCE_DIR}/assets/shaders/"
- COMMAND ${GLSL_VALIDATOR} -V ${GLSL} -o ${SPIRV}
- DEPENDS ${GLSL})
- list(APPEND SPIRV_BINARY_FILES ${SPIRV})
- endforeach(GLSL)
- add_custom_target(
- Shaders
- DEPENDS ${SPIRV_BINARY_FILES}
- )
- add_dependencies(vulkanengine Shaders)
- #add_custom_command(TARGET vulkanengine POST_BUILD
- # COMMAND ${CMAKE_COMMAND} -E make_directory "$<TARGET_FILE_DIR:vulkanengine>/shaders/"
- # COMMAND ${CMAKE_COMMAND} -E copy_directory
- # "${PROJECT_SOURCE_DIR}/assets/shaders"
- # "$<TARGET_FILE_DIR:vulkanengine>/shaders"
- # )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement