[Add] Dependency management to build system.
This commit is contained in:
parent
208314f54a
commit
019059e209
@ -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)
|
||||
|
||||
30
README.org
30
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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user