Files

72 lines
1.9 KiB
CMake

set(GAME_NAME TestGame)
set(CMAKE_CXX_STANDARD 20)
file(GLOB_RECURSE SRC "*.cpp" "*.c" "*.h" "*.hpp" "*.res" "*.world" "*.conf" "*.frag" "*.vert")
add_executable(${GAME_NAME} ${SRC})
target_link_libraries(${GAME_NAME} PRIVATE Core UwURenderEngine)
target_include_directories(${GAME_NAME} PRIVATE
${PROJECT_SOURCE_DIR}/Core
${PROJECT_SOURCE_DIR}/UwURenderEngine
)
if(MSVC)
set(OUTPUT_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$<CONFIG>)
else()
set(OUTPUT_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
endif()
add_custom_command(
TARGET ${GAME_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/main_config.conf
${OUTPUT_PATH}/main_config.conf
COMMENT "Copying main config file"
)
add_custom_command(
TARGET ${GAME_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/Worlds
${OUTPUT_PATH}/Worlds
COMMENT "Copying Worlds directory"
)
add_custom_command(
TARGET ${GAME_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/Resources
${OUTPUT_PATH}/Resources
COMMENT "Copying Resources directory"
)
add_custom_command(
TARGET ${GAME_NAME}
PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory ${OUTPUT_PATH}/Shaders
COMMENT "Creating Shaders directory"
)
add_custom_command(
TARGET ${GAME_NAME}
POST_BUILD
COMMAND $ENV{VULKAN_SDK}/Bin/glslc.exe
${CMAKE_CURRENT_SOURCE_DIR}/Shaders/vertex.vert
-o ${OUTPUT_PATH}/Shaders/vertex.spv
COMMENT "Building vertex shader"
)
add_custom_command(
TARGET ${GAME_NAME}
POST_BUILD
COMMAND $ENV{VULKAN_SDK}/Bin/glslc.exe
${CMAKE_CURRENT_SOURCE_DIR}/Shaders/fragment.frag
-o ${OUTPUT_PATH}/Shaders/fragment.spv
COMMENT "Building fragment shader"
)