summaryrefslogtreecommitdiffstats
path: root/ConfigureChecks.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'ConfigureChecks.cmake')
-rw-r--r--ConfigureChecks.cmake148
1 files changed, 148 insertions, 0 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
new file mode 100644
index 0000000..acda08b
--- /dev/null
+++ b/ConfigureChecks.cmake
@@ -0,0 +1,148 @@
+###########################################
+# #
+# Improvements and feedback are welcome #
+# #
+# This file is released under GPL >= 3 #
+# #
+###########################################
+
+# required stuff
+find_package( TQt )
+find_package( TDE )
+
+tde_setup_architecture_flags( )
+
+include(TestBigEndian)
+test_big_endian(WORDS_BIGENDIAN)
+
+tde_setup_largefiles( )
+
+
+##### check for gcc visibility support
+
+if( WITH_GCC_VISIBILITY )
+ tde_setup_gcc_visibility( )
+endif( WITH_GCC_VISIBILITY )
+
+
+##### X11 headers path
+
+find_package( X11 )
+
+
+##### check for headers
+
+check_include_file( stdint.h HAVE_STDINT_H )
+check_include_file( inttypes.h HAVE_INTTYPES_H )
+
+
+##### check for GnuTLS or OpenSSL( default )
+
+if( WITH_GNUTLS )
+
+ pkg_search_module( GNUTLS gnutls )
+ find_program( LIBGCRYPT_CONFIG libgcrypt-config )
+
+ if( NOT GNUTLS_FOUND )
+ tde_message_fatal( "GnuTLS has been requested but was not found on your system" )
+ endif( NOT GNUTLS_FOUND )
+
+ if( LIBGCRYPT_CONFIG )
+ message( STATUS "Found libgcrypt executable: ${LIBGCRYPT_CONFIG}" )
+ else()
+ tde_message_fatal( "libgcrypt is required but was not found on your system" )
+ endif()
+
+ macro( _libgcrypt_config __type __var )
+ execute_process(
+ COMMAND ${LIBGCRYPT_CONFIG} --${__type}
+ OUTPUT_VARIABLE ${__var}
+ RESULT_VARIABLE __result
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ if( __result )
+ tde_message_fatal( "Unable to run ${LIBGCRYPT_CONFIG}!" )
+ endif()
+ endmacro()
+
+ _libgcrypt_config( libs LIBGCRYPT_LIBRARIES )
+ _libgcrypt_config( cflags LIBGCRYPT_INCLUDE_DIRS )
+
+ if( LIBGCRYPT_LIBRARIES )
+ string( REGEX REPLACE "(^| +)-l" ";" LIBGCRYPT_LIBRARIES "${LIBGCRYPT_LIBRARIES}" )
+ set( LIBGCRYPT_LIBRARIES "${LIBGCRYPT_LIBRARIES}" CACHE INTERNAL "" FORCE )
+ message( STATUS "Libgcrypt libraries: ${LIBGCRYPT_LIBRARIES} ")
+ elseif( LIBGCRYPT_INCLUDE_DIRS )
+ string( REGEX REPLACE "(^| +)-I" ";" LIBGCRYPT_INCLUDE_DIRS "${LIBGCRYPT_INCLUDE_DIRS}" )
+ set( LIBGCRYPT_INCLUDE_DIRS "${LIBGCRYPT_INCLUDE_DIRS}" CACHE INTERNAL "" FORCE )
+ message( STATUS "Libgcrypt includes: ${LIBGCRYPT_INCLUDE_DIRS} ")
+ endif()
+ else()
+
+##### check for OpenSSL
+
+ find_package( OpenSSL )
+
+ if( NOT OPENSSL_FOUND )
+ check_include_file( openssl/err.h HAVE_OPENSSL_H )
+ check_library_exists( ssl OPENSSL_init_ssl "" HAVE_LIBSSL_11 )
+ check_library_exists( crypto EVP_EncryptInit_ex "" HAVE_LIBCRYPTO )
+
+ if( NOT HAVE_LIBSSL_11 )
+ check_library_exists( ssl SSL_library_init "" HAVE_LIBSSL )
+ endif()
+
+ if( HAVE_OPENSSL_H AND HAVE_LIBCRYPTO AND (HAVE_LIBSSL_11 OR HAVE_LIBSSL) )
+ set( SSL_FOUND 1 CACHE INTERNAL "" FORCE )
+ find_file( OPENSSLV_H openssl/opensslv.h )
+ file( STRINGS "${OPENSSLV_H}" SSL_VERSION REGEX "#[ \t]*define[ \t]*OPENSSL_VERSION_TEXT" )
+ string( REGEX REPLACE "# *define[ \t]*OPENSSL_VERSION_TEXT[ \t]*\"[^0-9 ]* *([^ ]*).*" "\\1" SSL_VERSION "${SSL_VERSION}" )
+ set( SSL_VERSION "${SSL_VERSION}" CACHE INTERNAL "" FORCE )
+ message( STATUS "Found OpenSSL: version ${SSL_VERSION}" )
+ set( OPENSSL_LIBRARIES "ssl;crypto" CACHE INTERNAL "ssl and crypto libs" FORCE )
+ endif()
+ endif( NOT OPENSSL_FOUND )
+
+ if( NOT OPENSSL_FOUND )
+ tde_message_fatal( "OpenSSL support is required but OpenSSL was not found on your system" )
+ else()
+ set( USE_OPENSSL 1 )
+ endif( NOT OPENSSL_FOUND )
+endif( WITH_GNUTLS )
+
+
+##### Embedded GeoIP
+
+if( WITH_EMBEDDED_GEOIP )
+ find_package( ZLIB )
+
+ if( NOT ZLIB_FOUND )
+ tde_message_fatal( "Zlib is required but was not found on your system" )
+ endif()
+
+ set( GEOIP_LIBRARIES geoip-static )
+ set( GEOIPDATADIR ${SHARE_INSTALL_PREFIX}/${PROJECT_NAME}/geoip )
+ message( STATUS "GEOIPDATADIR location: ${GEOIPDATADIR}" )
+ else()
+ pkg_search_module( GEOIP geoip )
+
+ if( GEOIP_FOUND )
+ set( EXTERNAL_GEOIP 1 )
+ else()
+ tde_message_fatal( "GeoIP is required but was not found on your system" )
+ endif( GEOIP_FOUND )
+endif( WITH_EMBEDDED_GEOIP )
+
+
+##### LIVECD use
+
+if( WITH_LIVECD_SUPPORT )
+ set( LIVECD 1 )
+endif()
+
+
+##### Failsafe support
+
+if( WITH_FAILSAFE )
+ set( USE_FAILSAFE 1 )
+endif()