Merge pull request #734 from scottjg/travis-mingw Enable mingw cross-compilation in travis-ci
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
diff --git a/.travis.yml b/.travis.yml
index 11c85bb..2713651 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,6 +8,7 @@ language: erlang
env:
- OPTIONS="-DTHREADSAFE=ON -DCMAKE_BUILD_TYPE=Release"
- OPTIONS="-DBUILD_CLAR=ON -DBUILD_EXAMPLES=ON"
+ - CC=i586-mingw32msvc-gcc OPTIONS="-DBUILD_CLAR=OFF -DWIN32=ON -DMINGW=ON"
# Make sure CMake is installed
install:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 165baba..8018ea7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -71,10 +71,12 @@ IF (MSVC)
# Precompiled headers
ELSE ()
- SET(CMAKE_C_FLAGS "-O2 -g -D_GNU_SOURCE -fvisibility=hidden -Wall -Wextra -Wno-missing-field-initializers -Wstrict-aliasing=2 -Wstrict-prototypes -Wmissing-prototypes ${CMAKE_C_FLAGS}")
+ SET(CMAKE_C_FLAGS "-O2 -g -D_GNU_SOURCE -Wall -Wextra -Wno-missing-field-initializers -Wstrict-aliasing=2 -Wstrict-prototypes -Wmissing-prototypes ${CMAKE_C_FLAGS}")
SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
- IF (NOT MINGW) # MinGW always does PIC and complains if we tell it to
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+ IF (MINGW) # MinGW always does PIC and complains if we tell it to
+ STRING(REGEX REPLACE "-fPIC" "" CMAKE_SHARED_LIBRARY_C_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS}")
+ ELSE ()
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -fPIC")
ENDIF ()
IF (PROFILE)
SET(CMAKE_C_FLAGS "-pg ${CMAKE_C_FLAGS}")
diff --git a/src/netops.c b/src/netops.c
index 4d461a0..e16cae8 100644
--- a/src/netops.c
+++ b/src/netops.c
@@ -12,9 +12,9 @@
# include <netdb.h>
#else
# include <winsock2.h>
-# include <Ws2tcpip.h>
+# include <ws2tcpip.h>
# ifdef _MSC_VER
-# pragma comment(lib, "Ws2_32.lib")
+# pragma comment(lib, "ws2_32.lib")
# endif
#endif