summaryrefslogtreecommitdiffstats
path: root/ConfigureChecks.cmake
blob: 86d98b126fa48424d7db910972923805de0d2e6e (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
###########################################
#                                         #
#  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 )


##### check for sword library

pkg_search_module( SWORD sword>=1.7 )
if( NOT SWORD_FOUND )
  tde_message_fatal( "sword library is required but not found on your system" )
endif()

check_cxx_source_compiles("
  #include <signal.h>
  #include <${SWORD_INCLUDE_DIRS}/sysdata.h>
  int main() {}
  "
  SWORD_WITHOUT_SANE_USERSPACE_TYPES
)
if( NOT SWORD_WITHOUT_SANE_USERSPACE_TYPES )
  check_cxx_source_compiles("
    #define __SANE_USERSPACE_TYPES__
    #include <signal.h>
    #include <${SWORD_INCLUDE_DIRS}/sysdata.h>
    int main() {}
    "
    SWORD_WITH_SANE_USERSPACE_TYPES
  )
  if( NOT SWORD_WITH_SANE_USERSPACE_TYPES )
    tde_message_fatal( "sword library cannot be used in any way" )
  endif()
  add_definitions( "-D__SANE_USERSPACE_TYPES__" )
endif()


##### check for clucdene library

pkg_search_module( CLUCENE libclucene-core )
if( NOT CLUCENE_FOUND )
  tde_message_fatal( "clucene library is required but not found on your system" )
endif()
if( NOT CLUCENE_VERSION VERSION_LESS "2.0" )
  set( CLUCENE_V2 1 )
  tde_save_and_set( CMAKE_REQUIRED_INCLUDES "${CLUCENE_INCLUDE_DIRS}" )
  tde_save_and_set( CMAKE_REQUIRED_LIBRARIES "${CLUCENE_LIBRARIES}" )
  check_cxx_source_compiles("
    #include <CLucene.h>

    extern size_t lucene_wcstoutf8 (char *,  const wchar_t *, size_t maxslen);

    int main()
    {
      lucene_wcstoutf8(NULL, NULL, 0);
    }
    "
    BUILD_WITH_CLUCENE_CORE
  )
  if( NOT BUILD_WITH_CLUCENE_CORE )
    set( CMAKE_REQUIRED_LIBRARIES "${CLUCENE_LIBRARIES};clucene-shared" )
    check_cxx_source_compiles("
      #include <CLucene.h>

      extern size_t lucene_wcstoutf8 (char *,  const wchar_t *, size_t maxslen);

      int main()
      {
        lucene_wcstoutf8(NULL, NULL, 0);
      }
      "
      BUILD_WITH_CLUCENE_SHARED
    )
    if( NOT BUILD_WITH_CLUCENE_SHARED )
      tde_message_fatal( "clucene library was found, but building with clucene is not successful" )
    else()
      set( CLUCENE_LIBRARIES "${CLUCENE_LIBRARIES};clucene-shared" CACHE INTERNAL "clucene libraries" FORCE )
    endif()
  endif()
  tde_restore( CMAKE_REQUIRED_INCLUDES )
  tde_restore( CMAKE_REQUIRED_LIBRARIES )
endif()


##### check for boost library

find_package( Boost )

if( NOT Boost_FOUND )
    tde_message_fatal( "Boost is required, but was not found on your system" )
endif()