~csiro-asl/csiro-asl-ros-drivers/trunk

« back to all changes in this revision

Viewing changes to csiro_asl_drivers/novatelINS/WriteConfigH.cmake

  • Committer: Nick Hillier
  • Date: 2011-08-03 03:16:26 UTC
  • Revision ID: nick.hillier@csiro.au-20110803031626-3ekp14jxlbda9bzf
Initial add of ROS wrappers for novatel INS around the Orca driver.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# File courtesy of the gearbox library, included here to make things easier.
 
2
 
 
3
###########################################################
 
4
#                                                         #
 
5
# Look for low-level C headers, write defines to config.h #
 
6
#                                                         #
 
7
###########################################################
 
8
 
 
9
include( ${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake )
 
10
include( ${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake )
 
11
 
 
12
set( CONFIG_H src/config.h )
 
13
 
 
14
# Only write config.h once
 
15
if( WROTE_CONFIG_H_${PROJECT_NAME} )
 
16
  message( STATUS "Not writing config.h -- wrote it previously" )
 
17
else( WROTE_CONFIG_H_${PROJECT_NAME} )  
 
18
  message( STATUS "Writing config.h for ${PROJECT_NAME}" )
 
19
  set( WROTE_CONFIG_H_${PROJECT_NAME} TRUE CACHE INTERNAL "Wrote config.h for ${PROJECT_NAME}" )
 
20
 
 
21
  file( WRITE ${CONFIG_H} "/* config.h.  Generated by CMakeLists.txt */\n\n" )
 
22
 
 
23
  if( WIN32 )
 
24
    
 
25
    #
 
26
    # define some stuff to make MSVC look a bit more like gcc
 
27
    #
 
28
 
 
29
    # define 'uint' to 'unsigned int' for windows
 
30
    file( APPEND ${CONFIG_H} "#ifndef uint\n" )
 
31
    file( APPEND ${CONFIG_H} "#define uint unsigned int\n" )
 
32
    file( APPEND ${CONFIG_H} "#endif\n\n" )
 
33
 
 
34
    file( APPEND ${CONFIG_H} "// MSVC compiler requires this symbol before exposing the (apparently)\n" )
 
35
    file( APPEND ${CONFIG_H} "// non-standard symbols M_PI, etc...\n" )
 
36
    file( APPEND ${CONFIG_H} "#define _USE_MATH_DEFINES\n\n" )
 
37
 
 
38
    file( APPEND ${CONFIG_H} "// Just in case the above line didn't fix it...\n" )
 
39
    file( APPEND ${CONFIG_H} "#ifndef M_PI\n" )
 
40
    file( APPEND ${CONFIG_H} "#define M_PI 3.14159265358979323846\n" )
 
41
    file( APPEND ${CONFIG_H} "#endif\n\n" )
 
42
 
 
43
  else( WIN32 )
 
44
 
 
45
    #
 
46
    # AlexB: I think all these low-level guys are 'nix-specific.
 
47
    #        Don't write them for win32.
 
48
    #
 
49
 
 
50
    check_include_file( termio.h HAVE_TERMIO_H )
 
51
    if( HAVE_TERMIO_H )
 
52
      set( VAL 1 )
 
53
    else( HAVE_TERMIO_H )
 
54
      set( VAL 0 )
 
55
    endif( HAVE_TERMIO_H )
 
56
    file( APPEND ${CONFIG_H} "#define HAVE_TERMIO_H ${VAL}\n\n" )
 
57
 
 
58
    check_include_file( linux/input.h HAVE_LINUX_INPUT_H )
 
59
    if( HAVE_LINUX_INPUT_H )
 
60
      set( VAL 1 )
 
61
    else( HAVE_LINUX_INPUT_H )
 
62
      set( VAL 0 )
 
63
    endif( HAVE_LINUX_INPUT_H )
 
64
    file( APPEND ${CONFIG_H} "#define HAVE_LINUX_INPUT_H ${VAL}\n\n" )
 
65
 
 
66
    check_include_file( string.h HAVE_STRING_H )
 
67
    if( HAVE_STRING_H )
 
68
      set( VAL 1 )
 
69
    else( HAVE_STRING_H )
 
70
      set( VAL 0 )
 
71
    endif( HAVE_STRING_H )
 
72
    file( APPEND ${CONFIG_H} "#define HAVE_STRING_H ${VAL}\n\n" )
 
73
 
 
74
    check_include_file( stdlib.h HAVE_STDLIB_H )
 
75
    if( HAVE_STDLIB_H )
 
76
      set( VAL 1 )
 
77
    else( HAVE_STDLIB_H )
 
78
      set( VAL 0 )
 
79
    endif( HAVE_STDLIB_H )
 
80
    file( APPEND ${CONFIG_H} "#define HAVE_STDLIB_H ${VAL}\n\n" )
 
81
 
 
82
    check_include_file( unistd.h HAVE_UNISTD_H )
 
83
    if( HAVE_UNISTD_H )
 
84
      set( VAL 1 )
 
85
    else( HAVE_UNISTD_H )
 
86
      set( VAL 0 )
 
87
    endif( HAVE_UNISTD_H )
 
88
    file( APPEND ${CONFIG_H} "#define HAVE_UNISTD_H ${VAL}\n\n" )
 
89
 
 
90
    check_include_file( sys/types.h HAVE_SYS_TYPES_H )
 
91
    if( HAVE_SYS_TYPES_H )
 
92
      set( VAL 1 )
 
93
    else( HAVE_SYS_TYPES_H )
 
94
      set( VAL 0 )
 
95
    endif( HAVE_SYS_TYPES_H )
 
96
    file( APPEND ${CONFIG_H} "#define HAVE_SYS_TYPES_H ${VAL}\n\n" )
 
97
 
 
98
    check_include_file( sys/stat.h HAVE_SYS_STAT_H )
 
99
    if( HAVE_SYS_STAT_H )
 
100
      set( VAL 1 )
 
101
    else( HAVE_SYS_STAT_H )
 
102
      set( VAL 0 )
 
103
    endif( HAVE_SYS_STAT_H )
 
104
    file( APPEND ${CONFIG_H} "#define HAVE_SYS_STAT_H ${VAL}\n\n" )
 
105
 
 
106
    check_include_file( pthread.h HAVE_PTHREAD_H )
 
107
    if( HAVE_PTHREAD_H )
 
108
      set( VAL 1 )
 
109
    else( HAVE_PTHREAD_H )
 
110
      set( VAL 0 )
 
111
    endif( HAVE_PTHREAD_H )
 
112
    file( APPEND ${CONFIG_H} "#define HAVE_PTHREAD_H ${VAL}\n\n" )
 
113
 
 
114
    check_include_file( sys/ioctl.h HAVE_SYS_IOCTL_H )
 
115
    if( HAVE_SYS_IOCTL_H )
 
116
      set( VAL 1 )
 
117
    else( HAVE_SYS_IOCTL_H )
 
118
      set( VAL 0 )
 
119
    endif( HAVE_SYS_IOCTL_H )
 
120
    file( APPEND ${CONFIG_H} "#define HAVE_SYS_IOCTL_H ${VAL}\n\n" )
 
121
 
 
122
    check_include_file( fcntl.h HAVE_FCNTL_H )
 
123
    if( HAVE_FCNTL_H )
 
124
      set( VAL 1 )
 
125
    else( HAVE_FCNTL_H )
 
126
      set( VAL 0 )
 
127
    endif( HAVE_FCNTL_H )
 
128
    file( APPEND ${CONFIG_H} "#define HAVE_FCNTL_H ${VAL}\n\n" )
 
129
 
 
130
    check_include_file( time.h HAVE_TIME_H )
 
131
    if( HAVE_TIME_H )
 
132
      set( VAL 1 )
 
133
    else( HAVE_TIME_H )
 
134
      set( VAL 0 )
 
135
    endif( HAVE_TIME_H )
 
136
    file( APPEND ${CONFIG_H} "#define HAVE_TIME_H ${VAL}\n\n" )
 
137
 
 
138
    check_include_file( errno.h HAVE_ERRNO_H )
 
139
    if( HAVE_ERRNO_H )
 
140
      set( VAL 1 )
 
141
    else( HAVE_ERRNO_H )
 
142
      set( VAL 0 )
 
143
    endif( HAVE_ERRNO_H )
 
144
    file( APPEND ${CONFIG_H} "#define HAVE_ERRNO_H ${VAL}\n\n" )
 
145
 
 
146
    check_include_file( zlib.h HAVE_ZLIB_H )
 
147
    if( HAVE_ZLIB_H )
 
148
      set( VAL 1 )
 
149
    else( HAVE_ZLIB_H )
 
150
      set( VAL 0 )
 
151
    endif( HAVE_ZLIB_H )
 
152
    file( APPEND ${CONFIG_H} "#define HAVE_ZLIB_H ${VAL}\n\n" )
 
153
 
 
154
    check_include_file( sys/filio.h HAVE_FILIO_H )
 
155
    if( HAVE_FILIO_H )
 
156
      set( VAL 1 )
 
157
    else( HAVE_FILIO_H )
 
158
      set( VAL 0 )
 
159
    endif( HAVE_FILIO_H )
 
160
    file( APPEND ${CONFIG_H} "#define HAVE_FILIO_H ${VAL}\n\n" )
 
161
 
 
162
    check_function_exists( strnlen HAVE_STRNLEN )
 
163
    if( HAVE_STRNLEN )
 
164
      set( VAL 1 )
 
165
    else( HAVE_STRNLEN )
 
166
      set( VAL 0 )
 
167
    endif( HAVE_STRNLEN )
 
168
    file( APPEND ${CONFIG_H} "#define HAVE_STRNLEN ${VAL}\n\n" )
 
169
 
 
170
  endif( WIN32 )
 
171
 
 
172
endif( WROTE_CONFIG_H_${PROJECT_NAME} )