# ================================================== # === GENERAL PATCHES - USED FOR ALL Qt5 EBUILDS === # ================================================== --- a/configure 2018-01-18 11:58:44.067429300 +0100 +++ b/configure 2018-01-18 11:58:44.083075100 +0100 @@ -730,7 +730,7 @@ echo "########################################################################" > "$mkfile" echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile" echo "########################################################################" >> "$mkfile" - EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS) \$(QMAKE_CXXFLAGS_CXX11) \$(QMAKE_CXXFLAGS_SPLIT_SECTIONS)" + EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS) \$(QMAKE_CXXFLAGS_GNUCXX11) \$(QMAKE_CXXFLAGS_SPLIT_SECTIONS)" EXTRA_LFLAGS="\$(QMAKE_LFLAGS) \$(QMAKE_LFLAGS_GCSECTIONS)" if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then @@ -741,7 +741,7 @@ setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM" setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM" setBootstrapVariable QMAKE_CXXFLAGS - setBootstrapVariable QMAKE_CXXFLAGS_CXX11 + setBootstrapVariable QMAKE_CXXFLAGS_GNUCXX11 setBootstrapVariable QMAKE_CXXFLAGS_SPLIT_SECTIONS setBootstrapVariable QMAKE_LFLAGS setBootstrapVariable QMAKE_LFLAGS_GCSECTIONS --- a/configure.json 2018-01-18 11:58:43.109184900 +0100 +++ b/configure.json 2018-01-18 11:58:43.301789400 +0100 @@ -808,7 +808,7 @@ }, "largefile": { "label": "Large file support", - "condition": "!config.android && !config.integrity && !config.winrt", + "condition": "!config.android && !config.integrity && !config.winrt && !config.cygwin", "output": [ "privateConfig", { "type": "define", "name": "QT_LARGEFILE_SUPPORT", "value": 64 } --- a/config.tests/iconv/iconv.pro 2018-01-18 11:58:42.827929900 +0100 +++ b/config.tests/iconv/iconv.pro 2018-01-18 11:58:42.952898800 +0100 @@ -1,2 +1,2 @@ SOURCES = iconv.cpp -mac|mingw|openbsd|qnx|haiku:LIBS += -liconv +mac|mingw|openbsd|qnx|haiku|cygwin-*:LIBS += -liconv --- a/mkspecs/cygwin-g++/qmake.conf 2018-01-18 11:58:43.171683300 +0100 +++ b/mkspecs/cygwin-g++/qmake.conf 2018-01-18 11:58:43.301789400 +0100 @@ -5,71 +5,49 @@ # MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = cygwin unix posix -CONFIG += incremental unversioned_libname +QMAKE_PLATFORM = cygwin +CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib -QMAKE_COMPILER = gcc +include(../common/unix.conf) +# override Cygwin library prefixes and extensions +QMAKE_PREFIX_SHLIB = cyg +QMAKE_EXTENSION_SHLIB = dll +QMAKE_CYGWIN_EXE = 1 +QMAKE_CYGWIN_SHLIB = 1 -QMAKE_CC = gcc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = bison -y -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -pipe -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -Wall -W -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = -O2 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses +QMAKE_CFLAGS += -fno-keep-inline-dllexport -D_GNU_SOURCE +QMAKE_CFLAGS_PIC = QMAKE_CFLAGS_THREAD = -D_REENTRANT - -QMAKE_CXX = g++ -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = /usr/X11R6/include -QMAKE_LIBDIR_X11 = /usr/X11R6/lib -QMAKE_INCDIR_OPENGL = /usr/X11R6/include -QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib - -QMAKE_LINK = g++ -QMAKE_LINK_SHLIB = g++ -QMAKE_LINK_C = gcc -QMAKE_LINK_C_SHLIB = gcc -QMAKE_LFLAGS = -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = QMAKE_LFLAGS_SHLIB = -shared QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,-soname, -QMAKE_LFLAGS_THREAD = -QMAKE_LFLAGS_RPATH = -Wl,-rpath, +QMAKE_LFLAGS_SONAME = +QMAKE_LFLAGS_RPATH = +QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections + +QMAKE_INCDIR = +QMAKE_LIBDIR = +QMAKE_INCDIR_X11 = +QMAKE_LIBDIR_X11 = +QMAKE_INCDIR_OPENGL = +QMAKE_LIBDIR_OPENGL = QMAKE_LIBS = QMAKE_LIBS_DYNLOAD = -ldl QMAKE_LIBS_X11 = -lXext -lX11 QMAKE_LIBS_OPENGL = -lGL QMAKE_LIBS_THREAD = -lpthread -QMAKE_PREFIX_SHLIB = lib -QMAKE_EXTENSION_SHLIB = dll -QMAKE_PREFIX_STATICLIB = lib -QMAKE_EXTENSION_STATICLIB = a QMAKE_AR = ar cqs QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = +#QMAKE_STRIP = strip +#QMAKE_STRIPFLAGS_LIB += --strip-unneeded + +include(../common/gcc-base.conf) +include(../common/g++-base.conf) load(qt_config) --- a/mkspecs/cygwin-g++/qplatformdefs.h 2018-01-18 11:58:43.200616600 +0100 +++ b/mkspecs/cygwin-g++/qplatformdefs.h 2018-01-18 11:58:43.301789400 +0100 @@ -69,14 +69,12 @@ #include #include -// Cygwin does not provide and because it -// doesn't support SysV IPC or shared memory. See for example: -// http://afni.nimh.nih.gov/afni/afniboard/messages/1725.html +#include +#include #include #include #include #include -//#include #include #define QT_NO_USE_FSEEKO @@ -85,7 +83,7 @@ #undef QT_OPEN_LARGEFILE #define QT_OPEN_LARGEFILE 0 -#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) +#if defined(_XOPEN_SOURCE) && ((_XOPEN_SOURCE - 0) >= 500) #define QT_SNPRINTF ::snprintf #define QT_VSNPRINTF ::vsnprintf #endif --- a/mkspecs/features/create_cmake.prf 2018-01-19 08:21:38.861209700 +0100 +++ b/mkspecs/features/create_cmake.prf 2018-01-19 08:21:38.939103100 +0100 @@ -84,6 +84,12 @@ CMAKE_DLL_DIR = $$[QT_INSTALL_BINS]/ CMAKE_DLL_DIR_IS_ABSOLUTE = True } +} else:cygwin* { + CMAKE_DLL_DIR = $$cmakeRelativePath($$[QT_INSTALL_PREFIX]/bin/, $$[QT_INSTALL_PREFIX]) + contains(CMAKE_DLL_DIR, "^\\.\\./.*") { + CMAKE_DLL_DIR = $$[QT_INSTALL_PREFIX]/bin/ + CMAKE_DLL_DIR_IS_ABSOLUTE = True + } } else { CMAKE_DLL_DIR = $$CMAKE_LIB_DIR CMAKE_DLL_DIR_IS_ABSOLUTE = $$CMAKE_LIB_DIR_IS_ABSOLUTE @@ -145,6 +151,17 @@ CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.lib CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.lib } + } else:cygwin-* { + isEmpty(CMAKE_STATIC_TYPE) { + CMAKE_PlUGIN_PFX = cyg + CMAKE_PlUGIN_EXT = .dll + } else { + CMAKE_PlUGIN_PFX = lib + CMAKE_PlUGIN_EXT = .a + } + + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${CMAKE_PlUGIN_PFX}$${TARGET}$${CMAKE_PlUGIN_EXT} + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${CMAKE_PlUGIN_PFX}$${TARGET}$${CMAKE_PlUGIN_EXT} } else { mac { isEmpty(CMAKE_STATIC_TYPE): CMAKE_PlUGIN_EXT = .dylib @@ -255,6 +272,25 @@ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib } } +} else:cygwin-* { + CMAKE_WINDOWS_BUILD = "true" + CMAKE_CYGWIN_BUILD = "true" + !isEmpty(CMAKE_STATIC_TYPE) { + CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.a + CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a + CMAKE_PRL_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.prl + CMAKE_PRL_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.prl + } else:unversioned_libname { + CMAKE_LIB_SONAME = cyg$${CMAKE_QT_STEM}.dll + CMAKE_LIB_FILE_LOCATION_DEBUG = $${CMAKE_LIB_SONAME} + CMAKE_LIB_FILE_LOCATION_RELEASE = $${CMAKE_LIB_SONAME} + } else { + CMAKE_LIB_SONAME = cyg$${CMAKE_QT_STEM}-$$section(QT.$${MODULE}.VERSION, ., 0, 0).dll + CMAKE_LIB_FILE_LOCATION_DEBUG = $${CMAKE_LIB_SONAME} + CMAKE_LIB_FILE_LOCATION_RELEASE = $${CMAKE_LIB_SONAME} + CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.dll.a + CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.dll.a + } } else { !isEmpty(CMAKE_STATIC_TYPE) { CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.a --- a/mkspecs/features/qt_app.prf 2018-01-18 11:58:44.231050200 +0100 +++ b/mkspecs/features/qt_app.prf 2018-01-18 11:58:44.606065900 +0100 @@ -29,6 +29,7 @@ contains(QT, core(-private)?|xml) { QT -= core core-private xml QT += bootstrap-private + LIBS_PRIVATE += -lz } target.path = $$[QT_HOST_BINS] } else { --- a/mkspecs/features/qt_functions.prf 2018-01-18 11:58:43.239313500 +0100 +++ b/mkspecs/features/qt_functions.prf 2018-01-18 11:58:43.317437900 +0100 @@ -187,7 +187,7 @@ !isEmpty(deps) { libs = libs deppath.CONFIG = prepend - equals(QMAKE_HOST.os, Windows) { + contains(QMAKE_HOST.os, Windows|CYGWIN.*) { libs = bins deppath.CONFIG = always_prepend deppath.name = PATH