fetch deps

This commit is contained in:
proller committed 2026-01-10 22:20:01 +01:00
1 parent ea5719b1e4
commit 3caba651b9
7 files changed
+154 -9

No files matched your search

+1 -1
View File
@@ -15,7 +15,7 @@
url = https://github.com/msgpack/msgpack-c.git
[submodule "src/external/websocketpp"]
path = src/external/websocketpp
url = https://github.com/FelixHommel/websocketpp.git
url = https://github.com/jcelerier/websocketpp.git
[submodule "src/external/leveldb"]
path = src/external/leveldb
url = https://github.com/google/leveldb
+146 -6
View File
@@ -17,9 +17,35 @@ if(USE_MULTI)
endif()
endif()
option(BOOST_COMPILE "Compile boost in place" 0)
if(BOOST_COMPILE)
option(FETCH_DEPS "Compile deps (boost,...) in place" 0)
if(FETCH_DEPS)
include(FetchContent)
set(FETCHCONTENT_QUIET FALSE) # Needed to print downloading progress
set(ENABLE_LIB_ONLY ON CACHE BOOL "")
set(ENABLE_TESTS OFF CACHE BOOL "")
FetchContent_Declare(
BZip2
GIT_REPOSITORY "https://gitlab.com/bzip2/bzip2.git"
GIT_TAG "master"
# GIT_TAG "bzip2-1.0.8" # CMake support not available
GIT_SHALLOW TRUE
OVERRIDE_FIND_PACKAGE TRUE
USES_TERMINAL_DOWNLOAD TRUE
GIT_PROGRESS TRUE
DOWNLOAD_EXTRACT_TIMESTAMP ON
)
FetchContent_MakeAvailable(BZip2)
set(BZIP2_FOUND 1 CACHE BOOL "")
add_library(BZip2::BZip2 ALIAS bz2)
set(BZIP2_INCLUDE_DIR "${bzip2_SOURCE_DIR}" CACHE INTERNAL "")
target_include_directories(bz2 PUBLIC ${BZIP2_INCLUDE_DIR})
endif()
if(FETCH_DEPS)
set(BOOST_ENABLE_CMAKE ON)
set(BOOST_INCLUDE_LIBRARIES program_options)
include(FetchContent)
set(FETCHCONTENT_QUIET FALSE) # Needed to print downloading progress
@@ -41,6 +67,35 @@ if(ENABLE_WEBSOCKET OR ENABLE_WEBSOCKET_SCTP)
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/external/websocketpp/CMakeLists.txt)
find_package(Boost)
if(Boost_FOUND)
if(boost_SOURCE_DIR)
include_directories(BEFORE SYSTEM
${boost_SOURCE_DIR}/libs/align/include
${boost_SOURCE_DIR}/libs/asio/include
${boost_SOURCE_DIR}/libs/assert/include
${boost_SOURCE_DIR}/libs/bind/include
${boost_SOURCE_DIR}/libs/config/include
${boost_SOURCE_DIR}/libs/container_hash/include
${boost_SOURCE_DIR}/libs/container/include
${boost_SOURCE_DIR}/libs/core/include
${boost_SOURCE_DIR}/libs/date_time/include
${boost_SOURCE_DIR}/libs/describe/include
${boost_SOURCE_DIR}/libs/detail/include
${boost_SOURCE_DIR}/libs/function/include
${boost_SOURCE_DIR}/libs/lexical_cast/include
${boost_SOURCE_DIR}/libs/move/include
${boost_SOURCE_DIR}/libs/mp11/include
${boost_SOURCE_DIR}/libs/mpl/include
${boost_SOURCE_DIR}/libs/numeric/conversion/include
${boost_SOURCE_DIR}/libs/smart_ptr/include
${boost_SOURCE_DIR}/libs/static_assert/include
${boost_SOURCE_DIR}/libs/system/include
${boost_SOURCE_DIR}/libs/throw_exception/include
${boost_SOURCE_DIR}/libs/type_index/include
${boost_SOURCE_DIR}/libs/type_traits/include
)
endif()
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/external/websocketpp)
#add_subdirectory(external/websocketpp)
#set(WEBSOCKETPP_LIBRARY websocketpp::websocketpp)
@@ -127,6 +182,62 @@ option(ENABLE_OSMIUM "Enable Osmium" 1)
# endif()
if(ENABLE_OSMIUM AND (OSMIUM_INCLUDE_DIR OR EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/mapgen/earth/libosmium/CMakeLists.txt))
if(FETCH_DEPS)
include(FetchContent)
set(FETCHCONTENT_QUIET FALSE) # Needed to print downloading progress
FetchContent_Declare(lz4
URL https://github.com/lz4/lz4/archive/refs/tags/v1.10.0.tar.gz
URL_HASH SHA256=537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b
SOURCE_SUBDIR build/cmake
SYSTEM TRUE
GIT_SHALLOW TRUE
OVERRIDE_FIND_PACKAGE TRUE
USES_TERMINAL_DOWNLOAD TRUE
GIT_PROGRESS TRUE
DOWNLOAD_EXTRACT_TIMESTAMP ON
EXCLUDE_FROM_ALL
)
FetchContent_MakeAvailable(lz4)
FetchContent_Declare(protozero
GIT_REPOSITORY https://github.com/mapbox/protozero
GIT_TAG v1.8.1
SOURCE_SUBDIR cmake
GIT_SUBMODULES_RECURSE OFF
GIT_SHALLOW TRUE
OVERRIDE_FIND_PACKAGE TRUE
USES_TERMINAL_DOWNLOAD TRUE
GIT_PROGRESS TRUE
DOWNLOAD_EXTRACT_TIMESTAMP ON
EXCLUDE_FROM_ALL
)
FetchContent_MakeAvailable(protozero)
set(PROTOZERO_INCLUDE_DIR "${protozero_SOURCE_DIR}")
FetchContent_Declare(
expat
GIT_REPOSITORY https://github.com/libexpat/libexpat/
GIT_TAG R_2_7_3
SOURCE_SUBDIR expat/
GIT_SHALLOW TRUE
OVERRIDE_FIND_PACKAGE TRUE
USES_TERMINAL_DOWNLOAD TRUE
GIT_PROGRESS TRUE
DOWNLOAD_EXTRACT_TIMESTAMP ON
EXCLUDE_FROM_ALL
)
FetchContent_MakeAvailable(expat)
add_library(EXPAT::EXPAT ALIAS expat)
endif()
set(Boost_USE_STATIC_LIBS ${BUILD_STATIC_LIBS})
find_package(Boost COMPONENTS program_options)
if(Boost_FOUND)
@@ -139,7 +250,6 @@ if(ENABLE_OSMIUM AND (OSMIUM_INCLUDE_DIR OR EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/m
set(CPPCHECK 0 CACHE INTERNAL "")
if(NOT OSMIUM_INCLUDE_DIR)
if(boost_SOURCE_DIR)
include_directories(BEFORE SYSTEM
${boost_SOURCE_DIR}/libs/any/include
@@ -179,15 +289,39 @@ if(ENABLE_OSMIUM AND (OSMIUM_INCLUDE_DIR OR EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/m
${boost_SOURCE_DIR}/libs/property_map/include
${boost_SOURCE_DIR}/libs/qvm/include
${boost_SOURCE_DIR}/libs/rational/include
${boost_SOURCE_DIR}/libs/smart_ptr/include
${boost_SOURCE_DIR}/libs/tokenizer/include
${boost_SOURCE_DIR}/libs/tti/include
${boost_SOURCE_DIR}/libs/unordered/include
)
endif()
add_subdirectory(mapgen/earth/libosmium)
set(OSMIUM_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/mapgen/earth/libosmium/include)
# TODO: support system installed libosmium
if(NOT FETCH_DEPS)
add_subdirectory(mapgen/earth/libosmium)
set(OSMIUM_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/mapgen/earth/libosmium/include)
else()
FetchContent_Declare(libosmium
GIT_REPOSITORY https://github.com/osmcode/libosmium
GIT_TAG v2.22.0
#SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/contrib/libosmium
SOURCE_SUBDIR cmake
GIT_SUBMODULES_RECURSE OFF
GIT_SHALLOW TRUE
OVERRIDE_FIND_PACKAGE TRUE
USES_TERMINAL_DOWNLOAD TRUE
GIT_PROGRESS TRUE
DOWNLOAD_EXTRACT_TIMESTAMP ON
EXCLUDE_FROM_ALL
)
FetchContent_MakeAvailable(libosmium)
set(OSMIUM_INCLUDE_DIR ${libosmium_SOURCE_DIR}/include ${PROTOZERO_INCLUDE_DIR}/include)
endif()
include_directories(BEFORE SYSTEM ${OSMIUM_INCLUDE_DIR})
endif()
find_package(BZip2)
if(BZIP2_FOUND)
@@ -214,6 +348,9 @@ if(ENABLE_OSMIUM AND (OSMIUM_INCLUDE_DIR OR EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/m
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/mapgen/earth/osmium-tool/cmake/Modules/")
# add_subdirectory(mapgen/earth/osmium-tool)
set(OSMIUM_TOOL_SRC mapgen/earth/osmium-tool/src/)
configure_file(${OSMIUM_TOOL_SRC}/version.cpp.in ${PROJECT_BINARY_DIR}/${OSMIUM_TOOL_SRC}/version.cpp)
add_library(osmium-tool-lib
${PROJECT_BINARY_DIR}/${OSMIUM_TOOL_SRC}/version.cpp
${OSMIUM_TOOL_SRC}command_extract.cpp
@@ -240,7 +377,10 @@ if(ENABLE_OSMIUM AND (OSMIUM_INCLUDE_DIR OR EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/m
${OSMIUM_TOOL_SRC}extract/strategy_simple.cpp
${OSMIUM_TOOL_SRC}extract/strategy_smart.cpp
)
target_link_libraries(osmium-tool-lib PUBLIC Boost::program_options)
target_link_libraries(osmium-tool-lib
PRIVATE ${OSMIUM_LIRARY}
PUBLIC Boost::program_options)
target_include_directories(osmium-tool-lib PRIVATE ${OSMIUM_INCLUDE_DIR})
set(OSMIUM_TOOL_LIBRARY osmium-tool-lib)
set(FREEMINER_COMMON_LIBRARIES ${FREEMINER_COMMON_LIBRARIES} ${OSMIUM_TOOL_LIBRARY})
+1
View File
@@ -105,6 +105,7 @@ MapSector *Map::getSectorNoGenerate(v2s16 p)
return getSectorNoGenerateNoLock(p);
}
/*
MapBlock *Map::getBlockNoCreateNoEx(v3s16 p3d)
{
v2s16 p2d(p3d.X, p3d.Z);
+2
View File
@@ -52,6 +52,8 @@ cd $builddir
[ -d build ] && rm -rf build
cmake_args=(
-DFETCH_DEPS=1
-DCMAKE_TOOLCHAIN_FILE=$toolchain_file
-DCMAKE_INSTALL_PREFIX=/tmp
-DBUILD_CLIENT=1 -DBUILD_SERVER=0
+2
View File
@@ -52,6 +52,8 @@ cd $builddir
[ -d build ] && rm -rf build
cmake_args=(
-DFETCH_DEPS=1
-DCMAKE_TOOLCHAIN_FILE=$toolchain_file
-DCMAKE_INSTALL_PREFIX=/tmp
-DBUILD_CLIENT=1 -DBUILD_SERVER=0