RyanHub - file viewer
filename: CMakeLists.txt
branch: main
back to repo
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
)