toxcore/cmake/Dependencies.cmake
iphydf cb69b8a986
Build tests on appveyor, the MSVC build.
Tests are not actually ran on appveyor for now, since they all fault for
some reason. For now, we just build them. Also, some tests are disabled
on msvc entirely, because they don't even compile. We'll need to look
into those, later. They are disabled using `MSVC_DONT_BUILD`.
2017-06-05 13:45:20 +00:00

106 lines
3.1 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}")
else()
message(FATAL_ERROR "check libraries not found")
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()