From 5f28ecded77c7fd16a1b07b8e329ae271f2fc74a Mon Sep 17 00:00:00 2001 From: Marc Strapetz Date: Fri, 4 Mar 2016 18:19:56 +0100 Subject: [PATCH] MinGW building fixed --- src/main/native/libjagged/CMakeLists.txt | 5 +++++ src/main/native/libjagged/util.h | 11 ++++++++--- src/test/native/libjagged_test/CMakeLists.txt | 5 +++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/native/libjagged/CMakeLists.txt b/src/main/native/libjagged/CMakeLists.txt index 7bfbac6..8005c51 100644 --- a/src/main/native/libjagged/CMakeLists.txt +++ b/src/main/native/libjagged/CMakeLists.txt @@ -81,6 +81,11 @@ ELSE () IF (WIN32 AND NOT CYGWIN) SET(CMAKE_C_FLAGS_DEBUG "-D_DEBUG") ENDIF () + + IF (MINGW) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--add-stdcall-alias") + SET(CMAKE_SHARED_LIBRARY_PREFIX "") + ENDIF () ENDIF() FILE(GLOB SRC_H *.h) diff --git a/src/main/native/libjagged/util.h b/src/main/native/libjagged/util.h index c894a5a..1c6b81f 100644 --- a/src/main/native/libjagged/util.h +++ b/src/main/native/libjagged/util.h @@ -34,12 +34,14 @@ #ifdef _WIN32 typedef WCHAR native_char; - -typedef SSIZE_T ssize_t; #else typedef char native_char; #endif +#if defined(GIT_WIN32) && !defined(__MINGW32__) +typedef SSIZE_T ssize_t; +#endif + GIT_INLINE(jstring) git_java_utf8_to_jstring( JNIEnv *env, const char *utf8str) @@ -51,7 +53,7 @@ GIT_INLINE(jstring) git_java_native_to_jstring( JNIEnv *env, const native_char *nativestr) { -#if defined(_WIN32) +#if defined(GIT_WIN32) && !defined(__MINGW32__) size_t len; if (FAILED(StringCchLength(nativestr, STRSAFE_MAX_CCH, &len))) @@ -65,6 +67,9 @@ GIT_INLINE(jstring) git_java_native_to_jstring( * always be less than INT_MAX" */ return (*env)->NewString(env, nativestr, (jsize) len); +#elif defined(_WIN32) + size_t len = wcslen(nativestr); + return (*env)->NewString(env, nativestr, (jsize) len); #else return (*env)->NewStringUTF(env, nativestr); #endif diff --git a/src/test/native/libjagged_test/CMakeLists.txt b/src/test/native/libjagged_test/CMakeLists.txt index 1493eb2..0c55c09 100644 --- a/src/test/native/libjagged_test/CMakeLists.txt +++ b/src/test/native/libjagged_test/CMakeLists.txt @@ -81,6 +81,11 @@ ELSE () IF (WIN32 AND NOT CYGWIN) SET(CMAKE_C_FLAGS_DEBUG "-D_DEBUG") ENDIF () + + IF (MINGW) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--add-stdcall-alias") + SET(CMAKE_SHARED_LIBRARY_PREFIX "") + ENDIF () ENDIF() FILE(GLOB SRC_H *.h)