FarmFighter/client/CMakeLists.txt

77 lines
2.1 KiB
CMake
Raw Normal View History

2024-08-29 22:27:01 -06:00
cmake_minimum_required(VERSION 3.16)
project(Client)
set(FETCHCONTENT_QUIET OFF)
include(FetchContent)
FetchContent_Declare(
imgui
GIT_REPOSITORY https://github.com/ocornut/imgui.git
GIT_SHALLOW TRUE
GIT_TAG master
)
FetchContent_MakeAvailable(imgui)
# Build ImGui as a static library
add_library(ImGui STATIC
${imgui_SOURCE_DIR}/imgui.cpp
${imgui_SOURCE_DIR}/imgui_demo.cpp
${imgui_SOURCE_DIR}/imgui_draw.cpp
${imgui_SOURCE_DIR}/imgui_tables.cpp
${imgui_SOURCE_DIR}/imgui_widgets.cpp
)
target_include_directories(ImGui PUBLIC ${imgui_SOURCE_DIR})
FetchContent_Declare(
rlImGui
GIT_REPOSITORY https://github.com/raylib-extras/rlImGui.git
GIT_SHALLOW TRUE
GIT_TAG main
)
FetchContent_MakeAvailable(rlImGui)
# Setup rlImGui to work with Raylib
add_library(rlImGui STATIC ${rlimgui_SOURCE_DIR}/rlImGui.cpp)
target_include_directories(rlImGui PUBLIC ${rlimgui_SOURCE_DIR} ${imgui_SOURCE_DIR})
target_link_libraries(rlImGui PRIVATE raylib ImGui)
add_executable(client
client.cpp
game.cpp
net_client.cpp
)
target_include_directories(client PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/../networking/include
${CMAKE_CURRENT_SOURCE_DIR}/../engine/include
2024-08-30 11:47:45 -06:00
${enet_SOURCE_DIR}/include
2024-08-29 22:27:01 -06:00
)
target_link_libraries(client raylib networking engine rlImGui ImGui enet)
2024-08-29 22:27:01 -06:00
if (WIN32)
target_link_libraries(client ws2_32)
endif()
# Copy assets over
set(ASSETS_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../assets)
set(ASSETS_DST_DIR ${CMAKE_BINARY_DIR}/client)
file(WRITE ${CMAKE_BINARY_DIR}/copy_assets.cmake
"
if(EXISTS \"${ASSETS_SRC_DIR}\")
file(COPY \"${ASSETS_SRC_DIR}\" DESTINATION \"${ASSETS_DST_DIR}\")
if(NOT EXISTS \"${ASSETS_DST_DIR}\")
message(WARNING \"Failed to copy assets from ${ASSETS_SRC_DIR} to ${ASSETS_DST_DIR}\")
endif()
else()
message(WARNING \"Assets directory does not exist: ${ASSETS_SRC_DIR}\")
endif()
")
add_custom_command(TARGET client POST_BUILD
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/copy_assets.cmake
COMMENT "Copying assets to output directory"
)