cmake_minimum_required(VERSION 4.1) project(triangle) set(CMAKE_CXX_STANDARD 20) ##### Project settings ###### # Set the assets directory set(ASSETS_DIR "assets") set(SHADERS_DIR "assets/shaders") if(${CMAKE_BUILD_TYPE} STREQUAL "Debug") set(BUILD_SHARED_LIBS ON) else() set(BUILD_SHARED_LIBS OFF) endif() ##### Dependencies ##### set(CMAKE_POLICY_VERSION_MINIMUM 3.5) option(ENABLE_CPP20_MODULE "Enable C++ 20 module support for Vulkan" OFF) file(GLOB CMAKE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/cmake/*.cmake") foreach(cmake_file ${CMAKE_FILES}) include(${cmake_file}) endforeach() ##### Project actions ##### # Define out executable file(GLOB SRC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") file(GLOB HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.h") add_executable(${PROJECT_NAME} ${SRC_FILES} ${HEADER_FILES}) # Add the shaders dependency add_dependencies(${PROJECT_NAME} slang_shaders) add_dependencies(${PROJECT_NAME} glsl_shaders) target_include_directories(${PROJECT_NAME} PUBLIC "${glfw_SOURCE_DIR}/include") # Link with libs target_link_libraries(${PROJECT_NAME} glfw Vulkan::cppm )