cmake_minimum_required(VERSION 3.10)
project(couch_game C)
set(CMAKE_C_STANDARD 99)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(SOURCES
src/main.c
src/core/engine.c
src/core/game.c
src/player/player.c
src/thing/thing.c
src/net/server.c
src/render/renderer.c
src/render/texture.c
src/render/shader.c
src/render/model.c
src/render/light.c
src/defaults/physics.c
src/dev/map.c
external/glad/src/glad.c
)
include_directories(
${CMAKE_SOURCE_DIR}/include
${CMAKE_SOURCE_DIR}/external
${CMAKE_SOURCE_DIR}/external/glad/include
${CMAKE_SOURCE_DIR}/external/glfw
${CMAKE_SOURCE_DIR}/external/khr
${CMAKE_SOURCE_DIR}/external/stb_image
${CMAKE_SOURCE_DIR}/external/cglm
${CMAKE_SOURCE_DIR}/external/tinyobj
)
link_directories(${CMAKE_SOURCE_DIR}/external/lib)
find_package(OpenSSL REQUIRED)
add_executable(couch_game ${SOURCES})
target_link_libraries(couch_game PRIVATE
glfw3
OpenSSL::SSL
OpenSSL::Crypto
)
if (WIN32)
target_link_libraries(couch_game PRIVATE ws2_32)
endif()
add_custom_command(
TARGET couch_game POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:couch_game> ${CMAKE_SOURCE_DIR}/server.exe
)