Add unbound for linux

This commit is contained in:
WolverinDEV 2019-10-24 20:03:13 +02:00
parent 86db4530de
commit 5a951b9398
11 changed files with 176 additions and 36 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
.idea/
out/
**/.build_*_*.txt

3
.gitmodules vendored
View File

@ -70,3 +70,6 @@
[submodule "build-helpers"]
path = build-helpers
url = https://github.com/WolverinDEV/build-helpers.git
[submodule "third_party/unbound"]
path = third_party/unbound
url = https://github.com/NLnetLabs/unbound.git

2
client

@ -1 +1 @@
Subproject commit 6def99931862133eaa37b5de6146f97ff3802188
Subproject commit a39f573a5fedb43167ce841f51b30d7d75905135

View File

@ -21,6 +21,7 @@
include(tearoot-helper)
include(FindPackageHandleStandardArgs)
function(resolve_opus)
find_path(opus_ROOT_DIR
NAMES include/opus/opus.h
HINTS ${opus_ROOT_DIR} ${opus_ROOT_DIR}/${BUILD_OUTPUT}
@ -36,18 +37,30 @@ find_library(opus_LIBRARIES_STATIC
HINTS ${opus_ROOT_DIR} ${opus_ROOT_DIR}/lib
)
if(opus_LIBRARIES_STATIC)
add_library(opus::static SHARED IMPORTED)
set_target_properties(opus::static PROPERTIES
IMPORTED_LOCATION ${opus_LIBRARIES_STATIC}
INTERFACE_INCLUDE_DIRECTORIES ${opus_INCLUDE_DIR}
)
endif()
find_library(opus_LIBRARIES_SHARED
NAMES opus.dll libopus.so opus.so
HINTS ${opus_ROOT_DIR} ${opus_ROOT_DIR}/lib
)
if(opus_LIBRARIES_SHARED)
add_library(opus::shared SHARED IMPORTED)
set_target_properties(opus::shared PROPERTIES
IMPORTED_LOCATION ${opus_LIBRARIES_SHARED}
INTERFACE_INCLUDE_DIRECTORIES ${opus_INCLUDE_DIR}
)
endif()
find_package_handle_standard_args(opus DEFAULT_MSG
opus_INCLUDE_DIR
)
endfunction()
resolve_opus()
mark_as_advanced(
opus_ROOT_DIR
opus_INCLUDE_DIR
opus_LIBRARIES_STATIC
opus_LIBRARIES_SHARED
)

67
cmake/Findunbound.cmake Normal file
View File

@ -0,0 +1,67 @@
# - Try to find unbound include dirs and libraries
#
# Usage of this module as follows:
#
# find_package(unbound)
#
# Variables used by this module, they can change the default behaviour and need
# to be set before calling find_package:
#
# unbound_ROOT_DIR Set this variable to the root installation of
# unbound if the module has problems finding the
# proper installation path.
#
# Variables defined by this module:
#
# unbound_FOUND System has unbound, include and library dirs found
# unbound_INCLUDE_DIR The unbound include directories.
# unbound_LIBRARIES_STATIC The unbound libraries.
# unbound_LIBRARIES_SHARED The unbound libraries.
include(tearoot-helper)
include(FindPackageHandleStandardArgs)
function(resolve_unbound)
find_path(unbound_ROOT_DIR
NAMES include/unbound.h include/unbound-event.h
HINTS ${unbound_ROOT_DIR} ${unbound_ROOT_DIR}/${BUILD_OUTPUT}
)
find_path(unbound_INCLUDE_DIR
NAMES include/unbound.h include/unbound-event.h
HINTS ${unbound_ROOT_DIR}
)
find_library(unbound_LIBRARIES_STATIC
NAMES libunbound.a unbound.a unbound.lib
HINTS ${unbound_ROOT_DIR} ${unbound_ROOT_DIR}/lib
)
if(unbound_LIBRARIES_STATIC)
add_library(unbound::static SHARED IMPORTED)
set_target_properties(unbound::static PROPERTIES
IMPORTED_LOCATION ${unbound_LIBRARIES_STATIC}
INTERFACE_INCLUDE_DIRECTORIES ${unbound_INCLUDE_DIR}
)
endif()
find_library(unbound_LIBRARIES_SHARED
NAMES unbound.dll libunbound.so unbound.so
HINTS ${unbound_ROOT_DIR} ${unbound_ROOT_DIR}/lib
)
if(unbound_LIBRARIES_SHARED)
add_library(unbound::shared SHARED IMPORTED)
set_target_properties(unbound::shared PROPERTIES
IMPORTED_LOCATION ${unbound_LIBRARIES_SHARED}
INTERFACE_INCLUDE_DIRECTORIES ${unbound_INCLUDE_DIR}
)
endif()
find_package_handle_standard_args(unbound DEFAULT_MSG
unbound_INCLUDE_DIR
)
endfunction()
resolve_unbound()

View File

@ -27,6 +27,7 @@ SET(PortAudio_ROOT_DIR "${LIBRARY_PATH}/portaudio/${BUILD_OUTPUT}")
SET(fvad_ROOT_DIR "${LIBRARY_PATH}/libfvad/${BUILD_OUTPUT}")
SET(opus_ROOT_DIR "${LIBRARY_PATH}/opus/${BUILD_OUTPUT}")
SET(breakpad_ROOT_DIR "${LIBRARY_PATH}/breakpad/${BUILD_OUTPUT}")
SET(unbound_ROOT_DIR "${LIBRARY_PATH}/unbound/${BUILD_OUTPUT}")
SET(TeaSpeak_SharedLib_ROOT_DIR "${LIBRARY_PATH}/../shared/")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${LIBRARY_PATH}/spdlog/${BUILD_OUTPUT}")

Binary file not shown.

@ -1 +1 @@
Subproject commit 8289fee35e8ba5d6acebe0a217618aca66658c2c
Subproject commit 6f3e034fe58ce3bca3c1c32be6d603a6206c89af

View File

@ -11,12 +11,15 @@ if [[ ${build_os_type} == "linux" ]]; then
cd boringssl/
[[ $? -ne 0 ]] && exit 1
if [[ ! -d lib ]]; then
[[ -d lib ]] && rm -r lib
[[ $? -ne 0 ]] && exit 2
mkdir lib && cd lib
ln -s ../build/ssl/libssl.so .
ln -s ../build/crypto/libcrypto.so .
ln -s ../include/ .
cd ..
fi
cat include/openssl/opensslv.h | grep "OPENSSL_VERSION_NUMBER" &> /dev/null
if [[ $? -ne 0 ]]; then
echo "#if false

51
third_party/build_unbound.sh vendored Executable file
View File

@ -0,0 +1,51 @@
#!/usr/bin/env bash
source ../scripts/build_helper.sh
library_path="unbound"
requires_rebuild ${library_path}
[[ $? -eq 0 ]] && exit 0
generate_build_path "${library_path}"
library_event=`pwd`/libevent/out/${build_os_type}_${build_os_arch}/
library_boringssl=`pwd`/boringssl/lib/
if [[ -d ${build_path} ]]; then
echo "Removing old build directory"
rm -r ${build_path}
fi
mkdir -p ${build_path}
check_err_exit ${library_path} "Failed to create build directory"
cd ${build_path}
check_err_exit ${library_path} "Failed to enter build directory"
if [[ ${build_os_type} == "linux" ]]; then
#Failed to build with BoringSSL, so we using openssl. No ABI stuff should be changed!
# --with-ssl=${library_boringssl}
../../configure --with-libunbound-only --with-libevent=${library_event} --enable-event-api --enable-shared=no --enable-static=yes --with-pthreads --enable-pic --prefix=`pwd`
check_err_exit ${library_path} "Failed to configure build"
make CXXFLAGS="${CXX_FLAGS}" CFLAGS="${C_FLAGS}" ${MAKE_OPTIONS}
check_err_exit ${library_path} "Failed to build"
make install
check_err_exit ${library_path} "Failed to install"
elif [[ ${build_os_type} == "win32" ]]; then
exit 1 #TODO
cmake ../../ -G"Visual Studio 14 2015 Win64" -DOPENSSL_NO_ASM=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=. -DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreaded"
check_err_exit ${library_path} "Failed generate build files!"
cmake --build . --target crypto --config release -j 8
#MSBuild.exe //p:Configuration=Release //p:Platform=x64 crypto/crypto.vcxproj
check_err_exit ${library_path} "Failed to build crytp!"
cmake --build . --target ssl --config release -j 8
#MSBuild.exe //p:Configuration=Release //p:Platform=x64 ssl/ssl.vcxproj
check_err_exit ${library_path} "Failed to build ssl!"
else
echo "Invalid OS!"
exit 1
fi
cd ../../../
set_build_successful ${library_path}

1
third_party/unbound vendored Submodule

@ -0,0 +1 @@
Subproject commit 7dfbcdf276e7a1070978209d2533b3b8cc504f86