diff options
Diffstat (limited to 'ConfigureChecks.cmake')
-rw-r--r-- | ConfigureChecks.cmake | 239 |
1 files changed, 203 insertions, 36 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index b7d6dc10..6b936f76 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -9,43 +9,210 @@ # ################################################# -##### check for gcc visibility support ######### -# FIXME -# This should check for [T]Qt3 visibility support +# required stuff +find_package( TQt ) +find_package( TDE ) + +tde_setup_architecture_flags( ) + +include(TestBigEndian) +test_big_endian(WORDS_BIGENDIAN) + + +##### check for gcc visibility support if( WITH_GCC_VISIBILITY ) - if( NOT UNIX ) - tde_message_fatal(FATAL_ERROR "\ngcc visibility support was requested, but your system is not *NIX" ) - endif( NOT UNIX ) - set( __KDE_HAVE_GCC_VISIBILITY 1 ) - set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden") - set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden") -endif( ) - - -# libxml-2.0 -if( BUILD_QUANTA ) - pkg_search_module( LIBXML libxml-2.0 ) - if( LIBXML_FOUND ) - if( ${LIBXML_VERSION} VERSION_LESS "2.6" ) - tde_message_fatal( "libxml-2.0 version must be at least 2.6" ) - endif( ) - else( ) - tde_message_fatal( "libxml-2.0 are required, but not found on your system" ) - endif( ) -endif( ) - - -# libxslt -if( BUILD_QUANTA ) - pkg_search_module( LIBXSLT libxslt ) - if( NOT LIBXSLT_FOUND ) - tde_message_fatal( "libxslt are required, but not found on your system" ) - endif( ) -endif( ) + tde_setup_gcc_visibility( ) +endif( WITH_GCC_VISIBILITY ) -# required stuff -find_package( Qt ) -find_package( TQt ) -find_package( TDE ) +##### find X11 + +find_package( X11) + + +##### check for headers + +check_include_file( unistd.h HAVE_UNISTD_H ) +check_include_file( string.h HAVE_STRING_H ) +check_include_file( sys/time.h HAVE_SYS_TIME_H ) +check_include_file( sys/stat.h HAVE_SYS_STAT_H ) +check_include_file( stdlib.h HAVE_STDLIB_H ) +check_include_file( stdarg.h HAVE_STDARG_H ) +check_include_file( time.h HAVE_TIME_H ) +check_include_file( locale.h LOCALE_PREFIX ) +check_include_file( pthread.h USE_XSLDBG_AS_THREAD ) + + +##### check for functions + +check_function_exists( gettimeofday HAVE_GETTIMEOFDAY ) +check_function_exists( usleep HAVE_USLEEP ) +check_function_exists( stat HAVE_STAT ) + + +if( (BUILD_QUANTA) OR (BUILD_KXSLDBG) OR (BUILD_KLINKSTATUS) ) + +##### check for icu's c++ standard + + pkg_search_module( ICU_UC icu-uc ) + tde_execute_process( + COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=CXXFLAGS icu-uc + OUTPUT_VARIABLE ICU_CXXFLAGS + ) + + +##### check for libxml-2.0 + + pkg_search_module( LIBXML libxml-2.0 ) + + if( NOT LIBXML_FOUND ) + tde_message_fatal( "libxml-2.0 is required but was not found on your system" ) + elseif( ${LIBXML_VERSION} VERSION_LESS "2.6" ) + tde_message_fatal( "libxml-2.0 version must be, at least, up to 2.6" ) + else() + set( LIBXML_2_5 1 ) + tde_save( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES ) + set( CMAKE_REQUIRED_INCLUDES ${LIBXML_INCLUDE_DIRS} ) + set( CMAKE_REQUIRED_LIBRARIES ${LIBXML_LIBRARIES} ) + check_function_exists( xmlSetEntityReferenceFunc HAVE_INCLUDE_FIX ) + tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES ) + endif( NOT LIBXML_FOUND ) + + +##### check for libxslt + + pkg_search_module( LIBXSLT libxslt ) + + if( NOT LIBXSLT_FOUND ) + tde_message_fatal( "libxslt are required, but not found on your system" ) + endif( NOT LIBXSLT_FOUND ) + + + if( BUILD_QUANTA ) + if( WITH_QUANTA_CVSSERVICE ) + tde_import( cervisia ) + find_file( CVSSERVICE_HEADERS NAMES repository_stub.h cvsservice_stub.h cvsjob_stub.h ) + if( CVSSERVICE_HEADERS ) + set( ENABLE_CVSSERVICE 1 ) + set( CVSSERVICE_LIBRARIES "cvsservice-static;cvsservice-shared" CACHE INTERNAL "tdesdk and embedded cvssercice libs" FORCE ) + else() + tde_message_fatal( "csv service (cervisia) is required for quanta but not found on your system." ) + endif() + endif() + + find_program( WGET_EXECUTABLE wget ) + if( NOT WGET_EXECUTABLE ) + message( STATUS "wget (download utility) installation is advised since some quanta's features will make use of It." ) + endif() + + find_program( TIDY_EXECUTABLE NAMES tidy tidy5 ) + if( NOT TIDY_EXECUTABLE ) + message( STATUS "tidy (HTML/XML syntax checker) installation is advised since some quanta's features will make use of It." ) + endif() + + find_program( TDEFILEREPLACE_EXECUTABLE tdefilereplace ) + if( NOT TDEFILEREPLACE_EXECUTABLE ) + message( STATUS "tdefilereplace (Batch search and replace tool - tdeutils) installation is advised since some quanta's features will make use of It." ) + endif() + + find_program( KOMPARE_EXECUTABLE kompare ) + if( NOT KOMPARE_EXECUTABLE ) + message( STATUS "kompare (diff utility - tdesdk) installation is advised since some quanta's features will make use of It." ) + endif() + endif( BUILD_QUANTA ) + + + if( BUILD_KXSLDBG ) + find_package( Threads ) + + tde_save( CMAKE_REQUIRED_INCLUDES ) + set( CMAKE_REQUIRED_INCLUDES ${LIBXML_INCLUDE_DIRS} ) + check_include_file( "libxml/DOCBparser.h" LIBXML_DOCB_ENABLED ) + check_include_file( "libxml/xinclude.h" LIBXML_XINCLUDE_ENABLED ) + tde_restore( CMAKE_REQUIRED_INCLUDES ) + + +##### check for libexslt + + pkg_search_module( LIBEXSLT libexslt ) + if( NOT LIBEXSLT_FOUND ) + tde_message_fatal( "libexlt is required but was not found on your system" ) + endif() + + +##### check for readline + + find_path( READLINE_INCLUDE_DIR + NAMES "readline/readline.h" "readline/history.h" + HINTS "/usr/include" "/usr/local/include" + DOC "Looking for readline header's path" + ) + find_library( READLINE_LIBRARY + NAMES readline history + DOC "Looking for readline libraries" + ) + + if( (READLINE_INCLUDE_DIR) AND ( READLINE_LIBRARY ) ) + set( HAVE_READLINE 1 ) + set( HAVE_HISTORY 1 ) + set( READLINE_LIBRARIES ${READLINE_LIBRARY} ) + set( READLINE_INCLUDE_DIRS ${READLINE_INCLUDE_DIR} ) + else() + tde_message_fatal( "readline is required but was not found on your system" ) + endif() + +##### look for Curses + + tde_save_and_set( CMAKE_REQUIRED_INCLUDES ${READLINE_INCLUDE_DIRS} ) + tde_save_and_set( CMAKE_REQUIRED_LIBRARIES ${READLINE_LIBRARIES} ) + check_c_source_compiles(" + #include <readline/readline.h> + int main(void) + { + char *result = readline(\"prompt\"); + return 0; + }" + BUILD_READLINE_STANDALONE + ) + if( NOT BUILD_READLINE_STANDALONE ) + find_package( Curses ) + if( NOT CURSES_FOUND ) + tde_message_fatal( "(n)curses is required but was not found on your system" ) + endif() + list( APPEND READLINE_LIBRARIES ${CURSES_LIBRARIES} ) + endif() + tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES ) + endif( BUILD_KXSLDBG ) +endif( (BUILD_QUANTA) OR (BUILD_KXSLDBG) OR (BUILD_KLINKSTATUS) ) + + +##### option other editors + +if( WITH_OTHER_EDITORS ) + set( ENABLE_EDITORS 1 ) +endif( WITH_OTHER_EDITORS ) + + +##### define TQTDOCDIR + +if( BUILD_KOMMANDER ) + if( NOT DEFINED TQTDOCDIR ) + find_path( TQT_DOCDIR ntqsql.html + PATHS + ${TQTDIR}/doc/html $ENV{TQTDIR}/doc/html + /opt/trinity/share/tqt3/doc/html + /usr/share/doc/packages/tqt3/html + /usr/lib/tqt3/doc + /usr/lib/tqt3/doc/html + /usr/doc/tqt3/html + /usr/doc/tqt3 + /usr/share/doc/tqt3-doc + /usr/share/tqt3/doc/html + /usr/X11R6/share/doc/tqt/html + ) + if( TQT_DOCDIR ) + set( TQTDOCDIR "${TQT_DOCDIR}" ) + endif() + endif() +endif( BUILD_KOMMANDER ) |