summaryrefslogtreecommitdiffstats
path: root/ConfigureChecks.cmake
blob: 2bb25d99e6352e80020a7db4cb6b6039c2090ddd (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
#################################################
#
#  (C) 2010-2011 Serghei Amelian
#  serghei (DOT) amelian (AT) gmail.com
#
#  Improvements and feedback are welcome
#
#  This file is released under GPL >= 2
#
#################################################

##### setup architecture flags ##################

tde_setup_architecture_flags( )

include(TestBigEndian)
test_big_endian(WORDS_BIGENDIAN)

tde_setup_largefiles( )


macro( qt_message )
  message( STATUS "${ARGN}" )
endmacro( )

set( QT_VERSION "3" )

# qt prefix directory
if( NOT DEFINED QT_PREFIX_DIR )
  if( NOT $ENV{TQTDIR} STREQUAL "" )
    set( QT_PREFIX_DIR "$ENV{TQTDIR}" )
    qt_message( "  QT_PREFIX_DIR is set to TQTDIR" )
  else( )
    set( QT_PREFIX_DIR "/usr" )
  endif( )
endif( )
qt_message( "  QT_PREFIX_DIR : ${QT_PREFIX_DIR}" )


# qt headers
if( NOT DEFINED TQT_INCLUDE_DIR )
  if( QT_PREFIX_DIR STREQUAL "/usr" )
    if( EXISTS "${QT_PREFIX_DIR}/include/tqt${QT_VERSION}" )
      set( TQT_INCLUDE_DIR "${QT_PREFIX_DIR}/include/tqt${QT_VERSION}" )
    else( )
      set( TQT_INCLUDE_DIR "${QT_PREFIX_DIR}/include/qt${QT_VERSION}" )
    endif( )
  else( )
    set( TQT_INCLUDE_DIR "${QT_PREFIX_DIR}/include" )
  endif( )
endif( )
qt_message( "  TQT_INCLUDE_DIR: ${TQT_INCLUDE_DIR}" )


# qt library path
if( NOT DEFINED TQT_LIBRARY_DIR )
  set( TQT_LIBRARY_DIR "${QT_PREFIX_DIR}/lib${LIB_SUFFIX}" )
endif( )
qt_message( "  TQT_LIBRARY_DIR: ${TQT_LIBRARY_DIR}" )


# qt library name
if( NOT DEFINED TQT_LIBRARIES )
  set( TQT_LIBRARIES qt-mt )
endif( )


# qt tools
if( NOT DEFINED QT_BINARY_DIR )
  set( QT_BINARY_DIR "${QT_PREFIX_DIR}/bin" )
endif( )
qt_message( "  QT_BINARY_DIR : ${QT_BINARY_DIR}" )


# find uic (only for Qt3)
if( DEFINED UIC_EXECUTABLE )
	if( IS_DIRECTORY "${UIC_EXECUTABLE}" OR NOT EXISTS "${UIC_EXECUTABLE}" )
		tde_message_fatal( "uic was NOT found.\n Please make sure TQt is correctly installed (1)." )
	endif( )
else( )
	find_program( UIC_EXECUTABLE NAMES tquic uic-qt3 uic HINTS "${QT_BINARY_DIR}" )
	if( NOT UIC_EXECUTABLE )
		tde_message_fatal( "uic was NOT found.\n Please make sure TQt is correctly installed (2)." )
	endif( )
endif( )
qt_message( "  UIC_EXECUTABLE: ${UIC_EXECUTABLE}" )


# check if TQt3 is usable
tde_save( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )

set( TQT_LIBRARIES tqt-mt )
set( CMAKE_REQUIRED_INCLUDES ${TQT_INCLUDE_DIR} )
set( CMAKE_REQUIRED_LIBRARIES -L${TQT_LIBRARY_DIR} ${TQT_LIBRARIES} )

qt_message( "Looking for native TQt3..." )
check_cxx_source_compiles("
	#include <ntqapplication.h>
	int main(int argc, char **argv) { TQApplication app(argc, argv); return 0; } "
	HAVE_USABLE_QT)
if( NOT HAVE_USABLE_QT )
  tde_message_fatal( "Unable to build a simple TQt${QT_VERSION} test." )
endif( )

tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )


##### check for OpenGL

execute_process(
	COMMAND ${PKG_CONFIG_EXECUTABLE} ${TQT_LIBRARIES} --variable=qt_config
	OUTPUT_VARIABLE TQT_CONF_VARS
	OUTPUT_STRIP_TRAILING_WHITESPACE
)

message(STATUS "List of qt_config variables: ${TQT_CONF_VARS}")

string( REGEX MATCH " opengl " OPENGL_ENABLED " ${TQT_CONF_VARS} " )

if( OPENGL_ENABLED )

check_include_file( "OpenGL/glu.h" HAVE_GLU_OPENGL )
check_include_file( "GL/glu.h"     HAVE_GLU_GL     )

tde_save( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
set( CMAKE_REQUIRED_INCLUDES ${TQT_INCLUDE_DIR} )
set( CMAKE_REQUIRED_LIBRARIES -L${TQT_LIBRARY_DIR} ${TQT_LIBRARIES} )

check_cxx_source_compiles("
#include <cstdlib>
#include <tqgl.h>
int main( int, char** )
{
	(void) new TQGLWidget( (TQWidget*)0, \"qgl\" ) ;
	return EXIT_SUCCESS ;
}"
TQGLWIDGET )

tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )

if( ( HAVE_GLU_OPENGL OR HAVE_GLU_GL ) AND TQGLWIDGET )
    set( HAVE_OPENGL 1 )
 else()
    tde_message_fatal( "OpenGL has been requested, but neither the OpenGL headers or tqt3 with OpenGL support have been found on your system" )
endif()
endif( OPENGL_ENABLED )

##### check for Inputmethod
string( REGEX MATCH " inputmethod " INPUTMETHOD_ENABLED " ${TQT_CONF_VARS} " )