~jan-kneschke/mysql-proxy/packet-tracking-assertions

« back to all changes in this revision

Viewing changes to trunk/src/CMakeLists.txt

  • Committer: Kay Roepke
  • Author(s): Jan Kneschke
  • Date: 2008-01-23 22:00:28 UTC
  • Revision ID: kay@mysql.com-20080123220028-hq2xqb69apa75fnx
first round on mysql-shell based on the proxy code

this is mostly a verification if the proxy-code is flexible enough to handle 
all three scenarios of: client, server and forwarding (proxy)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# $%BEGINLICENSE%$
2
 
# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
3
 
#
4
 
# This program is free software; you can redistribute it and/or
5
 
# modify it under the terms of the GNU General Public License as
6
 
# published by the Free Software Foundation; version 2 of the
7
 
# License.
8
 
#
9
 
# This program is distributed in the hope that it will be useful,
10
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
 
# GNU General Public License for more details.
13
 
#
14
 
# You should have received a copy of the GNU General Public License
15
 
# along with this program; if not, write to the Free Software
16
 
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17
 
# 02110-1301  USA
18
 
# $%ENDLICENSE%$
19
 
 
20
 
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}) # for config.h
21
 
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
22
 
 
23
 
INCLUDE_DIRECTORIES(${GLIB_INCLUDE_DIRS})
24
 
LINK_DIRECTORIES(${GLIB_LIBRARY_DIRS})
25
 
 
26
 
INCLUDE_DIRECTORIES(${MYSQL_INCLUDE_DIRS})
27
 
LINK_DIRECTORIES(${MYSQL_LIBRARY_DIRS})
28
 
 
29
 
INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIRS})
30
 
LINK_DIRECTORIES(${LUA_LIBRARY_DIRS})
31
 
 
32
 
INCLUDE_DIRECTORIES(${EVENT_INCLUDE_DIRS})
33
 
LINK_DIRECTORIES(${EVENT_LIBRARY_DIRS})
34
 
 
35
 
STRING(REPLACE "." "" SHARED_LIBRARY_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
36
 
ADD_DEFINITIONS(-DSHARED_LIBRARY_SUFFIX="${SHARED_LIBRARY_SUFFIX}")
37
 
 
38
 
SET(chassis_sources 
39
 
        lua-load-factory.c
40
 
        lua-scope.c
41
 
        chassis-plugin.c
42
 
        chassis-event-thread.c
43
 
        chassis-log.c
44
 
        chassis-mainloop.c
45
 
        chassis-shutdown-hooks.c
46
 
        chassis-keyfile.c
47
 
        chassis-path.c
48
 
        chassis-filemode.c
49
 
        chassis-limits.c
50
 
        chassis-stats.c
51
 
        chassis-frontend.c
52
 
        chassis-options.c
53
 
        chassis-unix-daemon.c
54
 
        chassis-win32-service.c
55
 
)
56
 
 
57
 
SET(timing_sources
58
 
        chassis-timings.c
59
 
        chassis-gtimeval.c
60
 
        my_rdtsc.c
61
 
)
62
 
 
63
 
SET(glibext_sources
64
 
        glib-ext.c
65
 
        glib-ext-ref.c
66
 
)
67
 
 
68
 
SET(proxy_sources 
69
 
        network-mysqld.c 
70
 
        network-mysqld-lua.c 
71
 
        network-mysqld-proto.c 
72
 
        network-mysqld-binlog.c 
73
 
        network-mysqld-packet.c 
74
 
        network-mysqld-masterinfo.c 
75
 
        network-conn-pool.c  
76
 
        network-conn-pool-lua.c  
77
 
        network-queue.c
78
 
        network-socket.c
79
 
        network-socket-lua.c
80
 
        network-address.c
81
 
        network-address-lua.c
82
 
        network-injection.c
83
 
        network-injection-lua.c
84
 
        network-backend.c
85
 
        network-backend-lua.c
86
 
        lua-env.c
87
 
)
88
 
 
89
 
ADD_LIBRARY(mysql-chassis SHARED ${chassis_sources})
90
 
ADD_LIBRARY(mysql-chassis-proxy SHARED ${proxy_sources})
91
 
ADD_LIBRARY(mysql-chassis-glibext SHARED ${glibext_sources})
92
 
ADD_LIBRARY(mysql-chassis-timing SHARED ${timing_sources})
93
 
ADD_EXECUTABLE(mysql-proxy mysql-proxy-cli.c)
94
 
 
95
 
## for windows we need the winsock lib
96
 
SET(WINSOCK_LIBRARIES)
97
 
IF(WIN32)
98
 
        SET(WINSOCK_LIBRARIES ws2_32)
99
 
ENDIF()
100
 
 
101
 
TARGET_LINK_LIBRARIES(mysql-chassis-glibext
102
 
        ${GLIB_LIBRARIES} 
103
 
        ${GMODULE_LIBRARIES} 
104
 
        ${GTHREAD_LIBRARIES} 
105
 
)
106
 
 
107
 
TARGET_LINK_LIBRARIES(mysql-chassis-timing
108
 
        ${GLIB_LIBRARIES} 
109
 
        ${GMODULE_LIBRARIES} 
110
 
        ${GTHREAD_LIBRARIES} 
111
 
        mysql-chassis-glibext
112
 
)
113
 
 
114
 
TARGET_LINK_LIBRARIES(mysql-chassis 
115
 
        ${GLIB_LIBRARIES} 
116
 
        ${GMODULE_LIBRARIES} 
117
 
        ${GTHREAD_LIBRARIES} 
118
 
        ${LUA_LIBRARIES}
119
 
        ${EVENT_LIBRARIES}
120
 
        ${WINSOCK_LIBRARIES}
121
 
        mysql-chassis-timing
122
 
        mysql-chassis-glibext
123
 
)
124
 
 
125
 
TARGET_LINK_LIBRARIES(mysql-chassis-proxy
126
 
        mysql-chassis 
127
 
        mysql-chassis-glibext
128
 
        mysql-chassis-timing
129
 
)
130
 
 
131
 
TARGET_LINK_LIBRARIES(mysql-proxy 
132
 
        ${GLIB_LIBRARIES} 
133
 
        ${GMODULE_LIBRARIES} 
134
 
        ${GTHREAD_LIBRARIES} 
135
 
        ${LUA_LIBRARIES}
136
 
        ${EVENT_LIBRARIES}
137
 
        mysql-chassis
138
 
        mysql-chassis-proxy
139
 
        mysql-chassis-glibext
140
 
        mysql-chassis-timing
141
 
)
142
 
 
143
 
IF(WIN32)
144
 
        ADD_EXECUTABLE(mysql-proxy-svc mysql-proxy-cli.c)
145
 
        TARGET_LINK_LIBRARIES(mysql-proxy-svc
146
 
                ${GLIB_LIBRARIES} 
147
 
                ${GMODULE_LIBRARIES} 
148
 
                ${GTHREAD_LIBRARIES} 
149
 
                ${LUA_LIBRARIES}
150
 
                ${EVENT_LIBRARIES}
151
 
                mysql-chassis
152
 
                mysql-chassis-proxy
153
 
                mysql-chassis-glibext
154
 
                mysql-chassis-timing
155
 
        )
156
 
        SET_TARGET_PROPERTIES(mysql-proxy-svc
157
 
                PROPERTIES
158
 
                COMPILE_DEFINITIONS WIN32_AS_SERVICE
159
 
        )
160
 
ENDIF(WIN32)
161
 
 
162
 
IF(WIN32)
163
 
        CHASSIS_INSTALL_TARGET(mysql-proxy)
164
 
        CHASSIS_INSTALL_TARGET(mysql-proxy-svc)
165
 
ELSE(WIN32)
166
 
        # Unix platforms provide a wrapper script to avoid relinking at install time
167
 
        
168
 
        # figure out the correct name of the shared linker lookup path for this system, default to LD_LIBRARY_PATH
169
 
        SET(DYNLIB_PATH_VAR "LD_LIBRARY_PATH")
170
 
        
171
 
        IF("AIX" STREQUAL ${CMAKE_SYSTEM_NAME})
172
 
                SET(DYNLIB_PATH_VAR "LIBPATH")
173
 
        ENDIF("AIX" STREQUAL ${CMAKE_SYSTEM_NAME})
174
 
        
175
 
        IF("HP-UX" STREQUAL ${CMAKE_SYSTEM_NAME})
176
 
                SET(DYNLIB_PATH_VAR "SHLIB_PATH")
177
 
        ENDIF("HP-UX" STREQUAL ${CMAKE_SYSTEM_NAME})
178
 
        
179
 
        IF(APPLE)
180
 
                SET(DYNLIB_PATH_VAR "DYLD_LIBRARY_PATH")
181
 
        ENDIF(APPLE)
182
 
        
183
 
        # write the wrapper script, which uses DYNLIB_PATH_VAR
184
 
        CONFIGURE_FILE(
185
 
                ${CMAKE_SOURCE_DIR}/scripts/mysql-proxy-binwrapper.in 
186
 
                ${PROJECT_BINARY_DIR}/mysql-proxy.sh
187
 
                @ONLY
188
 
        )
189
 
        INSTALL(FILES ${PROJECT_BINARY_DIR}/mysql-proxy.sh
190
 
                DESTINATION bin/
191
 
                PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
192
 
                RENAME mysql-proxy
193
 
        )
194
 
 
195
 
        INSTALL(TARGETS mysql-proxy
196
 
                RUNTIME DESTINATION libexec
197
 
        )
198
 
ENDIF(WIN32)
199
 
 
200
 
CHASSIS_INSTALL_TARGET(mysql-chassis)
201
 
CHASSIS_INSTALL_TARGET(mysql-chassis-proxy)
202
 
CHASSIS_INSTALL_TARGET(mysql-chassis-glibext)
203
 
CHASSIS_INSTALL_TARGET(mysql-chassis-timing)
204
 
 
205
 
INSTALL(FILES
206
 
        network-mysqld.h
207
 
        network-mysqld-lua.h
208
 
        network-mysqld-proto.h
209
 
        network-mysqld-binlog.h
210
 
        network-mysqld-packet.h
211
 
        network-mysqld-masterinfo.h
212
 
        network-conn-pool.h
213
 
        network-conn-pool-lua.h
214
 
        network-queue.h
215
 
        network-socket.h
216
 
        network-socket-lua.h
217
 
        network-address.h
218
 
        network-address-lua.h
219
 
        sys-pedantic.h
220
 
        chassis-plugin.h
221
 
        chassis-log.h
222
 
        chassis-keyfile.h
223
 
        chassis-mainloop.h
224
 
        chassis-shutdown-hooks.h
225
 
        chassis-path.h
226
 
        chassis-filemode.h
227
 
        chassis-limits.h
228
 
        chassis-event-thread.h
229
 
        glib-ext.h
230
 
        glib-ext-ref.h
231
 
        string-len.h
232
 
        lua-load-factory.h
233
 
        lua-scope.h
234
 
        lua-env.h
235
 
        network-injection.h
236
 
        network-injection-lua.h
237
 
        chassis-exports.h
238
 
        network-exports.h
239
 
        network-backend.h
240
 
        network-backend-lua.h
241
 
        disable-dtrace.h
242
 
        lua-registry-keys.h
243
 
        chassis-stats.h
244
 
        chassis-timings.h
245
 
        chassis-gtimeval.h
246
 
        chassis-frontend.h
247
 
        chassis-options.h
248
 
        chassis-unix-daemon.h
249
 
        chassis-win32-service.h
250
 
        my_rdtsc.h
251
 
        DESTINATION include/
252
 
        )
 
1
include(UsePkgConfig)
 
2
include(CheckIncludeFiles)
 
3
include(CheckFunctionExists)
 
4
INCLUDE(CheckTypeSize)
 
5
 
 
6
include_directories (${AGENT_SOURCE_DIR}/)
 
7
 
 
8
pkgconfig(glib-2.0 GLIB_INC_DIR GLIB_LIB_DIR GLIB_LDFLAGS GLIB_CFLAGS)
 
9
MESSAGE(STATUS "GLIB_INC_DIR ${GLIB_INC_DIR}")
 
10
MESSAGE(STATUS "GLIB_LIB_DIR ${GLIB_LIB_DIR}")
 
11
MESSAGE(STATUS "GLIB_LDFLAGS ${GLIB_LDFLAGS}")
 
12
MESSAGE(STATUS "GLIB_CFLAGS ${GLIB_CFLAGS}")
 
13
 
 
14
pkgconfig(libxml-2.0 XML_INC_DIR XML_LIB_DIR XML_LDFLAGS XML_CFLAGS)
 
15
MESSAGE(STATUS "XML_INC_DIR ${XML_INC_DIR}")
 
16
MESSAGE(STATUS "XML_LIB_DIR ${XML_LIB_DIR}")
 
17
MESSAGE(STATUS "XML_LDFLAGS ${XML_LDFLAGS}")
 
18
MESSAGE(STATUS "XML_CFLAGS ${XML_CFLAGS}")
 
19
 
 
20
link_directories(${GLIB_LIB_DIR})
 
21
include_directories(${GLIB_LIB_DIR}/glib-2.0/include ${GLIB_INC_DIR}/glib-2.0/)
 
22
include_directories(/usr/include/mysql/ /usr/local/mysql/include/)
 
23
INCLUDE_DIRECTORIES(${XML_INC_DIR}/libxml2 ${XML_INC_DIR})
 
24
# LINK_DIRECTORIES(/usr/lib64/mysql/)
 
25
LINK_DIRECTORIES(/usr/local/mysql/lib)
 
26
 
 
27
CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H)
 
28
IF (HAVE_INTTYPES_H) 
 
29
  ADD_DEFINITIONS(-DHAVE_INTTYPES_H) 
 
30
ENDIF(HAVE_INTTYPES_H)
 
31
 
 
32
CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H)
 
33
IF (HAVE_UNISTD_H) 
 
34
  ADD_DEFINITIONS(-DHAVE_UNISTD_H) 
 
35
ENDIF(HAVE_UNISTD_H)
 
36
 
 
37
CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H)
 
38
IF (HAVE_SYS_TIME_H) 
 
39
  ADD_DEFINITIONS(-DHAVE_SYS_TIME_H) 
 
40
ENDIF(HAVE_SYS_TIME_H)
 
41
 
 
42
CHECK_INCLUDE_FILES(sys/filio.h HAVE_SYS_FILIO_H)
 
43
IF (HAVE_SYS_FILIO_H) 
 
44
  ADD_DEFINITIONS(-DHAVE_SYS_FILIO_H) 
 
45
ENDIF(HAVE_SYS_FILIO_H)
 
46
 
 
47
CHECK_INCLUDE_FILES(sys/socket.h HAVE_SYS_SOCKET_H)
 
48
IF (HAVE_SYS_SOCKET_H) 
 
49
  ADD_DEFINITIONS(-DHAVE_SYS_SOCKET_H) 
 
50
ENDIF(HAVE_SYS_SOCKET_H)
 
51
 
 
52
CHECK_INCLUDE_FILES(sys/resource.h HAVE_SYS_RESOURCE_H)
 
53
IF (HAVE_SYS_RESOURCE_H) 
 
54
  ADD_DEFINITIONS(-DHAVE_SYS_RESOURCE_H) 
 
55
ENDIF(HAVE_SYS_RESOURCE_H)
 
56
 
 
57
CHECK_INCLUDE_FILES(sys/ioctl.h HAVE_SYS_IOCTL_H)
 
58
IF (HAVE_SYS_IOCTL_H) 
 
59
  ADD_DEFINITIONS(-DHAVE_SYS_IOCTL_H) 
 
60
ENDIF(HAVE_SYS_IOCTL_H)
 
61
 
 
62
CHECK_INCLUDE_FILES(stdlib.h HAVE_STDLIB_H)
 
63
IF (HAVE_STDLIB_H) 
 
64
  ADD_DEFINITIONS(-DHAVE_STDLIB_H) 
 
65
ENDIF(HAVE_STDLIB_H)
 
66
 
 
67
CHECK_INCLUDE_FILES(sys/sockio.h HAVE_SYS_SOCKIO_H)
 
68
IF (HAVE_SYS_SOCKIO_H) 
 
69
  ADD_DEFINITIONS(-DHAVE_SYS_SOCKIO_H) 
 
70
ENDIF(HAVE_SYS_SOCKIO_H)
 
71
 
 
72
CHECK_INCLUDE_FILES(net/if.h HAVE_NET_IF_H)
 
73
IF (HAVE_NET_IF_H) 
 
74
  ADD_DEFINITIONS(-DHAVE_NET_IF_H) 
 
75
ENDIF(HAVE_NET_IF_H)
 
76
 
 
77
CHECK_INCLUDE_FILES(net/if_dl.h HAVE_NET_IF_DL_H)
 
78
IF (HAVE_NET_IF_DL_H) 
 
79
  ADD_DEFINITIONS(-DHAVE_NET_IF_DL_H) 
 
80
ENDIF(HAVE_NET_IF_DL_H)
 
81
 
 
82
CHECK_INCLUDE_FILES(netinet/in.h HAVE_NETINET_IN_H)
 
83
IF (HAVE_NETINET_IN_H) 
 
84
  ADD_DEFINITIONS(-DHAVE_NETINET_IN_H) 
 
85
ENDIF(HAVE_NETINET_IN_H)
 
86
 
 
87
CHECK_FUNCTION_EXISTS(signal HAVE_SIGNAL)
 
88
IF (HAVE_SIGNAL) 
 
89
  ADD_DEFINITIONS(-DHAVE_SIGNAL) 
 
90
ENDIF(HAVE_SIGNAL)
 
91
 
 
92
CHECK_FUNCTION_EXISTS(srandom HAVE_SRANDOM)
 
93
IF (HAVE_SRANDOM) 
 
94
  ADD_DEFINITIONS(-DHAVE_SRANDOM) 
 
95
ENDIF(HAVE_SRANDOM)
 
96
 
 
97
SET(LUALIBS )
 
98
CHECK_INCLUDE_FILES(lua.h HAVE_LUA_H)
 
99
IF (HAVE_LUA_H) 
 
100
  ADD_DEFINITIONS(-DHAVE_LUA_H) 
 
101
  SET(LUALIBS lua m)
 
102
ENDIF(HAVE_LUA_H)
 
103
 
 
104
SET(EVENTLIBS )
 
105
CHECK_INCLUDE_FILES(event.h HAVE_EVENT_H)
 
106
IF (HAVE_EVENT_H) 
 
107
  ADD_DEFINITIONS(-DHAVE_EVENT_H) 
 
108
  SET(EVENTLIBS event)
 
109
ENDIF(HAVE_EVENT_H)
 
110
 
 
111
IF(NOT WIN32)
 
112
  IF(HAVE_EVENT_H)
 
113
    SET(proxy_sources 
 
114
        network-mysqld.c
 
115
        network-mysqld-proxy.c
 
116
        network-mysqld-server.c
 
117
        network-mysqld-proto.c
 
118
        network-mysqld-table.c
 
119
        )
 
120
  
 
121
    ADD_EXECUTABLE(mysql-proxy mysql-proxy.c ${proxy_sources})
 
122
    TARGET_LINK_LIBRARIES(mysql-proxy glib-2.0 ${LUALIBS} ${EVENTLIBS})
 
123
  ENDIF(HAVE_EVENT_H)
 
124
ENDIF(NOT WIN32)
 
125
 
 
126
# ADD_EXECUTABLE(proxy-test proxy-test.c)
 
127
# TARGET_LINK_LIBRARIES(proxy-test mysqlclient m z glib-2.0)
 
128
 
 
129
# ADD_EXECUTABLE(trx-id trx-id.c)
 
130
# TARGET_LINK_LIBRARIES(trx-id mysqlclient m z glib-2.0 gthread-2.0)
 
131