diff --git a/CMakeLists.txt b/CMakeLists.txt index 6eb38a9..25046df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,21 @@ project(bettola CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) +include(FetchContent) +FetchContent_Declare( + sol2 + GIT_REPOSITORY https://github.com/ThePhD/sol2.git + GIT_TAG v3.3.1 +) +FetchContent_MakeAvailable(sol2) + +FetchContent_Declare( + SDL_net + GIT_REPOSITORY https://github.com/libsdl-org/SDL_net.git + GIT_TAG release-3.0.0 +) +FetchContent_MakeAvailable(SDL_net) + add_subdirectory(common) add_subdirectory(client) add_subdirectory(server) diff --git a/README.org b/README.org index 3d1add5..558173e 100644 --- a/README.org +++ b/README.org @@ -7,39 +7,17 @@ The following dependencies are required: - A C++ compiler (e.g., clang, g++) - CMake (3.16 or newer) - SDL3 development libraries - - SDL3_net development libraries + - SDL3_net development libraries (managed by CMake) - GLEW development libraries - FreeType development libraries + - Lua 5.4 development libraries + - sol2 (header-only, managed by CMake) ** Installation (Debian) You can install most required dependencies with the following command: #+BEGIN_SRC bash sudo apt update -sudo apt install build-essential clang cmake libsdl3-dev libglew-dev libfreetype-dev -#+END_SRC - -** Installing SDL3_net (from source) -As SDL3 is new, the networking library may require compiling and installed -manually. - -1 *Clone the repository:* -#+BEGIN_SRC bash -git clone https://github.com/libsdl-org/SDL_net.git -cd SDL_net -#+END_SRC -2 *Build and install:* -#+BEGIN_SRC bash -mkdir build && cd build -cmake .. -make -sudo make install -# You can delete the downloaded SDL_net directory after install. -#+END_SRC -3 *Update linker cache:* -If you have linker issues after install SDL3_net, try updating your linker -cache. -#+BEGIN_SRC bash -sudo ldconfig +sudo apt install build-essential clang cmake libsdl3-dev libglew-dev libfreetype-dev liblua5.4-dev #+END_SRC * Build Instructions diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index 0356d53..c763f61 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -5,13 +5,11 @@ add_executable(bettolac ) find_package(SDL3 REQUIRED) -find_package(SDL3_net REQUIRED) find_package(GLEW REQUIRED) find_package(OpenGL REQUIRED) find_package(Freetype REQUIRED) -target_link_libraries(bettolac PRIVATE bettola SDL3::SDL3 SDL3_net +target_link_libraries(bettolac PRIVATE bettola SDL3::SDL3 SDL3_net::SDL3_net GLEW::glew OpenGL::GL Freetype::Freetype) -target_include_directories(bettolac PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src - /usr/local/include/SDL3_net) +target_include_directories(bettolac PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 38b6461..bd318ee 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -1,8 +1,12 @@ +find_package(Lua 5.4 REQUIRED) + file(GLOB_RECURSE BETTOLA_SOURCES "src/*.cpp") add_library(bettola ${BETTOLA_SOURCES} ) +target_link_libraries(bettola PUBLIC ${LUA_LIBRARIES} sol2) + target_include_directories(bettola PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src) diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt index 00cf308..1a58595 100644 --- a/server/CMakeLists.txt +++ b/server/CMakeLists.txt @@ -5,10 +5,7 @@ add_executable(bettolas ) find_package(SDL3 REQUIRED) -find_package(SDL3_net REQUIRED) -target_link_libraries(bettolas PRIVATE bettola SDL3::SDL3 SDL3_net) +target_link_libraries(bettolas PRIVATE bettola SDL3::SDL3 SDL3_net::SDL3_net) -target_include_directories(bettolas PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/src - /usr/local/include/SDL3_net) +target_include_directories(bettolas PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)