add_executable(vclient "${CMAKE_CURRENT_LIST_DIR}/background.cc" "${CMAKE_CURRENT_LIST_DIR}/background.hh" "${CMAKE_CURRENT_LIST_DIR}/bother.cc" "${CMAKE_CURRENT_LIST_DIR}/bother.hh" "${CMAKE_CURRENT_LIST_DIR}/camera.cc" "${CMAKE_CURRENT_LIST_DIR}/camera.hh" "${CMAKE_CURRENT_LIST_DIR}/chat.cc" "${CMAKE_CURRENT_LIST_DIR}/chat.hh" "${CMAKE_CURRENT_LIST_DIR}/chunk_mesher.cc" "${CMAKE_CURRENT_LIST_DIR}/chunk_mesher.hh" "${CMAKE_CURRENT_LIST_DIR}/chunk_quad.hh" "${CMAKE_CURRENT_LIST_DIR}/chunk_renderer.cc" "${CMAKE_CURRENT_LIST_DIR}/chunk_renderer.hh" "${CMAKE_CURRENT_LIST_DIR}/chunk_vbo.hh" "${CMAKE_CURRENT_LIST_DIR}/chunk_visibility.cc" "${CMAKE_CURRENT_LIST_DIR}/chunk_visibility.hh" "${CMAKE_CURRENT_LIST_DIR}/const.hh" "${CMAKE_CURRENT_LIST_DIR}/crosshair.cc" "${CMAKE_CURRENT_LIST_DIR}/crosshair.hh" "${CMAKE_CURRENT_LIST_DIR}/direct_connection.cc" "${CMAKE_CURRENT_LIST_DIR}/direct_connection.hh" "${CMAKE_CURRENT_LIST_DIR}/experiments.cc" "${CMAKE_CURRENT_LIST_DIR}/experiments.hh" "${CMAKE_CURRENT_LIST_DIR}/factory.cc" "${CMAKE_CURRENT_LIST_DIR}/factory.hh" "${CMAKE_CURRENT_LIST_DIR}/game.cc" "${CMAKE_CURRENT_LIST_DIR}/game.hh" "${CMAKE_CURRENT_LIST_DIR}/gamepad_axis.cc" "${CMAKE_CURRENT_LIST_DIR}/gamepad_axis.hh" "${CMAKE_CURRENT_LIST_DIR}/gamepad_button.cc" "${CMAKE_CURRENT_LIST_DIR}/gamepad_button.hh" "${CMAKE_CURRENT_LIST_DIR}/gamepad.cc" "${CMAKE_CURRENT_LIST_DIR}/gamepad.hh" "${CMAKE_CURRENT_LIST_DIR}/glfw.hh" "${CMAKE_CURRENT_LIST_DIR}/globals.cc" "${CMAKE_CURRENT_LIST_DIR}/globals.hh" "${CMAKE_CURRENT_LIST_DIR}/gui_screen.hh" "${CMAKE_CURRENT_LIST_DIR}/hotbar.cc" "${CMAKE_CURRENT_LIST_DIR}/hotbar.hh" "${CMAKE_CURRENT_LIST_DIR}/imdraw_ext.cc" "${CMAKE_CURRENT_LIST_DIR}/imdraw_ext.hh" "${CMAKE_CURRENT_LIST_DIR}/interpolation.cc" "${CMAKE_CURRENT_LIST_DIR}/interpolation.hh" "${CMAKE_CURRENT_LIST_DIR}/keybind.cc" "${CMAKE_CURRENT_LIST_DIR}/keybind.hh" "${CMAKE_CURRENT_LIST_DIR}/language.cc" "${CMAKE_CURRENT_LIST_DIR}/language.hh" "${CMAKE_CURRENT_LIST_DIR}/listener.cc" "${CMAKE_CURRENT_LIST_DIR}/listener.hh" "${CMAKE_CURRENT_LIST_DIR}/main_menu.cc" "${CMAKE_CURRENT_LIST_DIR}/main_menu.hh" "${CMAKE_CURRENT_LIST_DIR}/main.cc" "${CMAKE_CURRENT_LIST_DIR}/message_box.cc" "${CMAKE_CURRENT_LIST_DIR}/message_box.hh" "${CMAKE_CURRENT_LIST_DIR}/metrics.cc" "${CMAKE_CURRENT_LIST_DIR}/metrics.hh" "${CMAKE_CURRENT_LIST_DIR}/outline.cc" "${CMAKE_CURRENT_LIST_DIR}/outline.hh" "${CMAKE_CURRENT_LIST_DIR}/pch.hh" "${CMAKE_CURRENT_LIST_DIR}/play_menu.cc" "${CMAKE_CURRENT_LIST_DIR}/play_menu.hh" "${CMAKE_CURRENT_LIST_DIR}/player_look.cc" "${CMAKE_CURRENT_LIST_DIR}/player_look.hh" "${CMAKE_CURRENT_LIST_DIR}/player_move.cc" "${CMAKE_CURRENT_LIST_DIR}/player_move.hh" "${CMAKE_CURRENT_LIST_DIR}/player_target.cc" "${CMAKE_CURRENT_LIST_DIR}/player_target.hh" "${CMAKE_CURRENT_LIST_DIR}/program.cc" "${CMAKE_CURRENT_LIST_DIR}/program.hh" "${CMAKE_CURRENT_LIST_DIR}/progress_bar.cc" "${CMAKE_CURRENT_LIST_DIR}/progress_bar.hh" "${CMAKE_CURRENT_LIST_DIR}/receive.cc" "${CMAKE_CURRENT_LIST_DIR}/receive.hh" "${CMAKE_CURRENT_LIST_DIR}/scoreboard.cc" "${CMAKE_CURRENT_LIST_DIR}/scoreboard.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}/settings.cc" "${CMAKE_CURRENT_LIST_DIR}/settings.hh" "${CMAKE_CURRENT_LIST_DIR}/skybox.cc" "${CMAKE_CURRENT_LIST_DIR}/skybox.hh" "${CMAKE_CURRENT_LIST_DIR}/sound_effect.cc" "${CMAKE_CURRENT_LIST_DIR}/sound_effect.hh" "${CMAKE_CURRENT_LIST_DIR}/sound_emitter.cc" "${CMAKE_CURRENT_LIST_DIR}/sound_emitter.hh" "${CMAKE_CURRENT_LIST_DIR}/sound.cc" "${CMAKE_CURRENT_LIST_DIR}/sound.hh" "${CMAKE_CURRENT_LIST_DIR}/splash.cc" "${CMAKE_CURRENT_LIST_DIR}/splash.hh" "${CMAKE_CURRENT_LIST_DIR}/status_lines.cc" "${CMAKE_CURRENT_LIST_DIR}/status_lines.hh" "${CMAKE_CURRENT_LIST_DIR}/texture_gui.cc" "${CMAKE_CURRENT_LIST_DIR}/texture_gui.hh" "${CMAKE_CURRENT_LIST_DIR}/toggles.cc" "${CMAKE_CURRENT_LIST_DIR}/toggles.hh" "${CMAKE_CURRENT_LIST_DIR}/voxel_anims.cc" "${CMAKE_CURRENT_LIST_DIR}/voxel_anims.hh" "${CMAKE_CURRENT_LIST_DIR}/voxel_atlas.cc" "${CMAKE_CURRENT_LIST_DIR}/voxel_atlas.hh" "${CMAKE_CURRENT_LIST_DIR}/voxel_sounds.cc" "${CMAKE_CURRENT_LIST_DIR}/voxel_sounds.hh" "${CMAKE_CURRENT_LIST_DIR}/window_title.cc" "${CMAKE_CURRENT_LIST_DIR}/window_title.hh") target_compile_features(vclient PUBLIC cxx_std_20) target_compile_definitions(vclient PUBLIC GLFW_INCLUDE_NONE) target_include_directories(vclient PUBLIC "${DEPS_INCLUDE_DIR}") 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) 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 ".")