cmake_minimum_required(VERSION 3.26) project(Demo1) set(CMAKE_CXX_STANDARD 20) find_package(Python3 REQUIRED COMPONENTS Interpreter) set(SHADER_FILES src/Shaders/Test.frag src/Shaders/Test.vert ) add_executable(${PROJECT_NAME} src/main.cpp src/Demo1.cpp src/Demo1.h ) # STAMP FILE THAT TRACK THE CHANGES IN SHADERS set(OUTPUT_SHADER_STAMP "${CMAKE_CURRENT_SOURCE_DIR}/src/Shaders/shaders.stamp") # COMPILE SHADERS USING PYTHON add_custom_command( OUTPUT ${OUTPUT_SHADER_STAMP} COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/CompileShaders.py ${CMAKE_CURRENT_SOURCE_DIR}/src/Shaders ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${SHADER_FILES} COMMENT "Compiling shaders" ) # CREATE CUSTOM TARGET THAT LINK THE COMMAND TO THE PROJECT add_custom_target(shader_compilation DEPENDS ${OUTPUT_SHADER_STAMP}) # ADD THE CUSTOM TARGET AS A DEPENDENCY add_dependencies(${PROJECT_NAME} shader_compilation) target_link_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/ConjureEngine) find_package(SDL2 REQUIRED) target_include_directories(${PROJECT_NAME} PRIVATE include) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/ConjureEngine/src) target_link_libraries(${PROJECT_NAME} SDL2::SDL2 ConjureEngine)