cmake_minimum_required(VERSION 3.13) project(vulkanik) add_executable(${PROJECT_NAME} "main.cpp" "app.hpp" "app.cpp" ) # "basicApp.cpp" "basicApp.hpp" # "debug.cpp" "debug.hpp") target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_20) set(CMAKE_CXX_STANDARD 20) find_package(Vulkan REQUIRED) target_link_libraries(${PROJECT_NAME} glfw Vulkan::Vulkan) #find_package( Threads ) #target_link_libraries(${PROJECT_NAME} ${CMAKE_THREAD_LIBS_INIT} ) file(COPY resources DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) #file(MAKE_DIRECTORY shaders) #TODO compile shaders #https://gist.github.com/vlsh/a0d191701cb48f157b05be7f74d79396 set(GLSL_VALIDATOR "glslangValidator") file(GLOB_RECURSE GLSL_SOURCE_FILES "shaders_src/*.frag" "shaders_src/*.vert" ) foreach(GLSL ${GLSL_SOURCE_FILES}) get_filename_component(FILE_NAME ${GLSL} NAME) set(SPIRV "${PROJECT_BINARY_DIR}/shaders/${FILE_NAME}.spv") add_custom_command( OUTPUT ${SPIRV} COMMAND ${CMAKE_COMMAND} -E make_directory "${PROJECT_BINARY_DIR}/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(${PROJECT_NAME} Shaders) #file(COPY shaders DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "$/shaders/" COMMAND ${CMAKE_COMMAND} -E copy_directory "${PROJECT_BINARY_DIR}/shaders" "$/shaders" ) target_sources(${PROJECT_NAME} PUBLIC ${GLSL_SOURCE_FILES}) #${GLFW_LIBRARIES} #link_libraries(${PROJECT_NAME} libsfml-graphics) #find_package(SFML 2.5 COMPONENTS graphics audio REQUIRED) #target_link_libraries(${PROJECT_NAME} sfml-graphics sfml-audio) #find_package( Threads ) #target_link_libraries(${PROJECT_NAME} ${CMAKE_THREAD_LIBS_INIT} ) #file(COPY resources DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) #system network graphics window audio #target_include_directories(${PROJECT_NAME} PRIVATE .) if(FALSE) # fake a block comment include_directories( external/AntTweakBar-1.16/include/ external/glfw-3.1.2/include/ external/glm-0.9.7.1/ external/glew-1.13.0/include/ external/assimp-3.0.1270/include/ external/bullet-2.81-rev2613/src/ . ) add_definitions( -DTW_STATIC -DTW_NO_LIB_PRAGMA -DTW_NO_DIRECT3D -DGLEW_STATIC -D_CRT_SECURE_NO_WARNINGS ) endif()