Skip to content

Commit 01ad990

Browse files
committed
[cmake] fix issue #99 #100, check mingw on window
1 parent 5a97d29 commit 01ad990

File tree

6 files changed

+79
-13
lines changed

6 files changed

+79
-13
lines changed

build/cmake_env.inc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ IF ("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
1818
ELSEIF ("${CMAKE_SYSTEM_NAME}" MATCHES "Windows")
1919
SET(OS_WINDOWS TRUE)
2020
MESSAGE(STATUS " Target OS: WINDOWS")
21-
ELSEIF (("${CMAKE_SYSTEM_NAME}" MATCHES "MSYS") OR ("${CMAKE_SYSTEM_NAME}" MATCHES "MINGW32"))
21+
ELSEIF (("${CMAKE_SYSTEM_NAME}" MATCHES "MINGW32") OR ("${CMAKE_SYSTEM_NAME}" MATCHES "MINGW64"))
2222
SET(OS_WINDOWS TRUE)
2323
SET(ENV_MINGW TRUE)
24-
MESSAGE(STATUS " Target OS: WINDOWS with MINGW")
24+
MESSAGE(STATUS " Target OS: WINDOWS with MINGW32/64")
2525
ELSE ()
2626
MESSAGE(STATUS " Target OS: unknown ${CMAKE_SYSTEM_NAME}")
2727
EXIT ()

build/cmake_var.inc

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
2+
MESSAGE(STATUS "ANDROID " ${CMAKE_LIBRARY_ARCHITECTURE_REGEX})
3+
MESSAGE(STATUS "APPLE " ${ANDROID})
4+
MESSAGE(STATUS "BORLAND " ${APPLE})
5+
MESSAGE(STATUS "BSD " ${BORLAND})
6+
MESSAGE(STATUS "CMAKE_ANDROID_NDK_VERSION " ${BSD})
7+
MESSAGE(STATUS "CMAKE_CL_64 " ${CMAKE_ANDROID_NDK_VERSION})
8+
MESSAGE(STATUS "CMAKE_COMPILER_2005 " ${CMAKE_CL_64})
9+
MESSAGE(STATUS "CMAKE_HOST_APPLE " ${CMAKE_COMPILER_2005})
10+
MESSAGE(STATUS "CMAKE_HOST_BSD " ${CMAKE_HOST_APPLE})
11+
MESSAGE(STATUS "CMAKE_HOST_LINUX " ${CMAKE_HOST_BSD})
12+
MESSAGE(STATUS "CMAKE_HOST_SOLARIS " ${CMAKE_HOST_LINUX})
13+
MESSAGE(STATUS "CMAKE_HOST_SYSTEM " ${CMAKE_HOST_SOLARIS})
14+
MESSAGE(STATUS "CMAKE_HOST_SYSTEM_NAME " ${CMAKE_HOST_SYSTEM})
15+
MESSAGE(STATUS "CMAKE_HOST_SYSTEM_PROCESSOR " ${CMAKE_HOST_SYSTEM_NAME})
16+
MESSAGE(STATUS "CMAKE_HOST_SYSTEM_VERSION " ${CMAKE_HOST_SYSTEM_PROCESSOR})
17+
MESSAGE(STATUS "CMAKE_HOST_UNIX " ${CMAKE_HOST_SYSTEM_VERSION})
18+
MESSAGE(STATUS "CMAKE_HOST_WIN32 " ${CMAKE_HOST_UNIX})
19+
MESSAGE(STATUS "CMAKE_LIBRARY_ARCHITECTURE " ${CMAKE_HOST_WIN32})
20+
MESSAGE(STATUS "CMAKE_LIBRARY_ARCHITECTURE_REGEX " ${CMAKE_LIBRARY_ARCHITECTURE})
21+
MESSAGE(STATUS "CMAKE_OBJECT_PATH_MAX " ${CMAKE_OBJECT_PATH_MAX})
22+
MESSAGE(STATUS "CMAKE_SYSTEM " ${CMAKE_SYSTEM})
23+
MESSAGE(STATUS "CMAKE_SYSTEM_NAME " ${CMAKE_SYSTEM_NAME})
24+
MESSAGE(STATUS "CMAKE_SYSTEM_PROCESSOR " ${CMAKE_SYSTEM_PROCESSOR})
25+
MESSAGE(STATUS "CMAKE_SYSTEM_VERSION " ${CMAKE_SYSTEM_VERSION})
26+
MESSAGE(STATUS "CYGWIN " ${CYGWIN})
27+
MESSAGE(STATUS "GHSMULTI " ${GHSMULTI})
28+
MESSAGE(STATUS "IOS " ${IOS})
29+
MESSAGE(STATUS "LINUX " ${LINUX})
30+
MESSAGE(STATUS "MINGW " ${MINGW})
31+
MESSAGE(STATUS "MSVC " ${MSVC})
32+
MESSAGE(STATUS "MSVC10 " ${MSVC10})
33+
MESSAGE(STATUS "MSVC11 " ${MSVC11})
34+
MESSAGE(STATUS "MSVC12 " ${MSVC12})
35+
MESSAGE(STATUS "MSVC14 " ${MSVC14})
36+
MESSAGE(STATUS "MSVC60 " ${MSVC60})
37+
MESSAGE(STATUS "MSVC70 " ${MSVC70})
38+
MESSAGE(STATUS "MSVC71 " ${MSVC71})
39+
MESSAGE(STATUS "MSVC80 " ${MSVC80})
40+
MESSAGE(STATUS "MSVC90 " ${MSVC90})
41+
MESSAGE(STATUS "MSVC_IDE " ${MSVC_IDE})
42+
MESSAGE(STATUS "MSVC_TOOLSET_VERSION " ${MSVC_TOOLSET_VERSION})
43+
MESSAGE(STATUS "MSVC_VERSION " ${MSVC_VERSION})
44+
MESSAGE(STATUS "MSYS " ${MSYS})
45+
MESSAGE(STATUS "UNIX " ${UNIX})
46+
MESSAGE(STATUS "WIN32 " ${WIN32})
47+
MESSAGE(STATUS "WINCE " ${WINCE})
48+
MESSAGE(STATUS "WINDOWS_PHONE " ${WINDOWS_PHONE})
49+
MESSAGE(STATUS "WINDOWS_STORE " ${WINDOWS_STORE})
50+
MESSAGE(STATUS "XCODE " ${XCODE})
51+
MESSAGE(STATUS "XCODE_VERSION " ${XCODE_VERSION})
52+
53+

gear-lib/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ ENDIF ()
99

1010
SET(POSIX_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libposix/)
1111
IF (DEFINED OS_WINDOWS)
12-
IF (NOT DEFINED ENV_MINGW)
12+
IF (DEFINED ENV_MINGW)
13+
add_compile_definitions(ENV_MINGW=true)
14+
ELSE ()
1315
LIST(APPEND POSIX_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libposix/pthreads4w/)
1416
LIST(APPEND POSIX_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libposix/MsvcLibX/include/)
1517
ENDIF ()

gear-lib/libposix/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ IF (DEFINED OS_LINUX)
99
LIST(APPEND SOURCE_FILES libposix4nix.c)
1010
ELSEIF (DEFINED OS_WINDOWS)
1111

12-
IF (NOT DEFINED ENV_MINGW)
12+
IF (DEFINED ENV_MINGW)
13+
add_compile_definitions(ENV_MINGW=true)
14+
ELSE ()
1315
INCLUDE_DIRECTORIES(pthreads4w/ MsvcLibX/include)
1416
AUX_SOURCE_DIRECTORY(MsvcLibX MSVCLIBX_SRC)
1517
LIST(APPEND PTHREADS4W_SRC pthreads4w/pthread.c)

gear-lib/libposix/libposix.h

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,25 @@ extern "C" {
2828

2929
#define LIBPOSIX_VERSION "0.1.1"
3030

31+
/******************************************************************************
32+
* OS_WINDOWS
33+
* support MSVC, msys2, mingw32/64 on Windows
34+
******************************************************************************/
35+
#if defined (__WIN32__) || defined (WIN32) || defined (_MSC_VER) || defined (ENV_MINGW)
36+
#define OS_WINDOWS
37+
#define GEAR_API __declspec(dllexport)
38+
#include "libposix4win.h"
39+
40+
3141
/******************************************************************************
3242
* OS_LINUX
43+
* support UNIX on Linux
3344
******************************************************************************/
34-
#if defined (__linux__) || defined (__CYGWIN__)
45+
#elif defined (__linux__) /* || defined (__CYGWIN__) */
3546
#define OS_LINUX
3647
#define GEAR_API __attribute__((visibility("default")))
3748
#include "libposix4nix.h"
3849

39-
/******************************************************************************
40-
* OS_WINDOWS
41-
******************************************************************************/
42-
#elif defined (__WIN32__) || defined (WIN32) || defined (_MSC_VER)
43-
#define OS_WINDOWS
44-
#define GEAR_API __declspec(dllexport)
45-
#include "libposix4win.h"
4650

4751
/******************************************************************************
4852
* OS_APPLE

gear-lib/libposix/libposix4win.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,23 @@
2222
#ifndef LIBPOSIX4WIN_H
2323
#define LIBPOSIX4WIN_H
2424

25+
#ifndef ENV_MINGW
2526
#include "msvclibx.h"
27+
#endif
2628

2729
#include <stdio.h>
2830
#include <stdlib.h>
31+
#include <stdint.h>
2932
#include <string.h>
3033
#include <stdbool.h>
31-
#include <windows.h>
3234
#include <winsock2.h>
3335
#include <ws2tcpip.h>
3436
#include <tlhelp32.h>
37+
#include <windows.h>
38+
#ifndef ENV_MINGW
3539
#include "pthreads4w/pthread.h"
3640
#include "pthreads4w/semaphore.h"
41+
#endif
3742
#include "kernel_list_win32.h"
3843

3944
#ifdef __cplusplus

0 commit comments

Comments
 (0)