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

« back to all changes in this revision

Viewing changes to lib/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
 
ADD_SUBDIRECTORY(proxy)
2
 
 
3
 
INSTALL(FILES
4
 
        active-queries.lua
5
 
        active-transactions.lua
6
 
        analyze-query.lua
7
 
        auditing.lua
8
 
        commit-obfuscator.lua
9
 
        commit-obfuscator.msc
10
 
        histogram.lua
11
 
        load-multi.lua
12
 
        ro-balance.lua
13
 
        rw-splitting.lua
14
 
        xtab.lua
15
 
 
16
 
        DESTINATION share/doc/mysql-proxy/
17
 
)
18
 
 
19
 
INCLUDE_DIRECTORIES(${GLIB_INCLUDE_DIRS})
20
 
LINK_DIRECTORIES(${GLIB_LIBRARY_DIRS})
21
 
 
22
 
INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIRS})
23
 
LINK_DIRECTORIES(${LUA_LIBRARY_DIRS})
24
 
 
25
 
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/)
26
 
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}) # for config.h
27
 
 
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
32
 
 
33
 
IF(FLEX_EXECUTABLE)
34
 
        FILE(REMOVE "${CMAKE_CURRENT_SOURCE_DIR}/sql-tokenizer.c")
35
 
        ADD_CUSTOM_COMMAND(
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"
41
 
        )
42
 
ENDIF(FLEX_EXECUTABLE)
43
 
 
44
 
ADD_EXECUTABLE(sql-tokenizer-gen
45
 
        sql-tokenizer-tokens.c
46
 
        sql-tokenizer-gen.c)
47
 
TARGET_LINK_LIBRARIES(sql-tokenizer-gen
48
 
        ${GLIB_LIBRARIES}
49
 
)
50
 
 
51
 
ADD_CUSTOM_COMMAND(
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"
56
 
)
57
 
 
58
 
SET(LUA_GLIB2_SOURCES
59
 
        glib2.c
60
 
)
61
 
SET(LUA_LFS_SOURCES
62
 
        lfs.c
63
 
)
64
 
SET(LUA_MYSQL_SOURCES
65
 
        mysql-proto.c
66
 
        sql-tokenizer.c 
67
 
        sql-tokenizer-keywords.c 
68
 
        sql-tokenizer-tokens.c 
69
 
        sql-tokenizer-lua.c 
70
 
)
71
 
 
72
 
SET(LUA_CHASSIS_SOURCES
73
 
        chassis.c
74
 
)
75
 
 
76
 
SET(LUA_LPEG_SOURCES
77
 
        lpeg.c
78
 
)
79
 
 
80
 
IF(WIN32)
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)
86
 
ENDIF(WIN32)
87
 
 
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})
93
 
 
94
 
 
95
 
### 
96
 
## building the lua extensions that can be loaded with require()
97
 
##
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
100
 
 
101
 
IF(WIN32)
102
 
        ## win32 is the only platform that needs reference to the lua.dll at linktime
103
 
        SET(LUA_SHARED_LIBRARIES ${LUA_LIBRARIES})
104
 
 
105
 
        TARGET_LINK_LIBRARIES(lfs
106
 
                ${LUA_SHARED_LIBRARIES})
107
 
        TARGET_LINK_LIBRARIES(lpeg
108
 
                ${LUA_SHARED_LIBRARIES})
109
 
ELSE(WIN32)
110
 
        SET(LUA_SHARED_LIBRARIES )
111
 
ENDIF(WIN32)
112
 
 
113
 
IF(APPLE)
114
 
        ## MacOSX may have a static liblua and we don't want to link that in
115
 
        SET_TARGET_PROPERTIES(
116
 
                glib2 lfs lpeg
117
 
                PROPERTIES 
118
 
                        LINK_FLAGS "-undefined dynamic_lookup")
119
 
ENDIF(APPLE)
120
 
 
121
 
TARGET_LINK_LIBRARIES(glib2
122
 
        ${LUA_SHARED_LIBRARIES}
123
 
        ${GLIB_LIBRARIES}
124
 
)
125
 
TARGET_LINK_LIBRARIES(mysql 
126
 
        ${LUA_SHARED_LIBRARIES}
127
 
        ${GLIB_LIBRARIES}
128
 
        mysql-chassis-proxy
129
 
)
130
 
TARGET_LINK_LIBRARIES(chassis 
131
 
        ${LUA_SHARED_LIBRARIES}
132
 
        ${GLIB_LIBRARIES}
133
 
        mysql-chassis
134
 
)
135
 
 
136
 
MACRO(LUAMODULE_INSTALL _plugin_name)
137
 
        IF(NOT WIN32)
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}
142
 
                )
143
 
        ELSE(NOT WIN32)
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}
146
 
                        DESTINATION bin/
147
 
                        RENAME lua-${_plugin_name}${CMAKE_SHARED_LIBRARY_SUFFIX}
148
 
                )
149
 
        ENDIF(NOT WIN32)
150
 
ENDMACRO(LUAMODULE_INSTALL _plugin_name)
151
 
 
152
 
LUAMODULE_INSTALL(glib2)
153
 
LUAMODULE_INSTALL(lfs)
154
 
LUAMODULE_INSTALL(lpeg)
155
 
LUAMODULE_INSTALL(mysql)
156
 
LUAMODULE_INSTALL(chassis)
157