Add detection of required libraries

This commit is contained in:
Dmitry Marakasov 2013-07-30 22:41:51 +04:00
parent 5ac7f3d990
commit 89dd7ed011
5 changed files with 43 additions and 3 deletions

View File

@ -1,11 +1,14 @@
cmake_minimum_required(VERSION 2.6.0)
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
#MinGW prints more warnings for -Wall than gcc does, thus causing build to fail
if(NOT WIN32)
if(("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU") OR ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang"))
message(STATUS "==== ${CMAKE_C_COMPILER_ID} detected - Adding compiler flags ====")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror")
endif()
find_package(SODIUM REQUIRED)
endif()
macro(linkCoreLibraries exe_name)
@ -16,8 +19,9 @@ macro(linkCoreLibraries exe_name)
${CMAKE_SOURCE_DIR}/sodium/lib/libsodium.a
ws2_32)
else()
include_directories(${SODIUM_INCLUDE_DIR})
target_link_libraries(${exe_name} core
sodium)
${SODIUM_LIBRARY})
endif()
endmacro()
@ -25,4 +29,4 @@ cmake_policy(SET CMP0011 NEW)
add_subdirectory(core)
add_subdirectory(testing)
add_subdirectory(other)
add_subdirectory(other)

15
cmake/FindLIBCONFIG.cmake Normal file
View File

@ -0,0 +1,15 @@
# Find LIBCONFIG
#
# LIBCONFIG_INCLUDE_DIR
# LIBCONFIG_LIBRARY
# LIBCONFIG_FOUND
#
FIND_PATH(LIBCONFIG_INCLUDE_DIR NAMES libconfig.h)
FIND_LIBRARY(LIBCONFIG_LIBRARY NAMES config)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBCONFIG DEFAULT_MSG LIBCONFIG_LIBRARY LIBCONFIG_INCLUDE_DIR)
MARK_AS_ADVANCED(LIBCONFIG_INCLUDE_DIR LIBCONFIG_LIBRARY)

15
cmake/FindSODIUM.cmake Normal file
View File

@ -0,0 +1,15 @@
# Find SODIUM
#
# SODIUM_INCLUDE_DIR
# SODIUM_LIBRARY
# SODIUM_FOUND
#
FIND_PATH(SODIUM_INCLUDE_DIR NAMES sodium.h)
FIND_LIBRARY(SODIUM_LIBRARY NAMES sodium)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SODIUM DEFAULT_MSG SODIUM_LIBRARY SODIUM_INCLUDE_DIR)
MARK_AS_ADVANCED(SODIUM_INCLUDE_DIR SODIUM_LIBRARY)

View File

@ -3,6 +3,8 @@ project(core C)
if(WIN32)
include_directories(${CMAKE_HOME_DIRECTORY}/sodium/include/)
else(WIN32)
include_directories(${SODIUM_INCLUDE_DIR})
endif()
set(core_sources

View File

@ -3,10 +3,14 @@ project(DHT_bootstrap_daemon C)
set(exe_name DHT_bootstrap_daemon)
find_package(LIBCONFIG REQUIRED)
include_directories(${LIBCONFIG_INCLUDE_DIR})
add_executable(${exe_name}
DHT_bootstrap_daemon.c)
target_link_libraries(${exe_name}
config)
${LIBCONFIG_LIBRARY})
linkCoreLibraries(${exe_name})