summaryrefslogtreecommitdiffstats
path: root/ConfigureChecks.cmake
blob: aaa2eb93c535c555bb9dad4550bb1ffc456f666e (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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#################################################
#
#  (C) 2010-2011 Serghei Amelian
#  serghei (DOT) amelian (AT) gmail.com
#
#  Improvements and feedback are welcome
#
#  This file is released under GPL >= 2
#
#################################################

tde_setup_architecture_flags( )

##### check for gcc visibility support #########
# FIXME
# This should check for [T]Qt3 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( )


if( BUILD_LIBTDEPIM OR BUILD_KMAIL )
  option( TDEPIM_NEW_DISTRLISTS "Define if you want to use the new distribution lists" ON )
endif( )


if( BUILD_INDEXLIB OR BUILD_KMAIL )

  # check for stl coping with namespace std
  tde_save( CMAKE_CXX_FLAGS )
  string( REGEX REPLACE "-include tqt.h" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" )
  check_cxx_source_compiles("
      #include <iterator>
      struct s : public std::iterator<std::forward_iterator_tag, int> {};
      int main(int, char**) { return 0; } "
      HAVE_STLNAMESPACE )
  tde_restore( CMAKE_CXX_FLAGS )
  if( HAVE_STLNAMESPACE )
    set( STD_NAMESPACE_PREFIX "std::" )
  endif( )

endif( )


if( BUILD_KMOBILE )
  # FIXME not checked because Gentoo don't provide baudboy.h
  check_include_file( "baudboy.h" HAVE_BAUDBOY_H )
endif( )


if( BUILD_KANDY OR (BUILD_KMOBILE AND NOT HAVE_BAUDBOY_H) )
  check_include_file( "lockdev.h" HAVE_LOCKDEV_H )
  if( HAVE_LOCKDEV_H )
    check_library_exists( lockdev dev_unlock "" HAVE_LOCKDEV )
    if( HAVE_LOCKDEV )
      set( LOCKDEV_LIBRARY lockdev CACHE INTERNAL "" FORCE )
    endif( )
  endif( )
endif( )


if( WITH_GNOKII AND (BUILD_KADDRESSBOOK OR BUILD_KMOBILE) )
  pkg_search_module( GNOKII gnokii )
  if( NOT GNOKII_FOUND )
    tde_message_fatal( "gnokii are requested, but was not found on your system" )
  endif( )
endif( )


if( BUILD_LIBTDENETWORK OR BUILD_CERTMANAGER OR BUILD_KMAIL OR BUILD_KADDRESSBOOK OR BUILD_KONTACT )

  if( NOT HAVE_GPGME_0_4_BRANCH )
    message( STATUS "checking for 'gpgme'" )
  endif( )

  # find gpgme-config
  find_program( GPGME_EXECUTABLE NAMES gpgme-config )
  if( NOT GPGME_EXECUTABLE )
    tde_message_fatal( "gpgme-config was NOT found.\n gpgme library is installed?" )
  endif( )

  # find gpg-error-config
  find_program( GPG_ERR_EXECUTABLE NAMES gpg-error-config )
  if( NOT GPG_ERR_EXECUTABLE )
    tde_message_fatal( "gpg-error-config was NOT found.\n gpg-error library is installed?" )
  endif( )

  macro( __run_gpgme_config  __type __var )
    execute_process(
      COMMAND ${GPGME_EXECUTABLE} --${__type}
      OUTPUT_VARIABLE ${__var}
      RESULT_VARIABLE __result
      OUTPUT_STRIP_TRAILING_WHITESPACE )
    if( _result )
      tde_message_fatal( "Unable to run ${GPGME_EXECUTABLE}!\n gpgme library incorrectly installed?\n Path to gpgme-config incorrect?" )
    endif( )
  endmacro( )

  macro( __run_gpgerr_config  __type __var )
    execute_process(
      COMMAND ${GPG_ERR_EXECUTABLE} --${__type}
      OUTPUT_VARIABLE ${__var}
      RESULT_VARIABLE __result
      OUTPUT_STRIP_TRAILING_WHITESPACE )
    if( _result )
      tde_message_fatal( "Unable to run ${GPG_ERR_EXECUTABLE}!\n gpg-error library incorrectly installed?\n Path to gpgme-config are incorrect?" )
    endif( )
  endmacro( )

  __run_gpgme_config( version GPGME_VERSION )
  __run_gpgme_config( cflags GPGME_INCLUDE_DIRS )
  __run_gpgme_config( libs GPGME_LIBRARIES )

  __run_gpgerr_config( version GPGERR_VERSION )
  __run_gpgerr_config( cflags GPGERR_INCLUDE_DIRS )
  __run_gpgerr_config( libs GPGERR_LIBRARIES )

  # cleanup
  if( GPGME_INCLUDE_DIRS )
    string( REGEX REPLACE "(^| )-I" ";" GPGME_INCLUDE_DIRS "${GPGME_INCLUDE_DIRS}" )
  endif( )
  if( GPGME_LIBRARIES )
    string( REGEX REPLACE "(^| )-l" ";" GPGME_LIBRARIES "${GPGME_LIBRARIES}" )
  endif( )
  if( GPGERR_INCLUDE_DIRS )
    string( REGEX REPLACE "(^| )-I" ";" GPGERR_INCLUDE_DIRS "${GPGERR_INCLUDE_DIRS}" )
  endif( )
  if( GPGERR_LIBRARIES )
    string( REGEX REPLACE "(^| )-l" ";" GPGERR_LIBRARIES "${GPGERR_LIBRARIES}" )
  endif( )
  set( GPGME_INCLUDE_DIRS "${GPGME_INCLUDE_DIRS} ${GPGERR_INCLUDE_DIRS}" CACHE INTERNAL "" FORCE )
  set( GPGME_LIBRARIES "${GPGME_LIBRARIES} ${GPGERR_LIBRARIES}" CACHE INTERNAL "" FORCE )
  string( REGEX REPLACE " ;" ";" GPGME_INCLUDE_DIRS "${GPGME_INCLUDE_DIRS}" )
  string( REGEX REPLACE " ;" ";" GPGME_LIBRARIES "${GPGME_LIBRARIES}" )
  set( GPGME_INCLUDE_DIRS "${GPGME_INCLUDE_DIRS}" CACHE INTERNAL "" FORCE )
  set( GPGME_LIBRARIES "${GPGME_LIBRARIES}" CACHE INTERNAL "" FORCE )

  # assuming that all newer system have gpgme >= 0.4
  set( HAVE_GPGME_0_4_BRANCH 1 CACHE INTERNAL "" )

  # NOTE: assume we have largefile support (need for gpgme)
  # FIXME: to be sure, we must check it
  add_definitions( -D_FILE_OFFSET_BITS=64 )

  if( NOT HAVE_GPGME_0_4_BRANCH )
    message( STATUS "  found 'gpgme', version ${GPGME_VERSION}" )
  endif( )
endif( )


if( BUILD_KARM AND WITH_XSCREENSAVER )
  check_library_exists( Xss XScreenSaverQueryInfo "" HAVE_XSSLIB )
  if( HAVE_XSSLIB )
    pkg_search_module( XSS xscrnsaver )
  else( )
    check_library_exists( Xext XScreenSaverQueryInfo "" HAVE_XSSLIB )
    if( HAVE_XSSLIB )
      pkg_search_module( XSS xext )
    endif( )
  endif( )
  check_include_file( X11/extensions/scrnsaver.h HAVE_XSCREENSAVER_H )
  if( HAVE_XSSLIB AND HAVE_XSCREENSAVER_H )
    set( HAVE_LIBXSS 1 )
  else( )
    tde_message_fatal( "xscreensaver is requested, but was not found on your system" )
  endif( )
endif( )


# required stuff
find_package( TQt )
find_package( TDE )