[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