summaryrefslogtreecommitdiffstats
path: root/game/client/CMakeLists.txt
blob: b40dbb159058b026c819baa3ea11098307d6f791 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
add_executable(vclient
    "${CMAKE_CURRENT_LIST_DIR}/const.hh"
    "${CMAKE_CURRENT_LIST_DIR}/experiments.cc"
    "${CMAKE_CURRENT_LIST_DIR}/experiments.hh"
    "${CMAKE_CURRENT_LIST_DIR}/game.cc"
    "${CMAKE_CURRENT_LIST_DIR}/game.hh"
    "${CMAKE_CURRENT_LIST_DIR}/globals.cc"
    "${CMAKE_CURRENT_LIST_DIR}/globals.hh"
    "${CMAKE_CURRENT_LIST_DIR}/main.cc"
    "${CMAKE_CURRENT_LIST_DIR}/pch.hh"
    "${CMAKE_CURRENT_LIST_DIR}/program.cc"
    "${CMAKE_CURRENT_LIST_DIR}/program.hh"
    "${CMAKE_CURRENT_LIST_DIR}/receive.cc"
    "${CMAKE_CURRENT_LIST_DIR}/receive.hh"
    "${CMAKE_CURRENT_LIST_DIR}/screenshot.cc"
    "${CMAKE_CURRENT_LIST_DIR}/screenshot.hh"
    "${CMAKE_CURRENT_LIST_DIR}/session.cc"
    "${CMAKE_CURRENT_LIST_DIR}/session.hh"
    "${CMAKE_CURRENT_LIST_DIR}/toggles.cc"
    "${CMAKE_CURRENT_LIST_DIR}/toggles.hh")
target_compile_features(vclient PUBLIC cxx_std_20)
target_compile_definitions(vclient PUBLIC GLFW_INCLUDE_NONE)
target_include_directories(vclient PRIVATE "${PROJECT_SOURCE_DIR}")
target_include_directories(vclient PRIVATE "${PROJECT_SOURCE_DIR}/game")
target_precompile_headers(vclient PRIVATE "${CMAKE_CURRENT_LIST_DIR}/pch.hh")
target_link_libraries(vclient PUBLIC shared dr_libs glad glfw3 imgui imgui_glfw imgui_opengl3 salad)

add_subdirectory(config)
add_subdirectory(entity)
add_subdirectory(gui)
add_subdirectory(io)
add_subdirectory(resource)
add_subdirectory(sound)
add_subdirectory(world)

if(WIN32 AND MSVC)
    # GLFW defines APIENTRY and ENet includes
    # Windows API headers which also define APIENTRY
    target_compile_options(vclient PRIVATE /wd4005)
endif()

if(WIN32)
    enable_language(RC)
    target_sources(vclient PRIVATE "${CMAKE_CURRENT_LIST_DIR}/vclient.rc")
endif()

install(TARGETS vclient RUNTIME DESTINATION ".")