0
|
1 # Orthanc - A Lightweight, RESTful DICOM Store
|
|
2 # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
|
|
3 # Department, University Hospital of Liege, Belgium
|
|
4 # Copyright (C) 2017-2018 Osimis S.A., Belgium
|
|
5 #
|
|
6 # This program is free software: you can redistribute it and/or
|
|
7 # modify it under the terms of the GNU Affero General Public License
|
|
8 # as published by the Free Software Foundation, either version 3 of
|
|
9 # the License, or (at your option) any later version.
|
|
10 #
|
|
11 # This program is distributed in the hope that it will be useful, but
|
|
12 # WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
14 # Affero General Public License for more details.
|
|
15 #
|
|
16 # You should have received a copy of the GNU Affero General Public License
|
|
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
|
19
|
|
20 if (STATIC_BUILD OR NOT USE_SYSTEM_MYSQL_CLIENT)
|
|
21 set(MARIADB_CLIENT_VERSION_MAJOR "10")
|
|
22 set(MARIADB_CLIENT_VERSION_MINOR "3")
|
|
23 set(MARIADB_CLIENT_VERSION_PATCH "6")
|
|
24 set(MARIADB_PACKAGE_VERSION "3.0.5")
|
|
25 set(MARIADB_CLIENT_SOURCES_DIR ${CMAKE_BINARY_DIR}/mariadb-connector-c-${MARIADB_PACKAGE_VERSION}-src)
|
|
26 set(MARIADB_CLIENT_MD5 "b846584b8b7a39c51a6e83986b57c71c")
|
|
27 set(MARIADB_CLIENT_URL "http://www.orthanc-server.com/downloads/third-party/mariadb-connector-c-${MARIADB_PACKAGE_VERSION}-src.tar.gz")
|
|
28
|
|
29 if (IS_DIRECTORY "${MARIADB_CLIENT_SOURCES_DIR}")
|
|
30 set(FirstRun OFF)
|
|
31 else()
|
|
32 set(FirstRun ON)
|
|
33 endif()
|
|
34
|
|
35 DownloadPackage(${MARIADB_CLIENT_MD5} ${MARIADB_CLIENT_URL} "${MARIADB_CLIENT_SOURCES_DIR}")
|
|
36
|
|
37 if (FirstRun)
|
|
38 execute_process(
|
|
39 COMMAND ${PATCH_EXECUTABLE} -p0 -N -i
|
|
40 ${CMAKE_CURRENT_LIST_DIR}/../MariaDB/mariadb-connector-c-3.0.5.patch
|
|
41 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
|
42 RESULT_VARIABLE Failure
|
|
43 )
|
|
44
|
|
45 if (Failure)
|
|
46 message(FATAL_ERROR "Error while patching a file")
|
|
47 endif()
|
|
48 endif()
|
|
49
|
|
50
|
|
51 include(${MARIADB_CLIENT_SOURCES_DIR}/cmake/CheckIncludeFiles.cmake)
|
|
52 include(${MARIADB_CLIENT_SOURCES_DIR}/cmake/CheckFunctions.cmake)
|
|
53 include(${MARIADB_CLIENT_SOURCES_DIR}/cmake/CheckTypes.cmake)
|
|
54
|
|
55 set(MARIADB_CLIENT_VERSION "${MARIADB_CLIENT_VERSION_MAJOR}.${MARIADB_CLIENT_VERSION_MINOR}.${MARIADB_CLIENT_VERSION_PATCH}")
|
|
56 set(MARIADB_BASE_VERSION "mariadb-${MARIADB_CLIENT_VERSION_MAJOR}.${MARIADB_CLIENT_VERSION_MINOR}")
|
|
57 math(EXPR MARIADB_VERSION_ID "${MARIADB_CLIENT_VERSION_MAJOR} * 10000 +
|
|
58 ${MARIADB_CLIENT_VERSION_MINOR} * 100 +
|
|
59 ${MARIADB_CLIENT_VERSION_PATCH}")
|
|
60
|
|
61 add_definitions(
|
|
62 -DHAVE_OPENSSL=1
|
|
63 -DHAVE_TLS=1
|
|
64 -DHAVE_REMOTEIO=1
|
|
65 -DHAVE_COMPRESS=1
|
|
66 -DLIBMARIADB
|
|
67 -DTHREAD
|
|
68 )
|
|
69
|
|
70 set(HAVE_DLOPEN 1)
|
|
71 set(PROTOCOL_VERSION ${MARIADB_CLIENT_VERSION_MAJOR})
|
|
72 set(MARIADB_PORT 3306)
|
|
73 set(MARIADB_UNIX_ADDR "/var/run/mysqld/mysqld.sock")
|
|
74 set(DEFAULT_CHARSET "latin1")
|
|
75
|
|
76 FOREACH(plugin mysql_native_password mysql_old_password pvio_socket)
|
|
77 set(EXTERNAL_PLUGINS "${EXTERNAL_PLUGINS} extern struct st_mysql_client_plugin ${plugin}_client_plugin;\n")
|
|
78 set(BUILTIN_PLUGINS "${BUILTIN_PLUGINS} (struct st_mysql_client_plugin *)&${plugin}_client_plugin,\n")
|
|
79 ENDFOREACH()
|
|
80
|
|
81 configure_file(
|
|
82 ${MARIADB_CLIENT_SOURCES_DIR}/include/ma_config.h.in
|
|
83 ${MARIADB_CLIENT_SOURCES_DIR}/include/ma_config.h
|
|
84 )
|
|
85
|
|
86 configure_file(
|
|
87 ${MARIADB_CLIENT_SOURCES_DIR}/include/mariadb_version.h.in
|
|
88 ${MARIADB_CLIENT_SOURCES_DIR}/include/mariadb_version.h
|
|
89 )
|
|
90
|
|
91 configure_file(
|
|
92 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_client_plugin.c.in
|
|
93 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_client_plugin.c
|
|
94 )
|
|
95
|
|
96 include_directories(
|
|
97 ${MARIADB_CLIENT_SOURCES_DIR}/include
|
|
98 )
|
|
99
|
|
100 set(MYSQL_CLIENT_SOURCES
|
|
101 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_alloc.c
|
|
102 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_array.c
|
|
103 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_charset.c
|
|
104 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_client_plugin.c
|
|
105 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_compress.c
|
|
106 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_context.c
|
|
107 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_default.c
|
|
108 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_dtoa.c
|
|
109 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_errmsg.c
|
|
110 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_hash.c
|
|
111 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_init.c
|
|
112 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_io.c
|
|
113 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_list.c
|
|
114 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_ll2str.c
|
|
115 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_loaddata.c
|
|
116 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_net.c
|
|
117 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_password.c
|
|
118 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_pvio.c
|
|
119 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_sha1.c
|
|
120 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_stmt_codec.c
|
|
121 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_string.c
|
|
122 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_time.c
|
|
123 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/ma_tls.c
|
|
124 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/mariadb_async.c
|
|
125 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/mariadb_charset.c
|
|
126 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/mariadb_dyncol.c
|
|
127 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/mariadb_lib.c
|
|
128 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/mariadb_stmt.c
|
|
129 ${MARIADB_CLIENT_SOURCES_DIR}/libmariadb/secure/openssl.c
|
|
130 ${MARIADB_CLIENT_SOURCES_DIR}/plugins/auth/my_auth.c
|
|
131 ${MARIADB_CLIENT_SOURCES_DIR}/plugins/auth/old_password.c
|
|
132 ${MARIADB_CLIENT_SOURCES_DIR}/plugins/pvio/pvio_socket.c
|
|
133 )
|
|
134
|
|
135 if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
|
|
136 link_libraries(shlwapi)
|
|
137 endif()
|
|
138
|
|
139 else()
|
|
140 find_path(MYSQLCLIENT_INCLUDE_DIR mysql.h
|
|
141 /usr/local/include/mysql
|
|
142 /usr/include/mysql
|
|
143 )
|
|
144
|
|
145 if (MYSQLCLIENT_INCLUDE_DIR)
|
|
146 include_directories(${MYSQLCLIENT_INCLUDE_DIR})
|
|
147 set(CMAKE_REQUIRED_INCLUDES "${MYSQLCLIENT_INCLUDE_DIR}")
|
|
148 endif()
|
|
149
|
|
150 check_include_file(mysql.h HAVE_MYSQL_CLIENT_H)
|
|
151 if (NOT HAVE_MYSQL_CLIENT_H)
|
|
152 message(FATAL_ERROR "Please install the libmysqlclient-dev package")
|
|
153 endif()
|
|
154
|
|
155 check_library_exists(mysqlclient mysql_init "" HAVE_MYSQL_CLIENT_LIB)
|
|
156 if (NOT HAVE_MYSQL_CLIENT_LIB)
|
|
157 message(FATAL_ERROR "Unable to find the mysqlclient library")
|
|
158 endif()
|
|
159
|
|
160 link_libraries(mysqlclient)
|
|
161 endif()
|