Skip to content

Commit 60557a0

Browse files
committed
get mysql backend compiling
1 parent fd438a4 commit 60557a0

File tree

3 files changed

+62
-29
lines changed

3 files changed

+62
-29
lines changed

CMake/FindLibmysql.cmake

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#
2+
# $Id$
3+
#
4+
# - Find libmysql
5+
# Find libmysql
6+
#
7+
# LIBMYSQL_INCLUDE_DIR - where to find mysql.h, etc.
8+
# LIBMYSQL_LIBRARY - List of libraries when using libmysql.
9+
# LIBMYSQL_FOUND - True if libmysql found.
10+
11+
12+
IF (LIBMYSQL_INCLUDE_DIR)
13+
# Already in cache, be silent
14+
SET(LIBMYSQL_FIND_QUIETLY TRUE)
15+
ENDIF ()
16+
17+
FIND_PATH(LIBMYSQL_INCLUDE_DIR mysql.h)
18+
19+
FIND_LIBRARY(LIBMYSQL_LIBRARY mysqlclient)
20+
21+
# handle the QUIETLY and REQUIRED arguments and set Libmysql_FOUND to TRUE if
22+
# all listed variables are TRUE
23+
INCLUDE(FindPackageHandleStandardArgs)
24+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBMYSQL DEFAULT_MSG LIBMYSQL_LIBRARY LIBMYSQL_INCLUDE_DIR)
25+
26+
SET(LIBMYSQL_VERSION 0)
27+
28+
IF(LIBMYSQL_FOUND)
29+
if (EXISTS "${LIBMYSQL_INCLUDE_DIR}/mysql_version.h")
30+
FILE(READ "${LIBMYSQL_INCLUDE_DIR}/mysql_version.h" _MYSQL_VERSION_CONENTS)
31+
STRING(REGEX REPLACE ".*#define MYSQL_SERVER_VERSION\\s+\"([0-9.]+)\".*" "\\1" LIBMYSQL_VERSION "${_MYSQL_VERSION_CONENTS}")
32+
endif()
33+
ENDIF()
34+
35+
SET(LIBMYSQL_VERSION ${LIBMYSQL_VERSION} CACHE STRING "Version number of libmysql")
36+
37+
MARK_AS_ADVANCED(LIBMYSQL_LIBRARY LIBMYSQL_INCLUDE_DIR LIBMYSQL_VERSION)

mysql/CMakeLists.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
PROJECT(LIBGIT2-mysql C)
2+
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
3+
4+
INCLUDE(../CMake/FindLibgit2.cmake)
5+
INCLUDE(../CMake/FindLibmysql.cmake)
6+
7+
# Build options
8+
OPTION (BUILD_SHARED_LIBS "Build Shared Library (OFF for Static)" ON)
9+
OPTION (BUILD_TESTS "Build Tests" ON)
10+
11+
# Build Release by default
12+
IF (NOT CMAKE_BUILD_TYPE)
13+
SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE)
14+
ENDIF ()
15+
16+
# Compile and link LIBGIT2
17+
INCLUDE_DIRECTORIES(${LIBGIT2_INCLUDE_DIRS} ${LIBMYSQL_INCLUDE_DIR})
18+
ADD_LIBRARY(git2-mysql mysql.c)
19+
TARGET_LINK_LIBRARIES(git2-mysql ${LIBGIT2_LIBRARIES} ${LIBMYSQL_LIBRARY})

mysql/mysql.c

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,10 @@
2323
* Boston, MA 02110-1301, USA.
2424
*/
2525

26-
#include "common.h"
27-
#include "git2/object.h"
28-
#include "hash.h"
29-
#include "odb.h"
30-
31-
#include "git2/odb_backend.h"
32-
33-
#ifdef GIT2_MYSQL_BACKEND
26+
#include <assert.h>
27+
#include <string.h>
28+
#include <git2.h>
29+
#include <git2/odb_backend.h>
3430

3531
/* MySQL C Api docs:
3632
* http://dev.mysql.com/doc/refman/5.1/en/c-api-function-overview.html
@@ -177,7 +173,7 @@ int mysql_backend__read(void **data_p, size_t *len_p, git_otype *type_p, git_odb
177173
// return GIT_ERROR;
178174

179175
if (data_len > 0) {
180-
*data_p = git__malloc(data_len);
176+
*data_p = malloc(data_len);
181177
result_buffers[2].buffer = *data_p;
182178
result_buffers[2].buffer_length = data_len;
183179

@@ -425,7 +421,7 @@ int git_odb_backend_mysql(git_odb_backend **backend_out, const char *mysql_host,
425421
int error;
426422
my_bool reconnect;
427423

428-
backend = git__calloc(1, sizeof(mysql_backend));
424+
backend = calloc(1, sizeof(mysql_backend));
429425
if (backend == NULL)
430426
return GIT_ENOMEM;
431427

@@ -462,22 +458,3 @@ int git_odb_backend_mysql(git_odb_backend **backend_out, const char *mysql_host,
462458
mysql_backend__free((git_odb_backend *)backend);
463459
return GIT_ERROR;
464460
}
465-
466-
#else
467-
468-
int git_odb_backend_mysql(git_odb_backend **GIT_UNUSED(backend_out), const char *GIT_UNUSED(mysql_host),
469-
const char *GIT_UNUSED(mysql_user), const char *GIT_UNUSED(mysql_passwd), const char *GIT_UNUSED(mysql_db),
470-
unsigned int GIT_UNUSED(mysql_port), const char *GIT_UNUSED(mysql_unix_socket), unsigned long GIT_UNUSED(mysql_client_flag))
471-
{
472-
GIT_UNUSED_ARG(backend_out);
473-
GIT_UNUSED_ARG(mysql_host);
474-
GIT_UNUSED_ARG(mysql_user);
475-
GIT_UNUSED_ARG(mysql_passwd);
476-
GIT_UNUSED_ARG(mysql_db);
477-
GIT_UNUSED_ARG(mysql_port);
478-
GIT_UNUSED_ARG(mysql_unix_socket);
479-
GIT_UNUSED_ARG(mysql_client_flag);
480-
return GIT_ENOTIMPLEMENTED;
481-
}
482-
483-
#endif /* HAVE_MYSQL */

0 commit comments

Comments
 (0)