2
# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
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
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.
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
20
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}) # for config.h
21
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
23
INCLUDE_DIRECTORIES(${GLIB_INCLUDE_DIRS})
24
LINK_DIRECTORIES(${GLIB_LIBRARY_DIRS})
26
INCLUDE_DIRECTORIES(${MYSQL_INCLUDE_DIRS})
27
LINK_DIRECTORIES(${MYSQL_LIBRARY_DIRS})
29
INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIRS})
30
LINK_DIRECTORIES(${LUA_LIBRARY_DIRS})
32
INCLUDE_DIRECTORIES(${EVENT_INCLUDE_DIRS})
33
LINK_DIRECTORIES(${EVENT_LIBRARY_DIRS})
35
STRING(REPLACE "." "" SHARED_LIBRARY_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
36
ADD_DEFINITIONS(-DSHARED_LIBRARY_SUFFIX="${SHARED_LIBRARY_SUFFIX}")
42
chassis-event-thread.c
45
chassis-shutdown-hooks.c
54
chassis-win32-service.c
71
network-mysqld-proto.c
72
network-mysqld-binlog.c
73
network-mysqld-packet.c
74
network-mysqld-masterinfo.c
76
network-conn-pool-lua.c
83
network-injection-lua.c
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)
95
## for windows we need the winsock lib
96
SET(WINSOCK_LIBRARIES)
98
SET(WINSOCK_LIBRARIES ws2_32)
101
TARGET_LINK_LIBRARIES(mysql-chassis-glibext
107
TARGET_LINK_LIBRARIES(mysql-chassis-timing
111
mysql-chassis-glibext
114
TARGET_LINK_LIBRARIES(mysql-chassis
122
mysql-chassis-glibext
125
TARGET_LINK_LIBRARIES(mysql-chassis-proxy
127
mysql-chassis-glibext
131
TARGET_LINK_LIBRARIES(mysql-proxy
139
mysql-chassis-glibext
144
ADD_EXECUTABLE(mysql-proxy-svc mysql-proxy-cli.c)
145
TARGET_LINK_LIBRARIES(mysql-proxy-svc
153
mysql-chassis-glibext
156
SET_TARGET_PROPERTIES(mysql-proxy-svc
158
COMPILE_DEFINITIONS WIN32_AS_SERVICE
163
CHASSIS_INSTALL_TARGET(mysql-proxy)
164
CHASSIS_INSTALL_TARGET(mysql-proxy-svc)
166
# Unix platforms provide a wrapper script to avoid relinking at install time
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")
171
IF("AIX" STREQUAL ${CMAKE_SYSTEM_NAME})
172
SET(DYNLIB_PATH_VAR "LIBPATH")
173
ENDIF("AIX" STREQUAL ${CMAKE_SYSTEM_NAME})
175
IF("HP-UX" STREQUAL ${CMAKE_SYSTEM_NAME})
176
SET(DYNLIB_PATH_VAR "SHLIB_PATH")
177
ENDIF("HP-UX" STREQUAL ${CMAKE_SYSTEM_NAME})
180
SET(DYNLIB_PATH_VAR "DYLD_LIBRARY_PATH")
183
# write the wrapper script, which uses DYNLIB_PATH_VAR
185
${CMAKE_SOURCE_DIR}/scripts/mysql-proxy-binwrapper.in
186
${PROJECT_BINARY_DIR}/mysql-proxy.sh
189
INSTALL(FILES ${PROJECT_BINARY_DIR}/mysql-proxy.sh
191
PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
195
INSTALL(TARGETS mysql-proxy
196
RUNTIME DESTINATION libexec
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)
208
network-mysqld-proto.h
209
network-mysqld-binlog.h
210
network-mysqld-packet.h
211
network-mysqld-masterinfo.h
213
network-conn-pool-lua.h
218
network-address-lua.h
224
chassis-shutdown-hooks.h
228
chassis-event-thread.h
236
network-injection-lua.h
240
network-backend-lua.h
248
chassis-unix-daemon.h
249
chassis-win32-service.h
2
include(CheckIncludeFiles)
3
include(CheckFunctionExists)
6
include_directories (${AGENT_SOURCE_DIR}/)
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}")
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}")
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)
27
CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H)
29
ADD_DEFINITIONS(-DHAVE_INTTYPES_H)
30
ENDIF(HAVE_INTTYPES_H)
32
CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H)
34
ADD_DEFINITIONS(-DHAVE_UNISTD_H)
37
CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H)
39
ADD_DEFINITIONS(-DHAVE_SYS_TIME_H)
40
ENDIF(HAVE_SYS_TIME_H)
42
CHECK_INCLUDE_FILES(sys/filio.h HAVE_SYS_FILIO_H)
44
ADD_DEFINITIONS(-DHAVE_SYS_FILIO_H)
45
ENDIF(HAVE_SYS_FILIO_H)
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)
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)
57
CHECK_INCLUDE_FILES(sys/ioctl.h HAVE_SYS_IOCTL_H)
59
ADD_DEFINITIONS(-DHAVE_SYS_IOCTL_H)
60
ENDIF(HAVE_SYS_IOCTL_H)
62
CHECK_INCLUDE_FILES(stdlib.h HAVE_STDLIB_H)
64
ADD_DEFINITIONS(-DHAVE_STDLIB_H)
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)
72
CHECK_INCLUDE_FILES(net/if.h HAVE_NET_IF_H)
74
ADD_DEFINITIONS(-DHAVE_NET_IF_H)
77
CHECK_INCLUDE_FILES(net/if_dl.h HAVE_NET_IF_DL_H)
79
ADD_DEFINITIONS(-DHAVE_NET_IF_DL_H)
80
ENDIF(HAVE_NET_IF_DL_H)
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)
87
CHECK_FUNCTION_EXISTS(signal HAVE_SIGNAL)
89
ADD_DEFINITIONS(-DHAVE_SIGNAL)
92
CHECK_FUNCTION_EXISTS(srandom HAVE_SRANDOM)
94
ADD_DEFINITIONS(-DHAVE_SRANDOM)
98
CHECK_INCLUDE_FILES(lua.h HAVE_LUA_H)
100
ADD_DEFINITIONS(-DHAVE_LUA_H)
105
CHECK_INCLUDE_FILES(event.h HAVE_EVENT_H)
107
ADD_DEFINITIONS(-DHAVE_EVENT_H)
115
network-mysqld-proxy.c
116
network-mysqld-server.c
117
network-mysqld-proto.c
118
network-mysqld-table.c
121
ADD_EXECUTABLE(mysql-proxy mysql-proxy.c ${proxy_sources})
122
TARGET_LINK_LIBRARIES(mysql-proxy glib-2.0 ${LUALIBS} ${EVENTLIBS})
126
# ADD_EXECUTABLE(proxy-test proxy-test.c)
127
# TARGET_LINK_LIBRARIES(proxy-test mysqlclient m z glib-2.0)
129
# ADD_EXECUTABLE(trx-id trx-id.c)
130
# TARGET_LINK_LIBRARIES(trx-id mysqlclient m z glib-2.0 gthread-2.0)