mySQL 5.0.11 sources for tomato
[tomato.git] / release / src / router / mysql / libmysqld / CMakeLists.txt
blob431f54abd22f65e039d9eef2df1bf0c924f1e157
1 # Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; version 2 of the License.
6
7 # This program is distributed in the hope that it will be useful,
8 # but WITHOUT ANY WARRANTY; without even the implied warranty of
9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10 # GNU General Public License for more details.
11
12 # You should have received a copy of the GNU General Public License
13 # along with this program; if not, write to the Free Software
14 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
16 SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
17 SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
19 # Need to set USE_TLS, since __declspec(thread) approach to thread local
20 # storage does not work properly in DLLs.
21 IF(WIN32)
22   ADD_DEFINITIONS(-DUSE_TLS)
23 ENDIF(WIN32)
25 ADD_DEFINITIONS(-DMYSQL_SERVER -DEMBEDDED_LIBRARY -DHAVE_DLOPEN)
27 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include 
28                     ${CMAKE_SOURCE_DIR}/libmysqld
29                     ${CMAKE_SOURCE_DIR}/libmysql
30                     ${CMAKE_SOURCE_DIR}/sql
31                     ${CMAKE_SOURCE_DIR}/regex
32                     ${CMAKE_SOURCE_DIR}/extra/yassl/include 
33                     ${CMAKE_SOURCE_DIR}/zlib)
35 SET(GEN_SOURCES     ${CMAKE_SOURCE_DIR}/sql/sql_yacc.cc
36                     ${CMAKE_SOURCE_DIR}/sql/sql_yacc.h
37                     ${CMAKE_SOURCE_DIR}/sql/message.h
38                     ${CMAKE_SOURCE_DIR}/sql/message.rc
39                     ${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc
40                     ${CMAKE_SOURCE_DIR}/sql/lex_hash.h)
42 SET_SOURCE_FILES_PROPERTIES(${GEN_SOURCES} PROPERTIES GENERATED 1)
44 # Include and add the directory path
45 SET(SOURCE_SUBLIBS TRUE)
46 SET(LIB_SOURCES "")
48 INCLUDE(${CMAKE_SOURCE_DIR}/zlib/CMakeLists.txt)
49 FOREACH(rpath ${ZLIB_SOURCES})
50   SET(LIB_SOURCES ${LIB_SOURCES} ../zlib/${rpath})
51 ENDFOREACH(rpath)
53 # FIXME only needed if build type is "Debug", but CMAKE_BUILD_TYPE is
54 # not set during configure time.
55 INCLUDE(${CMAKE_SOURCE_DIR}/dbug/CMakeLists.txt)
56 FOREACH(rpath ${DBUG_SOURCES})
57   SET(LIB_SOURCES ${LIB_SOURCES} ../dbug/${rpath})
58 ENDFOREACH(rpath)
60 INCLUDE(${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/CMakeLists.txt)
61 FOREACH(rpath ${TAOCRYPT_SOURCES})
62   SET(LIB_SOURCES ${LIB_SOURCES} ../extra/yassl/taocrypt/${rpath})
63 ENDFOREACH(rpath)
65 INCLUDE(${CMAKE_SOURCE_DIR}/extra/yassl/CMakeLists.txt)
66 FOREACH(rpath ${YASSL_SOURCES})
67   SET(LIB_SOURCES ${LIB_SOURCES} ../extra/yassl/${rpath})
68 ENDFOREACH(rpath)
70 INCLUDE(${CMAKE_SOURCE_DIR}/strings/CMakeLists.txt)
71 FOREACH(rpath ${STRINGS_SOURCES})
72   SET(LIB_SOURCES ${LIB_SOURCES} ../strings/${rpath})
73 ENDFOREACH(rpath)
75 INCLUDE(${CMAKE_SOURCE_DIR}/regex/CMakeLists.txt)
76 FOREACH(rpath ${REGEX_SOURCES})
77   SET(LIB_SOURCES ${LIB_SOURCES} ../regex/${rpath})
78 ENDFOREACH(rpath)
80 INCLUDE(${CMAKE_SOURCE_DIR}/mysys/CMakeLists.txt)
81 FOREACH(rpath ${MYSYS_SOURCES})
82   SET(LIB_SOURCES ${LIB_SOURCES} ../mysys/${rpath})
83 ENDFOREACH(rpath)
85 INCLUDE(${CMAKE_SOURCE_DIR}/vio/CMakeLists.txt)
86 FOREACH(rpath ${VIO_SOURCES})
87   SET(LIB_SOURCES ${LIB_SOURCES} ../vio/${rpath})
88 ENDFOREACH(rpath)
92 FOREACH (ENGINE_LIB ${MYSQLD_STATIC_ENGINE_LIBS})
93   STRING(TOUPPER ${ENGINE_LIB} ENGINE_LIB_UPPER)
94   SET(ENGINE_DIR ${${ENGINE_LIB_UPPER}_DIR})
95   INCLUDE(${CMAKE_SOURCE_DIR}/storage/${ENGINE_DIR}/CMakeLists.txt)
96   FOREACH(rpath ${${ENGINE_LIB_UPPER}_SOURCES})
97     SET(LIB_SOURCES ${LIB_SOURCES} ${CMAKE_SOURCE_DIR}/storage/${ENGINE_DIR}/${rpath})
98   ENDFOREACH(rpath)
99 ENDFOREACH(ENGINE_LIB)
102 SET(SOURCE_SUBLIBS FALSE)
103                             
104 SET(LIBMYSQLD_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc 
105            ../libmysql/libmysql.c ../libmysql/errmsg.c ../client/get_password.c
106            ../sql-common/client.c ../sql-common/my_time.c 
107            ../sql-common/my_user.c ../sql-common/pack.c
108            ../sql/password.c ../sql/discover.cc ../sql/derror.cc 
109            ../sql/field.cc ../sql/field_conv.cc
110            ../sql/filesort.cc ../sql/gstream.cc ../sql/ha_partition.cc 
111            ../sql/signal_handler.cc
112            ../sql/handler.cc ../sql/hash_filo.cc ../sql/hostname.cc 
113            ../sql/init.cc ../sql/item_buff.cc ../sql/item_cmpfunc.cc 
114            ../sql/item.cc ../sql/item_create.cc ../sql/item_func.cc 
115            ../sql/item_geofunc.cc ../sql/item_row.cc ../sql/item_strfunc.cc 
116            ../sql/item_subselect.cc ../sql/item_sum.cc ../sql/item_timefunc.cc 
117            ../sql/item_xmlfunc.cc ../sql/key.cc ../sql/lock.cc ../sql/log.cc 
118            ../sql/log_event.cc ../sql/mf_iocache.cc ../sql/my_decimal.cc 
119            ../sql/net_serv.cc ../sql/opt_range.cc ../sql/opt_sum.cc 
120            ../sql/parse_file.cc ../sql/procedure.cc ../sql/protocol.cc 
121            ../sql/records.cc ../sql/repl_failsafe.cc ../sql/rpl_filter.cc
122            ../sql/rpl_record.cc
123            ../sql/rpl_injector.cc ../sql/set_var.cc ../sql/spatial.cc 
124            ../sql/sp_cache.cc ../sql/sp.cc ../sql/sp_head.cc 
125            ../sql/sp_pcontext.cc ../sql/sp_rcontext.cc ../sql/sql_acl.cc 
126            ../sql/sql_analyse.cc ../sql/sql_base.cc ../sql/sql_cache.cc 
127            ../sql/sql_class.cc ../sql/sql_crypt.cc ../sql/sql_cursor.cc 
128            ../sql/sql_db.cc ../sql/sql_delete.cc ../sql/sql_derived.cc 
129            ../sql/sql_do.cc ../sql/sql_error.cc ../sql/sql_handler.cc 
130            ../sql/sql_help.cc ../sql/sql_insert.cc ../sql/sql_lex.cc 
131            ../sql/sql_list.cc ../sql/sql_load.cc ../sql/sql_locale.cc 
132            ../sql/sql_binlog.cc ../sql/sql_manager.cc ../sql/sql_map.cc 
133            ../sql/sql_parse.cc ../sql/sql_partition.cc ../sql/sql_plugin.cc 
134            ../sql/debug_sync.cc
135            ../sql/sql_prepare.cc ../sql/sql_rename.cc ../sql/sql_repl.cc 
136            ../sql/sql_select.cc ../sql/sql_servers.cc
137            ../sql/sql_show.cc ../sql/sql_state.c ../sql/sql_string.cc
138            ../sql/sql_tablespace.cc ../sql/sql_table.cc ../sql/sql_test.cc
139            ../sql/sql_trigger.cc ../sql/sql_udf.cc ../sql/sql_union.cc
140            ../sql/sql_update.cc ../sql/sql_view.cc ../sql/sql_profile.cc
141            ../sql/strfunc.cc ../sql/table.cc ../sql/thr_malloc.cc
142            ../sql/time.cc ../sql/tztime.cc ../sql/uniques.cc ../sql/unireg.cc
143            ../sql/partition_info.cc ../sql/sql_connect.cc 
144            ../sql/scheduler.cc ../sql/event_parse_data.cc
145            ${GEN_SOURCES}
146            ${LIB_SOURCES})
148 # Seems we cannot make a library without at least one source file. So use a
149 # dummy empty file
150 FILE(WRITE cmake_dummy.c " ")
152 # Tried use the correct ${GEN_SOURCES} as dependency, worked on Unix
153 # but not on Windows and Visual Studio generators. Likely because they
154 # are no real targets from the Visual Studio project files view. Added
155 # custom targets to "sql/CMakeLists.txt" and reference them here.
156 ADD_LIBRARY(mysqlserver STATIC ${LIBMYSQLD_SOURCES})
157 ADD_DEPENDENCIES(mysqlserver GenServerSource GenError)
158 TARGET_LINK_LIBRARIES(mysqlserver)
160 # Add any additional libraries requested by engine(s)
161 FOREACH (ENGINE_LIB ${MYSQLD_STATIC_ENGINE_LIBS})
162   STRING(TOUPPER ${ENGINE_LIB} ENGINE_LIB_UPPER)
163   IF(${ENGINE_LIB_UPPER}_LIBS)
164     TARGET_LINK_LIBRARIES(mysqlserver ${${ENGINE_LIB_UPPER}_LIBS})
165   ENDIF(${ENGINE_LIB_UPPER}_LIBS)
166 ENDFOREACH(ENGINE_LIB)
168 ADD_LIBRARY(libmysqld SHARED cmake_dummy.c libmysqld.def)
169 ADD_DEPENDENCIES(libmysqld mysqlserver)
170 TARGET_LINK_LIBRARIES(libmysqld mysqlserver wsock32)