toxcore/cmake/Dependencies.cmake

104 lines
3.0 KiB
CMake

###############################################################################
#
# :: For UNIX-like systems that have pkg-config.
#
###############################################################################
include(ModulePackage)
find_package(Threads REQUIRED)
find_library(NCURSES_LIBRARIES ncurses )
find_library(UTIL_LIBRARIES util )
find_library(RT_LIBRARIES rt )
# For toxcore.
pkg_use_module(LIBSODIUM libsodium )
# For toxav.
pkg_use_module(OPUS opus )
pkg_use_module(VPX vpx )
# For tox-bootstrapd.
pkg_use_module(LIBCONFIG libconfig )
# For auto tests.
pkg_use_module(CHECK check )
# For tox-spectest.
pkg_use_module(MSGPACK msgpack )
# For av_test.
pkg_use_module(OPENCV opencv )
pkg_use_module(PORTAUDIO portaudio-2.0)
pkg_use_module(SNDFILE sndfile )
###############################################################################
#
# :: For MSVC Windows builds.
#
# These require specific installation paths of dependencies:
# - libsodium in libsodium/Win32/Release/v140/static
# - pthreads in pthreads-win32/Pre-built.2
# - check in %PROGRAMFILES%/check
#
###############################################################################
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
# libsodium
# ---------
find_library(LIBSODIUM_LIBRARIES
NAMES sodium libsodium
PATHS
"libsodium/Win32/Release/v140/static"
"libsodium/x64/Release/v140/static"
)
if(LIBSODIUM_LIBRARIES)
include_directories("libsodium/include")
set(LIBSODIUM_FOUND TRUE)
add_definitions(-DSODIUM_STATIC)
message("libsodium: ${LIBSODIUM_LIBRARIES}")
else()
message(FATAL_ERROR "libsodium libraries not found")
endif()
# check
# -----
#
# We look for the check and compat (containing clock_gettime and other POSIX
# functions not present on Windows) libraries in Program Files, since that is
# the default location where cmake installs its packages.
find_library(LIBCHECK_LIBRARIES
NAMES check libcheck
PATHS "$ENV{PROGRAMFILES}/check/lib"
)
find_library(LIBCOMPAT_LIBRARIES
NAMES compat libcompat
PATHS "$ENV{PROGRAMFILES}/check/lib"
)
if(LIBCHECK_LIBRARIES AND LIBCOMPAT_LIBRARIES)
include_directories("$ENV{PROGRAMFILES}/check/include")
set(CHECK_FOUND TRUE)
set(CHECK_LIBRARIES ${LIBCHECK_LIBRARIES} ${LIBCOMPAT_LIBRARIES})
message("check: ${CHECK_LIBRARIES}")
endif()
# pthreads
# --------
if(CMAKE_USE_WIN32_THREADS_INIT)
find_library(CMAKE_THREAD_LIBS_INIT
NAMES pthreadVC2
PATHS
"pthreads-win32/Pre-built.2/lib/x86"
"pthreads-win32/Pre-built.2/lib/x64"
)
if(CMAKE_THREAD_LIBS_INIT)
include_directories("pthreads-win32/Pre-built.2/include")
add_definitions(-DHAVE_STRUCT_TIMESPEC)
message("libpthreads: ${CMAKE_THREAD_LIBS_INIT}")
else()
message(FATAL_ERROR "libpthreads libraries not found")
endif()
endif()
endif()