summaryrefslogtreecommitdiffstats
path: root/ConfigureChecks.cmake
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2026-02-22 20:41:12 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2026-03-02 23:00:23 +0900
commitb905a0a686e12e30801255b62accb573a8ced687 (patch)
treecb5bcf51aee006bb24dd5921efcea0579897eed9 /ConfigureChecks.cmake
parente8b4f8d8a333edacf8a1dd0b90c8e69ebef6f0c6 (diff)
downloadkvirc-feat/cmake-conversion.tar.gz
kvirc-feat/cmake-conversion.zip
Convert to cmake build systemfeat/cmake-conversion
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'ConfigureChecks.cmake')
-rw-r--r--ConfigureChecks.cmake433
1 files changed, 433 insertions, 0 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
new file mode 100644
index 0000000..3d591ad
--- /dev/null
+++ b/ConfigureChecks.cmake
@@ -0,0 +1,433 @@
+###########################################
+# #
+# Improvements and feedback are welcome #
+# #
+# This file is released under GPL >= 3 #
+# #
+###########################################
+
+
+# required stuff
+find_package( TQt )
+if( WITH_TDE )
+ find_package( TDE )
+endif( )
+
+tde_setup_compiler_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 )
+
+
+##### build with X integration
+
+unset( COMPILE_NO_X )
+unset( COMPILE_NO_X_BELL )
+unset( COMPILE_ON_WINDOWS )
+
+
+##### check for X server
+
+pkg_search_module( X11 x11 )
+if( NOT X11_FOUND )
+ tde_message_fatal( "X11 support is required but not found on your system" )
+endif( )
+
+
+##### build with TDE integration
+
+if( WITH_TDE )
+ set( COMPILE_TDE_SUPPORT 1 )
+ message( "-- Building with TDE support" )
+endif( )
+
+
+##### check for pthread
+
+find_package ( Threads REQUIRED )
+
+
+##### check size of various types
+check_type_size( "int" SIZEOF_INT )
+check_type_size( "long" SIZEOF_LONG_INT )
+check_type_size( "long" SIZEOF_LONG_LONG_INT )
+check_type_size( "short" SIZEOF_SHORT_INT )
+check_type_size( "int" SIZEOF_UNSIGNED_INT )
+check_type_size( "long" SIZEOF_UNSIGNED_LONG_INT )
+check_type_size( "long" SIZEOF_UNSIGNED_LONG_LONG_INT )
+check_type_size( "short" SIZEOF_UNSIGNED_SHORT_INT )
+check_type_size( "void*" SIZEOF_VOID_P )
+
+
+##### check for various functions
+
+check_symbol_exists( inet_aton "arpa/inet.h" HAVE_INET_ATON )
+check_symbol_exists( inet_ntoa "arpa/inet.h" HAVE_INET_NTOA )
+
+check_symbol_exists( putenv "stdlib.h" HAVE_PUTENV )
+check_symbol_exists( setenv "stdlib.h" HAVE_SETENV )
+check_symbol_exists( unsetenv "stdlib.h" HAVE_UNSETENV )
+
+
+##### check for processor type
+
+if( WITH_ix86_ASM )
+ if( CMAKE_SYSTEM_PROCESSOR MATCHES "^i[3-6]86$" )
+ set( COMPILE_ix86_ASM 1 )
+ message( "-- Building with ix86 assembly optimization" )
+ else( )
+ message( "-- Building without ix86 assembly optimization" )
+ endif()
+endif()
+
+
+##### check for aRts
+
+if( WITH_ARTS )
+ pkg_search_module( ARTS arts )
+ if( NOT ARTS_FOUND )
+ tde_message_fatal( "aRts support was requested but not found on your system" )
+ endif( )
+ set( COMPILE_ARTS_SUPPORT 1 )
+ list( APPEND ARTS_LIBRARIES "mcop" )
+ list( APPEND ARTS_LIBRARIES "soundserver_idl" )
+endif( )
+
+
+##### check for audiofile
+
+if( WITH_AUDIOFILE )
+ if( NOT WITH_OSS )
+ tde_message_fatal( "audiofile requires OSS support. Please enabled it with -DWITH_OSS=ON" )
+ endif( )
+ pkg_search_module( AUDIOFILE audiofile )
+ if( NOT AUDIOFILE_FOUND )
+ tde_message_fatal( "audiofile support was requested, but not found on your system" )
+ endif( )
+ set( COMPILE_AUDIOFILE_SUPPORT 1 )
+endif( )
+
+
+##### Optimize for big channels
+
+if( WITH_BIG_CHANNELS )
+ set( AVERAGE_CHANNEL_USERS 349 )
+else( )
+ set( AVERAGE_CHANNEL_USERS 101 )
+endif( )
+message( "-- Using ${AVERAGE_CHANNEL_USERS} as size for channel dict" )
+
+
+##### check for cryptography support
+
+if( WITH_CRYPT )
+ set( COMPILE_CRYPT_SUPPORT 1 )
+ message( "-- Building with cryptology support" )
+else( )
+ message( "-- Building without cryptology support" )
+endif( )
+
+
+##### check for DCC voice sound support
+
+if( WITH_DCC_VOICE )
+ if( NOT WITH_OSS )
+ tde_message_fatal( "DCC voice sound requires OSS support. Please enabled it with -DWITH_OSS=ON" )
+ endif( )
+ message( "-- Building with DCC voice sound support" )
+else( )
+ set( COMPILE_DISABLE_DCC_VOICE 1 )
+ message( "-- Building without DCC voice sound support" )
+endif( )
+
+
+##### check for dynamic label support
+
+if( WITH_DYN_LABELS )
+ check_c_source_compiles("
+ int main(int argc,char ** argv)
+ {
+ int retVal = 10;
+ void * label = &&action4;
+ goto action2;
+ action1:
+ retVal -= 4;
+ label = &&endofcode;
+ goto *label;
+ action2:
+ retVal -= 5;
+ goto *label;
+ action3:
+ retVal += 40;
+ action4:
+ retVal -= 1;
+ label = &&action1;
+ goto *label;
+ endofcode:
+ return retVal;
+ }"
+ DYN_LABELS_SUPPORT
+ )
+ if( NOT DYN_LABELS_SUPPORT )
+ tde_message_fatal( "Dynamic label support was requested but your compiler does not support it" )
+ endif( )
+ set( COMPILE_USE_DYNAMIC_LABELS 1 )
+endif( )
+
+
+##### check for ESound Daemon
+
+if( WITH_ESD )
+ check_library_exists( esd esd_play_file HAVE_ESD )
+ if( NOT HAVE_ESD )
+ tde_message_fatal( "ESound Daemon support was requested but not found on your system" )
+ endif( )
+ set( COMPILE_ESD_SUPPORT 1 )
+ set( ESD_LIBRARIES "esd" )
+endif( )
+
+
+##### check for GSM support
+
+if( WITH_GSM )
+ check_include_file_cxx( gsm.h HAVE_GSM_H )
+ find_library( GSM_LIBRARY gsm )
+ if( NOT HAVE_GSM_H OR GSM_LIBRARY-NOTFOUND )
+ tde_message_fatal( "GSM support was requested but not found on your system" )
+ endif()
+ set( COMPILE_USE_GSM 1 )
+endif( )
+
+
+##### check for info tips support
+
+if( WITH_INFO_TIPS )
+ set( COMPILE_INFO_TIPS 1 )
+ message( "-- Building with info tips support" )
+else( )
+ message( "-- Building without info tips support" )
+endif( )
+
+
+##### check for interface address capabilities
+
+check_c_source_compiles("
+ #include <stdio.h>
+ #include <sys/ioctl.h>
+ #include <net/if.h>
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ #include <string.h>
+
+ int main(int argc,char ** argv)
+ {
+ struct ifreq ifr;
+ int ret;
+ struct sockaddr * sa;
+ ret = IFNAMSIZ;
+ ret = ioctl(ret,SIOCGIFADDR,&ifr);
+ if(ifr.ifr_name != 0)sa = (struct sockaddr *)&(ifr.ifr_addr);
+ return 0;
+ }"
+ IF_ADDR_SUPPORT
+)
+if( IF_ADDR_SUPPORT )
+ message( "-- Building with interface address support" )
+ set( COMPILE_GET_INTERFACE_ADDRESS 1 )
+else( )
+ message( "-- Building without interface address support" )
+endif( )
+
+
+##### check for inter-process communication support
+
+if( WITH_IPC )
+ message( "-- Building with inter-process communication support" )
+else( )
+ set( COMPILE_NO_IPC 1 )
+ message( "-- Building without inter-process communication support" )
+endif( )
+
+
+##### check for IP v6 support
+
+if( WITH_IPV6 )
+ check_c_source_compiles("
+ #ifdef _WIN32
+ #include <winsock2.h>
+ #include <ws2tcpip.h>
+ #else
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <netinet/in.h>
+ #endif
+
+ int main(void) {
+ struct sockaddr_in6 addr;
+ (void)addr;
+ return 0;
+ }"
+ COMPILE_IPV6_SUPPORT )
+ if ( NOT COMPILE_IPV6_SUPPORT )
+ tde_message_fatal( "IP v6 support was requested but your system does not support it" )
+ endif( )
+endif( )
+
+
+##### check for malloc memory check support
+
+if( WITH_MEMORY_CHECKS )
+ set( COMPILE_MEMORY_CHECKS 1 )
+ message( "-- Building with malloc memory check support" )
+else( )
+ message( "-- Building without malloc memory check support" )
+endif( )
+
+
+##### check for memory profiling support
+
+if( WITH_MEMORY_PROFILE )
+ set( COMPILE_MEMORY_PROFILE 1 )
+ message( "-- Building with memory profiling support" )
+else( )
+ message( "-- Building without memory profiling support" )
+endif( )
+
+
+##### check whether to ignore SIGALARM signal
+
+if( WITH_NO_SIGALARM )
+ message( "-- Building ignoring SIGALARM signal" )
+ set( COMPILE_IGNORE_SIGALARM 1 )
+endif( )
+
+
+##### check for OSS support
+
+if( WITH_OSS )
+ check_include_file("linux/soundcard.h" HAVE_LINUX_SOUNDCARD_H )
+ check_include_file("sys/soundcard.h" HAVE_SYS_SOUNDCARD_H )
+ check_include_file("soundcard.h" HAVE_SOUNDCARD_H )
+ if( HAVE_LINUX_SOUNDCARD_H OR HAVE_SYS_SOUNDCARD_H OR HAVE_SOUNDCARD_H )
+ set( COMPILE_OSS_SUPPORT 1 )
+ else( )
+ tde_message_fatal( "OSS support was requested but not found on your system" )
+ endif( )
+endif( )
+
+
+##### check for Perl support
+
+if( WITH_PERL )
+ find_package( PerlLibs )
+ if( NOT PERL_FOUND )
+ tde_message_fatal( "Perl support was requested but Perl was not found on your system" )
+ endif( )
+
+ # check if perl was compiled with MULTIPLICITY option
+ tde_save_and_set( CMAKE_REQUIRED_INCLUDES "${PERL_INCLUDE_PATH}" )
+ tde_save_and_set( CMAKE_REQUIRED_LIBRARIES "${PERL_LIBRARY}" )
+ check_c_source_compiles("
+ #include <EXTERN.h>
+ #include <perl.h>
+ #include <XSUB.h>
+
+ #ifndef MULTIPLICITY
+ #error No MULTIPLICITY power detected!!!
+ #endif
+
+ int main(void) {}
+ "
+ PERL_HAS_MULTIPLICITY
+ )
+ tde_restore( CMAKE_REQUIRED_INCLUDES )
+ tde_restore( CMAKE_REQUIRED_LIBRARIES )
+ if( NOT PERL_HAS_MULTIPLICITY )
+ tde_message_fatal( "Perl MULTIPLICITY support is required but the Perl in your system was compiled without it" )
+ endif()
+
+ set( COMPILE_PERL_SUPPORT 1 )
+endif( )
+
+
+##### check for SSL support
+
+if( WITH_SSL )
+ pkg_search_module( SSL openssl )
+
+ if( NOT SSL_FOUND )
+ check_include_file( openssl/ssl.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( SSL_LIBRARIES "ssl;crypto" CACHE INTERNAL "ssl and crypto libs" FORCE )
+ endif( )
+ endif( )
+
+ if( NOT SSL_FOUND )
+ tde_message_fatal( "SSL support was requested but not found on your system" )
+ endif( )
+ set( COMPILE_SSL_SUPPORT 1 )
+endif( )
+
+
+##### check for system memmove and memcpy usage
+
+if( WITH_SYSTEM_MEMMOVE )
+ set( COMPILE_WITH_SYSTEM_MEMMOVE 1 )
+ message( "-- Using system memmove and memcpy" )
+else( )
+ message( "-- Not using system memmove and memcpy" )
+endif( )
+
+
+##### check for pseudo transparency support
+
+if( WITH_TRANSPARENCY )
+ set( COMPILE_PSEUDO_TRANSPARENCY 1 )
+ message( "-- Building with pseudo transparency support" )
+else( )
+ message( "-- Building without pseudo transparency support" )
+endif( )
+
+
+##### check for XScreenSaver support
+
+if( WITH_XSCREENSAVER )
+ pkg_search_module( XSCREENSAVER xscrnsaver )
+ if( NOT XSCREENSAVER_FOUND )
+ tde_message_fatal( "xscreensaver was requested, but was not found on your system" )
+ endif( )
+ set( COMPILE_XSS_SUPPORT 1 )
+endif( )
+
+
+##### check for zlib
+
+if( WITH_ZLIB )
+ find_package( ZLIB )
+ if( NOT ZLIB_FOUND )
+ tde_message_fatal( "zlib was requested, but was not found on your system" )
+ endif( )
+ set( COMPILE_ZLIB_SUPPORT 1 )
+endif( )