diff options
-rw-r--r-- | mkspecs/common/angle.conf | 9 | ||||
-rw-r--r-- | mkspecs/common/msvc-desktop.conf | 7 | ||||
-rw-r--r-- | mkspecs/common/windows-gles.conf | 7 | ||||
-rw-r--r-- | mkspecs/common/winrt_winphone/qmake.conf | 5 | ||||
-rw-r--r-- | mkspecs/win32-g++/qmake.conf | 8 | ||||
-rw-r--r-- | mkspecs/win32-icc/qmake.conf | 9 | ||||
-rw-r--r-- | src/angle/src/QtANGLE/QtANGLE.pro (renamed from src/angle/src/libGLESv2/libGLESv2.pro) | 65 | ||||
-rw-r--r-- | src/angle/src/libEGL/libEGL.pro | 26 | ||||
-rw-r--r-- | src/angle/src/src.pro | 2 | ||||
-rw-r--r-- | src/plugins/platforms/windows/windows.pri | 4 |
10 files changed, 84 insertions, 58 deletions
diff --git a/mkspecs/common/angle.conf b/mkspecs/common/angle.conf deleted file mode 100644 index fffdb581c5..0000000000 --- a/mkspecs/common/angle.conf +++ /dev/null @@ -1,9 +0,0 @@ -# Renaming these files requires that the LIBRARY entry of their corresponding -# def files are also updated to reflect the name. -# The .def files are found in the angle directories: -# -# qtbase\src\3rdparty\angle\src\libEGL\libEGL[d?].def -# qtbase\src\3rdparty\angle\src\libEGL\libGLESv2[d?].def - -LIBEGL_NAME="libEGL" -LIBGLESV2_NAME="libGLESv2" diff --git a/mkspecs/common/msvc-desktop.conf b/mkspecs/common/msvc-desktop.conf index 1b9d57bff0..b72cdff252 100644 --- a/mkspecs/common/msvc-desktop.conf +++ b/mkspecs/common/msvc-desktop.conf @@ -9,8 +9,6 @@ isEmpty(MSC_VER)|isEmpty(MSVC_VER): error("Source mkspec must set both MSC_VER a # Baseline: Visual Studio 2005 (8.0), VC++ 14.0 # -include(angle.conf) - MAKEFILE_GENERATOR = MSVC.NET QMAKE_PLATFORM = win32 QMAKE_COMPILER = msvc @@ -92,8 +90,8 @@ QMAKE_LIBS_CORE = kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib QMAKE_LIBS_GUI = gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib user32.lib advapi32.lib QMAKE_LIBS_NETWORK = ws2_32.lib QMAKE_LIBS_OPENGL = glu32.lib opengl32.lib gdi32.lib user32.lib -QMAKE_LIBS_OPENGL_ES2 = $${LIBEGL_NAME}.lib $${LIBGLESV2_NAME}.lib gdi32.lib user32.lib -QMAKE_LIBS_OPENGL_ES2_DEBUG = $${LIBEGL_NAME}d.lib $${LIBGLESV2_NAME}d.lib gdi32.lib user32.lib +QMAKE_LIBS_OPENGL_ES2 = gdi32.lib user32.lib +QMAKE_LIBS_OPENGL_ES2_DEBUG = gdi32.lib user32.lib QMAKE_LIBS_COMPAT = advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32.lib ws2_32.lib QMAKE_LIBS_QT_ENTRY = -lqtmain @@ -107,5 +105,6 @@ VCSOLUTION_EXTENSION = .sln VCPROJ_KEYWORD = Qt4VSv1.0 include(msvc-base.conf) +include(windows-gles.conf) unset(MSC_VER) diff --git a/mkspecs/common/windows-gles.conf b/mkspecs/common/windows-gles.conf new file mode 100644 index 0000000000..6781158cc1 --- /dev/null +++ b/mkspecs/common/windows-gles.conf @@ -0,0 +1,7 @@ +# Output name of Qt's ANGLE GLES library. (Note that this is different from upstream ANGLE) +LIBQTANGLE_NAME = QtANGLE + +# Set up .lib files used for linking +QMAKE_LIBS_OPENGL_ES2 = -l$${LIBQTANGLE_NAME} $$QMAKE_LIBS_OPENGL_ES2 +QMAKE_LIBS_OPENGL_ES2_DEBUG = -l$${LIBQTANGLE_NAME}d $$QMAKE_LIBS_OPENGL_ES2 + diff --git a/mkspecs/common/winrt_winphone/qmake.conf b/mkspecs/common/winrt_winphone/qmake.conf index 05c9bd39a5..0c3af4a7a8 100644 --- a/mkspecs/common/winrt_winphone/qmake.conf +++ b/mkspecs/common/winrt_winphone/qmake.conf @@ -4,8 +4,6 @@ # Written for Microsoft Visual C++ # -include(../angle.conf) - MAKEFILE_GENERATOR = MSBUILD QMAKE_COMPILER = msvc QMAKE_PLATFORM = winrt win32 @@ -80,8 +78,6 @@ QMAKE_LIBS += runtimeobject.lib QMAKE_LIBS_CORE += ws2_32.lib QMAKE_LIBS_GUI = QMAKE_LIBS_NETWORK += ws2_32.lib -QMAKE_LIBS_OPENGL_ES2 = $${LIBEGL_NAME}.lib $${LIBGLESV2_NAME}.lib -QMAKE_LIBS_OPENGL_ES2_DEBUG = $${LIBEGL_NAME}d.lib $${LIBGLESV2_NAME}d.lib QMAKE_LIBS_QT_ENTRY = -lqtmain @@ -98,6 +94,7 @@ WINRT_MANIFEST.capabilities = defaults WINRT_MANIFEST.capabilities_device = defaults include(../msvc-base.conf) +include(../windows-gles.conf) unset(MSC_VER) diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf index 6ed39745ae..bb172f46a6 100644 --- a/mkspecs/win32-g++/qmake.conf +++ b/mkspecs/win32-g++/qmake.conf @@ -8,7 +8,6 @@ # load(device_config) -include(../common/angle.conf) MAKEFILE_GENERATOR = MINGW QMAKE_PLATFORM = win32 mingw @@ -100,8 +99,8 @@ QMAKE_LIBS_CORE = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lws2_32 -lole32 -luuid -luser32 -ladvapi32 QMAKE_LIBS_NETWORK = -lws2_32 QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32 -QMAKE_LIBS_OPENGL_ES2 = -l$${LIBEGL_NAME} -l$${LIBGLESV2_NAME} -lgdi32 -luser32 -QMAKE_LIBS_OPENGL_ES2_DEBUG = -l$${LIBEGL_NAME}d -l$${LIBGLESV2_NAME}d -lgdi32 -luser32 +QMAKE_LIBS_OPENGL_ES2 = -lgdi32 -luser32 +QMAKE_LIBS_OPENGL_ES2_DEBUG = -lgdi32 -luser32 QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32 QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain @@ -113,4 +112,7 @@ QMAKE_STRIP = $${CROSS_COMPILE}strip QMAKE_STRIPFLAGS_LIB += --strip-unneeded QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy QMAKE_NM = $${CROSS_COMPILE}nm -P + +include(../common/windows-gles.conf) + load(qt_config) diff --git a/mkspecs/win32-icc/qmake.conf b/mkspecs/win32-icc/qmake.conf index dd54131526..e19570bf16 100644 --- a/mkspecs/win32-icc/qmake.conf +++ b/mkspecs/win32-icc/qmake.conf @@ -4,8 +4,6 @@ # Written for Intel C++ # -include(../common/angle.conf) - MAKEFILE_GENERATOR = MSVC.NET QMAKE_PLATFORM = win32 CONFIG += incremental flat debug_and_release debug_and_release_target @@ -89,8 +87,8 @@ QMAKE_LIBS_CORE = kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib QMAKE_LIBS_GUI = gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib user32.lib advapi32.lib QMAKE_LIBS_NETWORK = ws2_32.lib QMAKE_LIBS_OPENGL = glu32.lib opengl32.lib gdi32.lib user32.lib delayimp.lib -QMAKE_LIBS_OPENGL_ES2 = $${LIBEGL_NAME}.lib $${LIBGLESV2_NAME}.lib gdi32.lib user32.lib -QMAKE_LIBS_OPENGL_ES2_DEBUG = $${LIBEGL_NAME}d.lib $${LIBGLESV2_NAME}d.lib gdi32.lib user32.lib +QMAKE_LIBS_OPENGL_ES2 = gdi32.lib user32.lib +QMAKE_LIBS_OPENGL_ES2_DEBUG = gdi32.lib user32.lib QMAKE_LIBS_COMPAT = advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32.lib ws2_32.lib QMAKE_LIBS_QT_ENTRY = -lqtmain @@ -99,4 +97,7 @@ QMAKE_LIB = xilib /NOLOGO QMAKE_RC = rc DSP_EXTENSION = .dsp + +include(../common/windows-gles.conf) + load(qt_config) diff --git a/src/angle/src/libGLESv2/libGLESv2.pro b/src/angle/src/QtANGLE/QtANGLE.pro index b699ae159a..ee3111b6ee 100644 --- a/src/angle/src/libGLESv2/libGLESv2.pro +++ b/src/angle/src/QtANGLE/QtANGLE.pro @@ -1,10 +1,59 @@ CONFIG += simd no_batch include(../common/common.pri) +TARGET=$$qtLibraryTarget($${LIBQTANGLE_NAME}) DEF_FILE_TARGET=$${TARGET} -TARGET=$$qtLibraryTarget($${LIBGLESV2_NAME}) INCLUDEPATH += $$OUT_PWD/.. $$ANGLE_DIR/src/libANGLE +!build_pass { + # Merge libGLESv2 and libEGL .def files located under $$ANGLE_DIR into QtANGLE$${SUFFIX}.def + DEF_FILES = \ + libGLESv2/libGLESv2 \ + libEGL/libEGL + + SUFFIX = + for (DEBUG_RELEASE, $$list(0 1)) { + DEF_MERGED = \ + "LIBRARY $${LIBQTANGLE_NAME}$$SUFFIX" \ + EXPORTS + mingw: SUFFIX = $${SUFFIX}_mingw32 + PASS = 0 + MAX_ORDINAL = 0 + + for (DEF_FILE, DEF_FILES) { + DEF_FILE_PATH = $$ANGLE_DIR/src/$$DEF_FILE$${SUFFIX}.def + DEF_SRC = $$cat($$DEF_FILE_PATH, lines) + DEF_MERGED += \ + ";" \ + "; Generated from:" \ + "; $$DEF_FILE_PATH" + + for (line, DEF_SRC) { + !contains(line, "(LIBRARY.*|EXPORTS)") { + LINESPLIT = $$split(line, @) + !count(LINESPLIT, 1) { + equals(PASS, 1) { + # In the second .def file we must allocate new ordinals in order + # to not clash with the ordinals from the first file. We then start off + # from MAX_ORDINAL + 1 and increase sequentially + MAX_ORDINAL = $$num_add($$MAX_ORDINAL, 1) + line = $$section(line, @, 0, -2)@$$MAX_ORDINAL + } else { + ORDINAL = $$last(LINESPLIT) + greaterThan(ORDINAL, $$MAX_ORDINAL): \ + MAX_ORDINAL = $$ORDINAL + } + } + DEF_MERGED += $$line + } + } + PASS = 1 + } + write_file($${LIBQTANGLE_NAME}$${SUFFIX}.def, DEF_MERGED)|error() + SUFFIX = "d" + } +} + # Remember to adapt tools/configure/configureapp.cpp if the Direct X version changes. !winrt: \ LIBS_PRIVATE += -ld3d9 @@ -234,7 +283,8 @@ SOURCES += \ $$ANGLE_DIR/src/libGLESv2/entry_points_gles_3_0.cpp \ $$ANGLE_DIR/src/libGLESv2/entry_points_gles_3_0_ext.cpp \ $$ANGLE_DIR/src/libGLESv2/global_state.cpp \ - $$ANGLE_DIR/src/libGLESv2/libGLESv2.cpp + $$ANGLE_DIR/src/libGLESv2/libGLESv2.cpp \ + $$ANGLE_DIR/src/libEGL/libEGL.cpp SSE2_SOURCES += $$ANGLE_DIR/src/libANGLE/renderer/d3d/loadimageSSE2.cpp @@ -361,8 +411,8 @@ angle_d3d11 { } !static { - DEF_FILE = $$ANGLE_DIR/src/libGLESv2/$${DEF_FILE_TARGET}.def - mingw:equals(QT_ARCH, i386): DEF_FILE = $$ANGLE_DIR/src/libGLESv2/$${DEF_FILE_TARGET}_mingw32.def + DEF_FILE = $$PWD/$${DEF_FILE_TARGET}.def + mingw: equals(QT_ARCH, i386): DEF_FILE = $$PWD/$${DEF_FILE_TARGET}_mingw32.def } else { DEFINES += DllMain=DllMain_ANGLE # prevent symbol from conflicting with the user's DllMain } @@ -610,5 +660,10 @@ gles3_headers.files = \ $$ANGLE_DIR/include/GLES3/gl3ext.h \ $$ANGLE_DIR/include/GLES3/gl3platform.h gles3_headers.path = $$[QT_INSTALL_HEADERS]/QtANGLE/GLES3 -INSTALLS += khr_headers gles2_headers +egl_headers.files = \ + $$ANGLE_DIR/include/EGL/egl.h \ + $$ANGLE_DIR/include/EGL/eglext.h \ + $$ANGLE_DIR/include/EGL/eglplatform.h +egl_headers.path = $$[QT_INSTALL_HEADERS]/QtANGLE/EGL +INSTALLS += khr_headers gles2_headers egl_headers angle_d3d11: INSTALLS += gles3_headers diff --git a/src/angle/src/libEGL/libEGL.pro b/src/angle/src/libEGL/libEGL.pro deleted file mode 100644 index 860b60735e..0000000000 --- a/src/angle/src/libEGL/libEGL.pro +++ /dev/null @@ -1,26 +0,0 @@ -include(../common/common.pri) -DEF_FILE_TARGET=$${TARGET} -TARGET=$$qtLibraryTarget($${LIBEGL_NAME}) -winrt: LIBS_PRIVATE += -ld3d11 - -LIBS_PRIVATE += -ldxguid -L$$QT_BUILD_TREE/lib -l$$qtLibraryTarget($${LIBGLESV2_NAME}) - -DEFINES += GL_APICALL= GL_GLEXT_PROTOTYPES= EGLAPI= LIBEGL_IMPLEMENTATION - -HEADERS += \ - $$ANGLE_DIR/src/libEGL/resource.h - -SOURCES += \ - $$ANGLE_DIR/src/libEGL/libEGL.cpp - -!static { - DEF_FILE = $$ANGLE_DIR/src/libEGL/$${DEF_FILE_TARGET}.def - mingw:equals(QT_ARCH, i386): DEF_FILE = $$ANGLE_DIR/src/libEGL/$${DEF_FILE_TARGET}_mingw32.def -} - -egl_headers.files = \ - $$ANGLE_DIR/include/EGL/egl.h \ - $$ANGLE_DIR/include/EGL/eglext.h \ - $$ANGLE_DIR/include/EGL/eglplatform.h -egl_headers.path = $$[QT_INSTALL_HEADERS]/QtANGLE/EGL -INSTALLS += egl_headers diff --git a/src/angle/src/src.pro b/src/angle/src/src.pro index d1f5f57591..77c3ee7198 100644 --- a/src/angle/src/src.pro +++ b/src/angle/src/src.pro @@ -1,3 +1,3 @@ TEMPLATE = subdirs -SUBDIRS += compiler libGLESv2 libEGL +SUBDIRS += compiler QtANGLE CONFIG += ordered diff --git a/src/plugins/platforms/windows/windows.pri b/src/plugins/platforms/windows/windows.pri index 6929f7365f..35d4c85a73 100644 --- a/src/plugins/platforms/windows/windows.pri +++ b/src/plugins/platforms/windows/windows.pri @@ -123,5 +123,5 @@ qtConfig(freetype) { qtConfig(accessibility): include($$PWD/accessible/accessible.pri) -DEFINES *= LIBEGL_NAME=$${LIBEGL_NAME} -DEFINES *= LIBGLESV2_NAME=$${LIBGLESV2_NAME} +DEFINES *= LIBEGL_NAME=$${LIBQTANGLE_NAME} +DEFINES *= LIBGLESV2_NAME=$${LIBQTANGLE_NAME} |