conjure-engine/Demo1/CMakeLists.txt

43 lines
1.3 KiB
CMake

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)