summaryrefslogtreecommitdiffstats
path: root/ConfigureChecks.cmake
blob: 7e7bdea4c169bd085de22b61241fed892e3f180e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#################################################
#
#  (C) 2010 Serghei Amelian
#  serghei (DOT) amelian (AT) gmail.com
#
#  Improvements and feedback are welcome
#
#  This file is released under GPL >= 2
#
#################################################

# required stuff
find_package( TQt )
find_package( TDE )

tde_setup_compiler_flags( )

include(TestBigEndian)
test_big_endian(WORDS_BIGENDIAN)


##### check for gcc visibility support

if( WITH_GCC_VISIBILITY )
  tde_setup_gcc_visibility( )
endif( WITH_GCC_VISIBILITY )


##### 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         )


##### 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
    OUTPUT_STRIP_TRAILING_WHITESPACE
)


##### check for libxml-2.0

pkg_search_module( LIBXML libxml-2.0>=2.6 )

if( NOT LIBXML_FOUND )
    tde_message_fatal( "libxml-2.0 version >= 2.6 is required but was not found on your system" )
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 )


##### check for Threads

find_package( Threads )

tde_save( CMAKE_REQUIRED_INCLUDES )
    set( CMAKE_REQUIRED_INCLUDES ${LIBXML_INCLUDE_DIRS} )
    set( LIBXML_DOCB_ENABLED 1 CACHE BOOL "Enable docbook input files" )
    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 )