From 2bb4a347cdfbee92334d5340ba640c8680a81d9e Mon Sep 17 00:00:00 2001 From: Florent Le Coz Date: Thu, 13 Nov 2014 06:22:17 +0100 Subject: Improve dependencies checks in the build process - Rename all Find*.cmake files to uppercase, to make things more consistent, and fix some issues with them (notably the REQUIRED flag) - Rename SYSTEMDDAEMON to SYSTEMD and only use the libsystemd instead of libsystemd-daemon because it's deprecated for a long time now - Provide a WITH_* and WITHOUT_* switch for all optional dependencies - Document things in the INSTALL file --- cmake/Modules/FindBOTAN.cmake | 35 ++++++++++++++++++++ cmake/Modules/FindBotan.cmake | 35 -------------------- cmake/Modules/FindICONV.cmake | 60 +++++++++++++++++++++++++++++++++++ cmake/Modules/FindIconv.cmake | 60 ----------------------------------- cmake/Modules/FindLIBIDN.cmake | 41 ++++++++++++++++++++++++ cmake/Modules/FindLIBUUID.cmake | 41 ++++++++++++++++++++++++ cmake/Modules/FindLibidn.cmake | 41 ------------------------ cmake/Modules/FindLibuuid.cmake | 41 ------------------------ cmake/Modules/FindSYSTEMD.cmake | 39 +++++++++++++++++++++++ cmake/Modules/FindSystemdDaemon.cmake | 39 ----------------------- 10 files changed, 216 insertions(+), 216 deletions(-) create mode 100644 cmake/Modules/FindBOTAN.cmake delete mode 100644 cmake/Modules/FindBotan.cmake create mode 100644 cmake/Modules/FindICONV.cmake delete mode 100644 cmake/Modules/FindIconv.cmake create mode 100644 cmake/Modules/FindLIBIDN.cmake create mode 100644 cmake/Modules/FindLIBUUID.cmake delete mode 100644 cmake/Modules/FindLibidn.cmake delete mode 100644 cmake/Modules/FindLibuuid.cmake create mode 100644 cmake/Modules/FindSYSTEMD.cmake delete mode 100644 cmake/Modules/FindSystemdDaemon.cmake (limited to 'cmake/Modules') diff --git a/cmake/Modules/FindBOTAN.cmake b/cmake/Modules/FindBOTAN.cmake new file mode 100644 index 0000000..a12bd35 --- /dev/null +++ b/cmake/Modules/FindBOTAN.cmake @@ -0,0 +1,35 @@ +# - Find botan +# Find the botan cryptographic library +# +# This module defines the following variables: +# BOTAN_FOUND - True if library and include directory are found +# If set to TRUE, the following are also defined: +# BOTAN_INCLUDE_DIRS - The directory where to find the header file +# BOTAN_LIBRARIES - Where to find the library file +# +# For conveniance, these variables are also set. They have the same values +# than the variables above. The user can thus choose his/her prefered way +# to write them. +# BOTAN_LIBRARY +# BOTAN_INCLUDE_DIR +# +# This file is in the public domain + +find_path(BOTAN_INCLUDE_DIRS NAMES botan/botan.h + PATH_SUFFIXES botan-1.11 + DOC "The botan include directory") + +find_library(BOTAN_LIBRARIES NAMES botan botan-1.11 + DOC "The botan library") + +# Use some standard module to handle the QUIETLY and REQUIRED arguments, and +# set BOTAN_FOUND to TRUE if these two variables are set. +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(BOTAN REQUIRED_VARS BOTAN_LIBRARIES BOTAN_INCLUDE_DIRS) + +if(BOTAN_FOUND) + set(BOTAN_LIBRARY ${BOTAN_LIBRARIES}) + set(BOTAN_INCLUDE_DIR ${BOTAN_INCLUDE_DIRS}) +endif() + +mark_as_advanced(BOTAN_INCLUDE_DIRS BOTAN_LIBRARIES) diff --git a/cmake/Modules/FindBotan.cmake b/cmake/Modules/FindBotan.cmake deleted file mode 100644 index aa8f58c..0000000 --- a/cmake/Modules/FindBotan.cmake +++ /dev/null @@ -1,35 +0,0 @@ -# - Find botan -# Find the botan cryptographic library -# -# This module defines the following variables: -# BOTAN_FOUND - True if library and include directory are found -# If set to TRUE, the following are also defined: -# BOTAN_INCLUDE_DIRS - The directory where to find the header file -# BOTAN_LIBRARIES - Where to find the library file -# -# For conveniance, these variables are also set. They have the same values -# than the variables above. The user can thus choose his/her prefered way -# to write them. -# BOTAN_LIBRARY -# BOTAN_INCLUDE_DIR -# -# This file is in the public domain - -find_path(BOTAN_INCLUDE_DIRS NAMES botan/botan.h - PATH_SUFFIXES botan-1.11 - DOC "The botan include directory") - -find_library(BOTAN_LIBRARIES NAMES botan botan-1.11 - DOC "The botan library") - -# Use some standard module to handle the QUIETLY and REQUIRED arguments, and -# set BOTAN_FOUND to TRUE if these two variables are set. -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Botan REQUIRED_VARS BOTAN_LIBRARIES BOTAN_INCLUDE_DIRS) - -if(BOTAN_FOUND) - set(BOTAN_LIBRARY ${BOTAN_LIBRARIES}) - set(BOTAN_INCLUDE_DIR ${BOTAN_INCLUDE_DIRS}) -endif() - -mark_as_advanced(BOTAN_INCLUDE_DIRS BOTAN_LIBRARIES) diff --git a/cmake/Modules/FindICONV.cmake b/cmake/Modules/FindICONV.cmake new file mode 100644 index 0000000..7ca173f --- /dev/null +++ b/cmake/Modules/FindICONV.cmake @@ -0,0 +1,60 @@ +# - Find iconv +# Find the iconv (character set conversion) library +# +# This module defines the following variables: +# ICONV_FOUND - True if library and include directory are found +# If set to TRUE, the following are also defined: +# ICONV_INCLUDE_DIRS - The directory where to find the header file +# ICONV_LIBRARIES - Where to find the library file +# ICONV_SECOND_ARGUMENT_IS_CONST - The second argument for iconv() is const +# +# For conveniance, these variables are also set. They have the same values +# than the variables above. The user can thus choose his/her prefered way +# to write them. +# ICONV_LIBRARY +# ICONV_INCLUDE_DIR +# +# This file is in the public domain + +find_path(ICONV_INCLUDE_DIRS NAMES iconv.h + DOC "The iconv include directory") + +find_library(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c + DOC "The iconv library") + +# Use some standard module to handle the QUIETLY and REQUIRED arguments, and +# set ICONV_FOUND to TRUE if these two variables are set. +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Iconv REQUIRED_VARS ICONV_LIBRARIES ICONV_INCLUDE_DIRS) + +# Check if the prototype is +# size_t iconv(iconv_t cd, char** inbuf, size_t* inbytesleft, +# char** outbuf, size_t* outbytesleft); +# or +# size_t iconv (iconv_t cd, const char** inbuf, size_t* inbytesleft, +# char** outbuf, size_t* outbytesleft); +if(ICONV_FOUND) + include(CheckCXXSourceCompiles) + + # Set the parameters needed to compile the following code. + set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIRS}) + set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES}) + + check_cxx_source_compiles(" + #include + int main(){ + iconv_t conv = 0; + const char* in = 0; + size_t ilen = 0; + char* out = 0; + size_t olen = 0; + iconv(conv, &in, &ilen, &out, &olen); + return 0;}" + ICONV_SECOND_ARGUMENT_IS_CONST) + +# Compatibility for all the ways of writing these variables + set(ICONV_LIBRARY ${ICONV_LIBRARIES}) + set(ICONV_INCLUDE_DIR ${ICONV_INCLUDE_DIRS}) +endif() + +mark_as_advanced(ICONV_INCLUDE_DIRS ICONV_LIBRARIES ICONV_SECOND_ARGUMENT_IS_CONST) \ No newline at end of file diff --git a/cmake/Modules/FindIconv.cmake b/cmake/Modules/FindIconv.cmake deleted file mode 100644 index 7ca173f..0000000 --- a/cmake/Modules/FindIconv.cmake +++ /dev/null @@ -1,60 +0,0 @@ -# - Find iconv -# Find the iconv (character set conversion) library -# -# This module defines the following variables: -# ICONV_FOUND - True if library and include directory are found -# If set to TRUE, the following are also defined: -# ICONV_INCLUDE_DIRS - The directory where to find the header file -# ICONV_LIBRARIES - Where to find the library file -# ICONV_SECOND_ARGUMENT_IS_CONST - The second argument for iconv() is const -# -# For conveniance, these variables are also set. They have the same values -# than the variables above. The user can thus choose his/her prefered way -# to write them. -# ICONV_LIBRARY -# ICONV_INCLUDE_DIR -# -# This file is in the public domain - -find_path(ICONV_INCLUDE_DIRS NAMES iconv.h - DOC "The iconv include directory") - -find_library(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c - DOC "The iconv library") - -# Use some standard module to handle the QUIETLY and REQUIRED arguments, and -# set ICONV_FOUND to TRUE if these two variables are set. -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Iconv REQUIRED_VARS ICONV_LIBRARIES ICONV_INCLUDE_DIRS) - -# Check if the prototype is -# size_t iconv(iconv_t cd, char** inbuf, size_t* inbytesleft, -# char** outbuf, size_t* outbytesleft); -# or -# size_t iconv (iconv_t cd, const char** inbuf, size_t* inbytesleft, -# char** outbuf, size_t* outbytesleft); -if(ICONV_FOUND) - include(CheckCXXSourceCompiles) - - # Set the parameters needed to compile the following code. - set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIRS}) - set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES}) - - check_cxx_source_compiles(" - #include - int main(){ - iconv_t conv = 0; - const char* in = 0; - size_t ilen = 0; - char* out = 0; - size_t olen = 0; - iconv(conv, &in, &ilen, &out, &olen); - return 0;}" - ICONV_SECOND_ARGUMENT_IS_CONST) - -# Compatibility for all the ways of writing these variables - set(ICONV_LIBRARY ${ICONV_LIBRARIES}) - set(ICONV_INCLUDE_DIR ${ICONV_INCLUDE_DIRS}) -endif() - -mark_as_advanced(ICONV_INCLUDE_DIRS ICONV_LIBRARIES ICONV_SECOND_ARGUMENT_IS_CONST) \ No newline at end of file diff --git a/cmake/Modules/FindLIBIDN.cmake b/cmake/Modules/FindLIBIDN.cmake new file mode 100644 index 0000000..611a6a8 --- /dev/null +++ b/cmake/Modules/FindLIBIDN.cmake @@ -0,0 +1,41 @@ +# - Find libidn +# Find the libidn library, and more particularly the stringprep header. +# +# This module defines the following variables: +# LIBIDN_FOUND - True if library and include directory are found +# If set to TRUE, the following are also defined: +# LIBIDN_INCLUDE_DIRS - The directory where to find the header file +# LIBIDN_LIBRARIES - Where to find the library file +# +# For conveniance, these variables are also set. They have the same values +# than the variables above. The user can thus choose his/her prefered way +# to write them. +# LIBIDN_INCLUDE_DIR +# LIBIDN_LIBRARY +# +# This file is in the public domain + +include(FindPkgConfig) +pkg_check_modules(LIBIDN libidn) + +if(NOT LIBIDN_FOUND) + find_path(LIBIDN_INCLUDE_DIRS NAMES stringprep.h + DOC "The libidn include directory") + + # The library containing the stringprep module is libidn + find_library(LIBIDN_LIBRARIES NAMES idn + DOC "The libidn library") + + # Use some standard module to handle the QUIETLY and REQUIRED arguments, and + # set LIBIDN_FOUND to TRUE if these two variables are set. + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(LIBIDN REQUIRED_VARS LIBIDN_LIBRARIES LIBIDN_INCLUDE_DIRS) + + # Compatibility for all the ways of writing these variables + if(LIBIDN_FOUND) + set(LIBIDN_INCLUDE_DIR ${LIBIDN_INCLUDE_DIRS}) + set(LIBIDN_LIBRARY ${LIBIDN_LIBRARIES}) + endif() +endif() + +mark_as_advanced(LIBIDN_INCLUDE_DIRS LIBIDN_LIBRARIES) \ No newline at end of file diff --git a/cmake/Modules/FindLIBUUID.cmake b/cmake/Modules/FindLIBUUID.cmake new file mode 100644 index 0000000..25b330b --- /dev/null +++ b/cmake/Modules/FindLIBUUID.cmake @@ -0,0 +1,41 @@ +# - Find libuuid +# Find the libuuid library +# +# This module defines the following variables: +# LIBUUID_FOUND - True if library and include directory are found +# If set to TRUE, the following are also defined: +# LIBUUID_INCLUDE_DIRS - The directory where to find the header file +# LIBUUID_LIBRARIES - Where to find the library file +# +# For conveniance, these variables are also set. They have the same values +# than the variables above. The user can thus choose his/her prefered way +# to write them. +# LIBUUID_INCLUDE_DIR +# LIBUUID_LIBRARY +# +# This file is in the public domain + +include(FindPkgConfig) +pkg_check_modules(LIBUUID uuid) + +if(NOT LIBUUID_FOUND) + find_path(LIBUUID_INCLUDE_DIRS NAMES uuid.h + PATH uuid + DOC "The libuuid include directory") + + find_library(LIBUUID_LIBRARIES NAMES uuid + DOC "The libuuid library") + + # Use some standard module to handle the QUIETLY and REQUIRED arguments, and + # set LIBUUID_FOUND to TRUE if these two variables are set. + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(LIBUUID REQUIRED_VARS LIBUUID_LIBRARIES LIBUUID_INCLUDE_DIRS) + + # Compatibility for all the ways of writing these variables + if(LIBUUID_FOUND) + set(LIBUUID_INCLUDE_DIR ${LIBUUID_INCLUDE_DIRS}) + set(LIBUUID_LIBRARY ${LIBUUID_LIBRARIES}) + endif() +endif() + +mark_as_advanced(LIBUUID_INCLUDE_DIRS LIBUUID_LIBRARIES) diff --git a/cmake/Modules/FindLibidn.cmake b/cmake/Modules/FindLibidn.cmake deleted file mode 100644 index 611a6a8..0000000 --- a/cmake/Modules/FindLibidn.cmake +++ /dev/null @@ -1,41 +0,0 @@ -# - Find libidn -# Find the libidn library, and more particularly the stringprep header. -# -# This module defines the following variables: -# LIBIDN_FOUND - True if library and include directory are found -# If set to TRUE, the following are also defined: -# LIBIDN_INCLUDE_DIRS - The directory where to find the header file -# LIBIDN_LIBRARIES - Where to find the library file -# -# For conveniance, these variables are also set. They have the same values -# than the variables above. The user can thus choose his/her prefered way -# to write them. -# LIBIDN_INCLUDE_DIR -# LIBIDN_LIBRARY -# -# This file is in the public domain - -include(FindPkgConfig) -pkg_check_modules(LIBIDN libidn) - -if(NOT LIBIDN_FOUND) - find_path(LIBIDN_INCLUDE_DIRS NAMES stringprep.h - DOC "The libidn include directory") - - # The library containing the stringprep module is libidn - find_library(LIBIDN_LIBRARIES NAMES idn - DOC "The libidn library") - - # Use some standard module to handle the QUIETLY and REQUIRED arguments, and - # set LIBIDN_FOUND to TRUE if these two variables are set. - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(LIBIDN REQUIRED_VARS LIBIDN_LIBRARIES LIBIDN_INCLUDE_DIRS) - - # Compatibility for all the ways of writing these variables - if(LIBIDN_FOUND) - set(LIBIDN_INCLUDE_DIR ${LIBIDN_INCLUDE_DIRS}) - set(LIBIDN_LIBRARY ${LIBIDN_LIBRARIES}) - endif() -endif() - -mark_as_advanced(LIBIDN_INCLUDE_DIRS LIBIDN_LIBRARIES) \ No newline at end of file diff --git a/cmake/Modules/FindLibuuid.cmake b/cmake/Modules/FindLibuuid.cmake deleted file mode 100644 index 25b330b..0000000 --- a/cmake/Modules/FindLibuuid.cmake +++ /dev/null @@ -1,41 +0,0 @@ -# - Find libuuid -# Find the libuuid library -# -# This module defines the following variables: -# LIBUUID_FOUND - True if library and include directory are found -# If set to TRUE, the following are also defined: -# LIBUUID_INCLUDE_DIRS - The directory where to find the header file -# LIBUUID_LIBRARIES - Where to find the library file -# -# For conveniance, these variables are also set. They have the same values -# than the variables above. The user can thus choose his/her prefered way -# to write them. -# LIBUUID_INCLUDE_DIR -# LIBUUID_LIBRARY -# -# This file is in the public domain - -include(FindPkgConfig) -pkg_check_modules(LIBUUID uuid) - -if(NOT LIBUUID_FOUND) - find_path(LIBUUID_INCLUDE_DIRS NAMES uuid.h - PATH uuid - DOC "The libuuid include directory") - - find_library(LIBUUID_LIBRARIES NAMES uuid - DOC "The libuuid library") - - # Use some standard module to handle the QUIETLY and REQUIRED arguments, and - # set LIBUUID_FOUND to TRUE if these two variables are set. - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(LIBUUID REQUIRED_VARS LIBUUID_LIBRARIES LIBUUID_INCLUDE_DIRS) - - # Compatibility for all the ways of writing these variables - if(LIBUUID_FOUND) - set(LIBUUID_INCLUDE_DIR ${LIBUUID_INCLUDE_DIRS}) - set(LIBUUID_LIBRARY ${LIBUUID_LIBRARIES}) - endif() -endif() - -mark_as_advanced(LIBUUID_INCLUDE_DIRS LIBUUID_LIBRARIES) diff --git a/cmake/Modules/FindSYSTEMD.cmake b/cmake/Modules/FindSYSTEMD.cmake new file mode 100644 index 0000000..c7decde --- /dev/null +++ b/cmake/Modules/FindSYSTEMD.cmake @@ -0,0 +1,39 @@ +# - Find SystemdDaemon +# Find the systemd daemon library +# +# This module defines the following variables: +# SYSTEMD_FOUND - True if library and include directory are found +# If set to TRUE, the following are also defined: +# SYSTEMD_INCLUDE_DIRS - The directory where to find the header file +# SYSTEMD_LIBRARIES - Where to find the library file +# +# For conveniance, these variables are also set. They have the same values +# than the variables above. The user can thus choose his/her prefered way +# to write them. +# SYSTEMD_LIBRARY +# SYSTEMD_INCLUDE_DIR +# +# This file is in the public domain + +include(FindPkgConfig) +pkg_check_modules(SYSTEMD libsystemd) + +if(NOT SYSTEMD_FOUND) + find_path(SYSTEMD_INCLUDE_DIRS NAMES systemd/sd-daemon.h + DOC "The Systemd include directory") + + find_library(SYSTEMD_LIBRARIES NAMES systemd + DOC "The Systemd library") + + # Use some standard module to handle the QUIETLY and REQUIRED arguments, and + # set SYSTEMD_FOUND to TRUE if these two variables are set. + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(SYSTEMD REQUIRED_VARS SYSTEMD_LIBRARIES SYSTEMD_INCLUDE_DIRS) + + if(SYSTEMD_FOUND) + set(SYSTEMD_LIBRARY ${SYSTEMD_LIBRARIES}) + set(SYSTEMD_INCLUDE_DIR ${SYSTEMD_INCLUDE_DIRS}) + endif() +endif() + +mark_as_advanced(SYSTEMD_INCLUDE_DIRS SYSTEMD_LIBRARIES) \ No newline at end of file diff --git a/cmake/Modules/FindSystemdDaemon.cmake b/cmake/Modules/FindSystemdDaemon.cmake deleted file mode 100644 index 9492bf2..0000000 --- a/cmake/Modules/FindSystemdDaemon.cmake +++ /dev/null @@ -1,39 +0,0 @@ -# - Find SystemdDaemon -# Find the systemd daemon library -# -# This module defines the following variables: -# SYSTEMDDAEMON_FOUND - True if library and include directory are found -# If set to TRUE, the following are also defined: -# SYSTEMDDAEMON_INCLUDE_DIRS - The directory where to find the header file -# SYSTEMDDAEMON_LIBRARIES - Where to find the library file -# -# For conveniance, these variables are also set. They have the same values -# than the variables above. The user can thus choose his/her prefered way -# to write them. -# SYSTEMDDAEMON_LIBRARY -# SYSTEMDDAEMON_INCLUDE_DIR -# -# This file is in the public domain - -include(FindPkgConfig) -pkg_check_modules(SYSTEMDDAEMON libsystemd-daemon) - -if(NOT SYSTEMDDAEMON_FOUND) - find_path(SYSTEMDDAEMON_INCLUDE_DIRS NAMES systemd/sd-daemon.h - DOC "The Systemd Daemon include directory") - - find_library(SYSTEMDDAEMON_LIBRARIES NAMES systemd-daemon systemd - DOC "The Systemd Daemon library") - - # Use some standard module to handle the QUIETLY and REQUIRED arguments, and - # set SYSTEMDDAEMON_FOUND to TRUE if these two variables are set. - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(SYSTEMDDAEMON REQUIRED_VARS SYSTEMDDAEMON_LIBRARIES SYSTEMDDAEMON_INCLUDE_DIRS) - - if(SYSTEMDDAEMON_FOUND) - set(SYSTEMDDAEMON_LIBRARY ${SYSTEMDDAEMON_LIBRARIES}) - set(SYSTEMDDAEMON_INCLUDE_DIR ${SYSTEMDDAEMON_INCLUDE_DIRS}) - endif() -endif() - -mark_as_advanced(SYSTEMDDAEMON_INCLUDE_DIRS SYSTEMDDAEMON_LIBRARIES) \ No newline at end of file -- cgit v1.2.3