diff options
author | Slávek Banko <slavek.banko@axis.cz> | 2019-01-27 01:03:25 +0100 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2019-02-04 11:40:37 +0100 |
commit | 08fd4a51ed2390a7af803faca81108e0a6a91c0f (patch) | |
tree | cac71c83e27d308f3b2d28f76c4aed57d29f8bf8 | |
parent | 6d8d495faf0a8670d1657ec4dc0fb84f3e3d249a (diff) | |
download | libtdeldap-08fd4a51ed2390a7af803faca81108e0a6a91c0f.tar.gz libtdeldap-08fd4a51ed2390a7af803faca81108e0a6a91c0f.zip |
Update CMake rules
+ Prefer Heimdal during Kerberos detection.
+ Add a check whether the Kerberos is Heimdal.
+ Add a check whether the compiler supports the option -fpermissive.
+ Add an option for the user to specify SYSTEM_CA_STORE_REGENERATE_COMMAND.
+ Set the library version to 1.0.0.
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
-rw-r--r-- | CMakeLists.txt | 5 | ||||
-rw-r--r-- | ConfigureChecks.cmake | 19 | ||||
-rw-r--r-- | src/CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/libtdeldap.cpp | 2 |
4 files changed, 26 insertions, 6 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 5992725..f4aeb28 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,7 +55,8 @@ option( BUILD_TRANSLATIONS "Build translations" ${BUILD_ALL} ) set( KDE_CONFDIR "/etc/trinity" CACHE STRING "TDE Settings Directory" ) set( KRB5_FILE "/etc/krb5.conf" CACHE STRING "Kerberos config file" ) -set( SYSTEM_CA_STORE_CERT_LOCATION "/usr/local/share/ca-certificates/" CACHE STRING "Location of ca-certificates" ) +set( SYSTEM_CA_STORE_CERT_LOCATION "/usr/local/share/ca-certificates/" CACHE STRING "Location of ca-certificates" ) +set( SYSTEM_CA_STORE_REGENERATE_COMMAND "update-ca-certificates" CACHE STRING "Command to update ca-certificates" ) set( CRON_UPDATE_PRIMARY_REALM_CERTIFICATES_OPENLDAP_RELOAD_COMMAND "/etc/init.d/slapd force-reload" CACHE STRING "Cron command to update openLDAP" ) @@ -66,7 +67,7 @@ include( ConfigureChecks.cmake ) ###### global compiler settings -add_definitions( -DHAVE_CONFIG_H -UTQT_NO_ASCII_CAST -fpermissive ) +add_definitions( -DHAVE_CONFIG_H -UTQT_NO_ASCII_CAST ${ENABLE_PERMISSIVE_FLAG} ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TQT_CXX_FLAGS}" ) set( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined" ) diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index e8b007b..3aa03f9 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -39,10 +39,10 @@ endif( NOT HAVE_LIBLDAP ) ##### check for krb5 -pkg_search_module( KRB5 krb5 ) +pkg_search_module( KRB5 heimdal-krb5 krb5 ) if( NOT KRB5_FOUND) if( NOT DEFINED KRB5_CONFIG_EXECUTABLE ) - find_program( KRB5_CONFIG_EXECUTABLE NAMES krb5-config ) + find_program( KRB5_CONFIG_EXECUTABLE NAMES krb5-config.heimdal krb5-config ) if( NOT KRB5_CONFIG_EXECUTABLE ) tde_message_fatal( "krb5 library is required but not found on your system" ) endif( ) @@ -62,3 +62,18 @@ if( NOT KRB5_FOUND) set( KRB5_FOUND 1 ) endif( ) endif( ) + +find_file( KRB5_ASN1_H + NAMES krb5_asn1.h + HINTS ${KRB5_INCLUDE_DIRS} +) +if( "${KRB5_ASN1_H}" STREQUAL "KRB5_ASN1_H-NOTFOUND" ) + tde_message_fatal( "Heimdal Kerberos is required, but was not found on our system" ) +endif( ) + + +# check compiler permissive flag +check_cxx_compiler_flag( -fpermissive HAVE_PERMISSIVE_SUPPORT ) +if( HAVE_PERMISSIVE_SUPPORT ) + set( ENABLE_PERMISSIVE_FLAG "-fpermissive" ) +endif( ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a8db41b..8395331 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -11,6 +11,7 @@ include_directories( link_directories( ${TQT_LIBRARY_DIRS} ${TDE_LIB_DIR} + ${KRB5_LIBRARY_DIRS} ) @@ -30,9 +31,10 @@ tde_add_library( tdeldap SHARED AUTOMOC tdesu krb5 kadm5clnt kadm5srv hdb lber ldap - + + VERSION 1.0.0 DESTINATION ${LIB_INSTALL_DIR} -) +) ##### headers diff --git a/src/libtdeldap.cpp b/src/libtdeldap.cpp index 236f307..0c130bd 100644 --- a/src/libtdeldap.cpp +++ b/src/libtdeldap.cpp @@ -124,7 +124,9 @@ extern "C" { #define SYSTEM_CA_STORE_CERT_LOCATION "/usr/local/share/ca-certificates/" #endif +#ifndef SYSTEM_CA_STORE_REGENERATE_COMMAND #define SYSTEM_CA_STORE_REGENERATE_COMMAND "update-ca-certificates" +#endif #ifndef CRON_UPDATE_PRIMARY_REALM_CERTIFICATES_OPENLDAP_RELOAD_COMMAND #define CRON_UPDATE_PRIMARY_REALM_CERTIFICATES_OPENLDAP_RELOAD_COMMAND "/etc/init.d/slapd force-reload" |