From 5b8bb8e7c66fa4477301da8ce99499c2ff60e168 Mon Sep 17 00:00:00 2001 From: Peter Drahos Date: Tue, 7 Dec 2010 00:54:33 +0100 Subject: [PATCH] Minor modifications for MinGW/Cygwin compatibility. --- CMakeLists.txt | 25 +++++++++++++++++++------ tests/test_main.c | 4 ++-- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2848b06c8..e8796c627 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) # Find required dependencies FIND_PACKAGE(ZLIB REQUIRED) -INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR} src) +INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR} ${PTHREAD_INCLUDE_DIR} src) # Try finding openssl FIND_PACKAGE(OpenSSL) @@ -26,12 +26,17 @@ ELSEIF () SET(SHA1_TYPE "builtin" CACHE STRING "Which SHA1 implementation to use: builtin, ppc") ENDIF () -# Sane defaults and options +# Installation paths SET(INSTALL_BIN bin CACHE PATH "Where to install binaries to.") SET(INSTALL_LIB lib CACHE PATH "Where to install libraries to.") SET(INSTALL_INC include/git CACHE PATH "Where to install headers to.") + +# Build options OPTION (BUILD_SHARED_LIBS "Build Shared Library (OFF for Static)" ON) OPTION (BUILD_TESTS "Build Tests" ON) +OPTION (BACKTRACE "Use GCC backtrace in tests (Not available on Cygwin/MinGW)" OFF) + +# Build Release by default IF (NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE) ENDIF () @@ -43,12 +48,20 @@ FILE(GLOB SRC_PLAT src/unix/*.c) FILE(GLOB SRC_H src/git/*.h) # On Windows use specific platform sources -IF (WIN32) - ADD_DEFINITIONS(WIN32 _DEBUG _LIB ZLIB_WINAPI) +IF (WIN32 AND NOT CYGWIN) + ADD_DEFINITIONS(-DWIN32 -D_DEBUG -D_LIB -DZLIB_WINAPI) FILE(GLOB SRC_PLAT src/win32/*.c) + IF (MINGW) + SET(PTHREAD_LIBRARY pthread) + ENDIF () +ENDIF () + +# When desired build with backtrace +IF (BACKTRACE) + ADD_DEFINITIONS(-DBACKTRACE) ENDIF () -# sha1 implementation +# Specify sha1 implementation IF (SHA1_TYPE STREQUAL "ppc") ADD_DEFINITIONS(-DPPC_SHA1) FILE(GLOB SRC_SHA1 src/ppc/*.c) @@ -61,7 +74,7 @@ ENDIF () # Compile and link libgit2 ADD_LIBRARY(git2 ${SRC} ${SRC_PLAT} ${SRC_SHA1}) -TARGET_LINK_LIBRARIES(git2 ${ZLIB_LIBRARY} ${LIB_SHA1}) +TARGET_LINK_LIBRARIES(git2 ${ZLIB_LIBRARY} ${LIB_SHA1} ${PTHREAD_LIBRARY}) # Install INSTALL(TARGETS git2 diff --git a/tests/test_main.c b/tests/test_main.c index 35bcdd76c..a3672c70d 100644 --- a/tests/test_main.c +++ b/tests/test_main.c @@ -31,7 +31,7 @@ * print backtrace when a test fails; * GCC only */ -#ifdef __GNUC__ +#ifdef BACKTRACE #include #include #include @@ -71,7 +71,7 @@ int main(int argc, char **argv) { struct test_def *t; -#ifdef __GNUC__ +#ifdef BACKTRACE signal(SIGSEGV, crash_handler); #endif -- 2.39.5