engine/test/CMakeLists.txt

65 lines
1.9 KiB
CMake
Raw Permalink Normal View History

2022-11-07 20:15:26 +00:00
cmake_minimum_required(VERSION 3.12)
# options
project(enginetest LANGUAGES CXX
2024-03-19 11:58:40 +00:00
VERSION "0.2.0"
2022-11-07 20:15:26 +00:00
)
set(GAME_SOURCES
2023-05-09 08:47:52 +00:00
"src/camera_controller.cpp"
"src/camera_controller.hpp"
"src/game.cpp"
"src/game.hpp"
"src/main.cpp"
"src/meshgen.cpp"
"src/meshgen.hpp"
2022-11-07 20:15:26 +00:00
)
2024-01-31 16:30:48 +00:00
file(GLOB_RECURSE GAME_RESOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/res/*")
2022-11-07 20:15:26 +00:00
if (WIN32)
2023-05-25 17:35:32 +00:00
option(ENGINETEST_BUILD_WIN32_APP "Build as a standalone win32 app (no console window)" ON)
endif()
if (WIN32 AND ENGINETEST_BUILD_WIN32_APP)
2024-01-31 16:30:48 +00:00
add_executable(${PROJECT_NAME} WIN32 ${GAME_SOURCES} ${GAME_RESOURCES} "game.rc")
2022-11-07 20:15:26 +00:00
else()
2024-01-31 16:30:48 +00:00
add_executable(${PROJECT_NAME} ${GAME_SOURCES} ${GAME_RESOURCES})
2022-11-07 20:15:26 +00:00
endif()
2024-01-31 16:30:48 +00:00
# vs source view
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}/res" PREFIX "Resources" FILES ${GAME_RESOURCES})
2022-11-07 20:15:26 +00:00
# compiling options:
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 20)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
if (MSVC)
target_compile_options(${PROJECT_NAME} PRIVATE /W3)
target_compile_options(${PROJECT_NAME} PRIVATE /MP)
2023-01-05 13:21:33 +00:00
target_compile_definitions(${PROJECT_NAME} PRIVATE _CRT_SECURE_NO_WARNINGS)
else()
2023-12-12 09:56:37 +00:00
target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -pedantic)
2022-11-07 20:15:26 +00:00
endif()
target_include_directories(${PROJECT_NAME} PRIVATE src)
# Pass some project information into the source code
configure_file(config.h.in config.h)
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(${PROJECT_NAME} PRIVATE engine)
target_include_directories(${PROJECT_NAME} PRIVATE ../include)
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E create_symlink
2022-11-30 11:59:41 +00:00
${PROJECT_SOURCE_DIR}/res $<TARGET_FILE_DIR:enginetest>/res)
get_target_property(ENGINE_SOURCE_DIR engine SOURCE_DIR)
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E create_symlink
2023-05-09 08:47:52 +00:00
${ENGINE_SOURCE_DIR}/res/engine $<TARGET_FILE_DIR:enginetest>/res/engine)