1
ADD_SUBDIRECTORY(proxy)
5
active-transactions.lua
16
DESTINATION share/doc/mysql-proxy/
19
INCLUDE_DIRECTORIES(${GLIB_INCLUDE_DIRS})
20
LINK_DIRECTORIES(${GLIB_LIBRARY_DIRS})
22
INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIRS})
23
LINK_DIRECTORIES(${LUA_LIBRARY_DIRS})
25
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/)
26
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}) # for config.h
28
INCLUDE_DIRECTORIES(${MYSQL_INCLUDE_DIRS})
29
INCLUDE_DIRECTORIES(${EVENT_INCLUDE_DIRS})
30
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) ## for the generated header file
31
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) ## for the packaged header file
34
FILE(REMOVE "${CMAKE_CURRENT_SOURCE_DIR}/sql-tokenizer.c")
36
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/sql-tokenizer.c"
37
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/sql-tokenizer.l"
38
COMMAND ${FLEX_EXECUTABLE}
39
-o"${CMAKE_CURRENT_BINARY_DIR}/sql-tokenizer.c"
40
"${CMAKE_CURRENT_SOURCE_DIR}/sql-tokenizer.l"
42
ENDIF(FLEX_EXECUTABLE)
44
ADD_EXECUTABLE(sql-tokenizer-gen
45
sql-tokenizer-tokens.c
47
TARGET_LINK_LIBRARIES(sql-tokenizer-gen
52
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/sql-tokenizer-keywords.c"
53
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/sql-tokenizer-gen.c"
54
COMMAND sql-tokenizer-gen
55
> "${CMAKE_CURRENT_BINARY_DIR}/sql-tokenizer-keywords.c"
67
sql-tokenizer-keywords.c
68
sql-tokenizer-tokens.c
72
SET(LUA_CHASSIS_SOURCES
81
SET(LUA_GLIB2_SOURCES ${LUA_GLIB2_SOURCES} glib2.def)
82
SET(LUA_LFS_SOURCES ${LUA_LFS_SOURCES} lfs.def)
83
SET(LUA_MYSQL_SOURCES ${LUA_MYSQL_SOURCES} mysql.def)
84
SET(LUA_CHASSIS_SOURCES ${LUA_CHASSIS_SOURCES} chassis.def)
85
SET(LUA_LPEG_SOURCES ${LUA_LPEG_SOURCES} lpeg.def)
88
ADD_LIBRARY(glib2 SHARED ${LUA_GLIB2_SOURCES})
89
ADD_LIBRARY(lfs SHARED ${LUA_LFS_SOURCES})
90
ADD_LIBRARY(mysql SHARED ${LUA_MYSQL_SOURCES})
91
ADD_LIBRARY(chassis SHARED ${LUA_CHASSIS_SOURCES})
92
ADD_LIBRARY(lpeg SHARED ${LUA_LPEG_SOURCES})
96
## building the lua extensions that can be loaded with require()
98
## if possible don't link them against liblua.a, the caller will provide all the symbols
99
## on win32 we have to link against it, but they have a .dll by default
102
## win32 is the only platform that needs reference to the lua.dll at linktime
103
SET(LUA_SHARED_LIBRARIES ${LUA_LIBRARIES})
105
TARGET_LINK_LIBRARIES(lfs
106
${LUA_SHARED_LIBRARIES})
107
TARGET_LINK_LIBRARIES(lpeg
108
${LUA_SHARED_LIBRARIES})
110
SET(LUA_SHARED_LIBRARIES )
114
## MacOSX may have a static liblua and we don't want to link that in
115
SET_TARGET_PROPERTIES(
118
LINK_FLAGS "-undefined dynamic_lookup")
121
TARGET_LINK_LIBRARIES(glib2
122
${LUA_SHARED_LIBRARIES}
125
TARGET_LINK_LIBRARIES(mysql
126
${LUA_SHARED_LIBRARIES}
130
TARGET_LINK_LIBRARIES(chassis
131
${LUA_SHARED_LIBRARIES}
136
MACRO(LUAMODULE_INSTALL _plugin_name)
138
## remove the "lib" prefix on Unix platforms to make the modules loadable
139
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${_plugin_name}${CMAKE_SHARED_LIBRARY_SUFFIX}
140
DESTINATION lib/mysql-proxy/lua/
141
RENAME ${_plugin_name}${CMAKE_SHARED_LIBRARY_SUFFIX}
144
## on win32 the lua module gets prefixed with lua- and end up in bin/
145
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${CMAKE_SHARED_LIBRARY_PREFIX}${_plugin_name}${CMAKE_SHARED_LIBRARY_SUFFIX}
147
RENAME lua-${_plugin_name}${CMAKE_SHARED_LIBRARY_SUFFIX}
150
ENDMACRO(LUAMODULE_INSTALL _plugin_name)
152
LUAMODULE_INSTALL(glib2)
153
LUAMODULE_INSTALL(lfs)
154
LUAMODULE_INSTALL(lpeg)
155
LUAMODULE_INSTALL(mysql)
156
LUAMODULE_INSTALL(chassis)