Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikkel Krautz <mikkel@krautz.dk>2015-01-23 19:02:59 +0300
committerMikkel Krautz <mikkel@krautz.dk>2015-04-22 22:03:39 +0300
commit3a6c4f0fee7b1d56b9cef25d422833c7c6633dd8 (patch)
tree4d5bb80a614ac03181b77fa5092094f9167a0df2 /overlay
parent4a478f7f04d11dcda7a63c4103830a555803f045 (diff)
Build two separate Windows overlays - one for x86 and one for x86_64.
This splits fx11 into an x86 variant and an x64 variant. This creates effects11_x86.lib and effects11_x64.lib, instead of the single effects11.lib we had previously. The minhook build is also tweaked. However, since minhook is only used on x86_64, it is only built for x86_64. Consequently, the library is still called minhook.lib. The overlay itself is split into mumble_ol.dll and mumble_ol.exe for x86, and mumble_ol_x64.dll and mumble_ol_x64.exe for x86_64.
Diffstat (limited to 'overlay')
-rw-r--r--overlay/overlay-shared.pro71
-rw-r--r--overlay/overlay.pro62
-rw-r--r--overlay/overlay_exe/overlay_exe-shared.pro38
-rw-r--r--overlay/overlay_exe/overlay_exe.cpp2
-rw-r--r--overlay/overlay_exe/overlay_exe.h6
-rw-r--r--overlay/overlay_exe/overlay_exe.pro40
6 files changed, 120 insertions, 99 deletions
diff --git a/overlay/overlay-shared.pro b/overlay/overlay-shared.pro
new file mode 100644
index 000000000..fe1af59ff
--- /dev/null
+++ b/overlay/overlay-shared.pro
@@ -0,0 +1,71 @@
+include (../compiler.pri)
+
+VERSION = 1.3.0
+TARGET_EXT = .dll
+TEMPLATE = lib
+CONFIG -= qt
+CONFIG *= dll shared debug_and_release warn_on
+CONFIG -= embed_manifest_dll
+TARGET = mumble_ol
+RC_FILE = mumble_ol.rc
+SOURCES = lib.cpp d3d9.cpp dxgi.cpp d3d10.cpp d3d11.cpp ods.cpp opengl.cpp HardHook.cpp D11StateBlock.cpp
+HEADERS = lib.h ods.h HardHook.h overlay_blacklist.h D11StateBlock.h ../3rdparty/GL/glext.h
+EFFECTS = overlay.fx
+DIST = overlay.h overlay.fx HardHook.h
+FX11DIR = "../3rdparty/fx11-src"
+FX11DIR_BUILD = $$replace(FX11DIR,-src,-build)
+
+DEFINES -= UNICODE
+
+QMAKE_CXXFLAGS_RELEASE -= -MD
+QMAKE_CXXFLAGS_DEBUG -= -MDd
+
+QMAKE_CXXFLAGS_RELEASE *= -MT
+QMAKE_CXXFLAGS_DEBUG *= -MTd
+
+INCLUDEPATH *= "$$FX11DIR/inc"
+
+LIBS *= -ldxguid -luuid -lole32 -luser32 -ladvapi32
+LIBS *= -ld3d9 -ld3d10 -ld3d11 -ld3dcompiler -ld3dx9 -ld3dx10 -ld3dx11 -ldxgi
+
+CONFIG(force-x86_64-toolchain) {
+ LIBS *= -leffects11_x64
+
+ DEFINES += USE_MINHOOK
+ INCLUDEPATH *= ../3rdparty/minhook-src/include
+ LIBS *= -lminhook
+}
+
+CONFIG(force-x86-toolchain) {
+ LIBS *= -leffects11_x86
+}
+
+CONFIG(release, debug|release) {
+ DESTDIR = ../release
+ QMAKE_LIBDIR += ../release
+}
+
+CONFIG(debug, debug|release) {
+ DESTDIR = ../debug
+ QMAKE_LIBDIR += ../debug
+ DEFINES *= DEBUG
+}
+
+# Override fxc binary for the x86 build.
+CONFIG(force-x86-toolchain) {
+ FXC = "\"$$(DXSDK_DIR)\Utilities\bin\x86\fxc.exe\""
+} else {
+ FXC = fxc.exe
+}
+
+fxc.output = ${QMAKE_FILE_BASE}.hex
+fxc.commands = $${FXC} /Tfx_4_0 /O3 /Fh${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
+fxc.input = EFFECTS
+fxc.CONFIG *= no_link target_predeps
+QMAKE_EXTRA_COMPILERS *= fxc
+
+fxc11.output = ${QMAKE_FILE_BASE}11.hex
+fxc11.commands = $${FXC} /Tfx_5_0 /O3 /Fh${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
+fxc11.input = EFFECTS
+fxc11.CONFIG *= no_link target_predeps
+QMAKE_EXTRA_COMPILERS *= fxc11
diff --git a/overlay/overlay.pro b/overlay/overlay.pro
index 94db854cd..db296e427 100644
--- a/overlay/overlay.pro
+++ b/overlay/overlay.pro
@@ -1,60 +1,2 @@
-include (../compiler.pri)
-
-VERSION = 1.3.0
-TARGET_EXT = .dll
-TEMPLATE = lib
-CONFIG -= qt
-CONFIG *= dll shared debug_and_release warn_on
-CONFIG -= embed_manifest_dll
-TARGET = mumble_ol
-RC_FILE = mumble_ol.rc
-SOURCES = lib.cpp d3d9.cpp dxgi.cpp d3d10.cpp d3d11.cpp ods.cpp opengl.cpp HardHook.cpp D11StateBlock.cpp
-HEADERS = lib.h ods.h HardHook.h overlay_blacklist.h D11StateBlock.h ../3rdparty/GL/glext.h
-EFFECTS = overlay.fx
-DIST = overlay.h overlay.fx HardHook.h
-FX11DIR = "../3rdparty/fx11-src"
-FX11DIR_BUILD = $$replace(FX11DIR,-src,-build)
-
-DEFINES -= UNICODE
-
-QMAKE_CXXFLAGS_RELEASE -= -MD
-QMAKE_CXXFLAGS_DEBUG -= -MDd
-
-QMAKE_CXXFLAGS_RELEASE *= -MT
-QMAKE_CXXFLAGS_DEBUG *= -MTd
-
-INCLUDEPATH *= "$$FX11DIR/inc"
-
-LIBS *= -ldxguid -luuid -lole32 -luser32 -ladvapi32
-LIBS *= -ld3d9 -ld3d10 -ld3d11 -ld3dcompiler -ld3dx9 -ld3dx10 -ld3dx11 -ldxgi
-
-equals(QMAKE_TARGET.arch, x86_64) {
- DEFINES += USE_MINHOOK
- INCLUDEPATH *= ../3rdparty/minhook-src/include
- LIBS *= -lminhook
-}
-
-CONFIG(release, debug|release) {
- DESTDIR = ../release
- QMAKE_LIBDIR += ../release
- LIBS *= -l$$FX11DIR_BUILD/release/effects11
-}
-
-CONFIG(debug, debug|release) {
- DESTDIR = ../debug
- QMAKE_LIBDIR += ../debug
- DEFINES *= DEBUG
- LIBS *= -l$$FX11DIR_BUILD/debug/effects11
-}
-
-fxc.output = ${QMAKE_FILE_BASE}.hex
-fxc.commands = fxc /Tfx_4_0 /O3 /Fh${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
-fxc.input = EFFECTS
-fxc.CONFIG *= no_link target_predeps
-QMAKE_EXTRA_COMPILERS *= fxc
-
-fxc11.output = ${QMAKE_FILE_BASE}11.hex
-fxc11.commands = fxc /Tfx_5_0 /O3 /Fh${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
-fxc11.input = EFFECTS
-fxc11.CONFIG *= no_link target_predeps
-QMAKE_EXTRA_COMPILERS *= fxc11
+CONFIG += force-x86-toolchain
+include(overlay-shared.pro) \ No newline at end of file
diff --git a/overlay/overlay_exe/overlay_exe-shared.pro b/overlay/overlay_exe/overlay_exe-shared.pro
new file mode 100644
index 000000000..acba31004
--- /dev/null
+++ b/overlay/overlay_exe/overlay_exe-shared.pro
@@ -0,0 +1,38 @@
+include(../../compiler.pri)
+
+TEMPLATE = app
+CONFIG -= qt
+CONFIG += debug_and_release
+TARGET = mumble_ol
+
+win32 {
+ DEFINES += WIN32 _WIN32
+ RC_FILE = overlay_exe.rc
+ LIBS *= -luser32 -lshlwapi
+
+ CONFIG(release, debug|release) {
+ QMAKE_CXXFLAGS_RELEASE -= -MD
+ QMAKE_CXXFLAGS += -MT
+ }
+ CONFIG(debug, debug|release) {
+ QMAKE_CXXFLAGS_DEBUG -= -MDd
+ QMAKE_CXXFLAGS += -MTd
+ }
+}
+
+SOURCES *= overlay_exe.cpp
+
+QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t)$$quote(mt.exe -nologo -updateresource:$(DESTDIR_TARGET);1 -manifest ../../src/mumble/mumble.appcompat.manifest)
+
+CONFIG(debug, debug|release) {
+ CONFIG += console
+ DEFINES *= DEBUG
+ DESTDIR = ../../debug
+}
+
+CONFIG(release, debug|release) {
+ DEFINES *= NDEBUG
+ DESTDIR = ../../release
+}
+
+include(../../symbols.pri)
diff --git a/overlay/overlay_exe/overlay_exe.cpp b/overlay/overlay_exe/overlay_exe.cpp
index ec524b7f5..be9dbc653 100644
--- a/overlay/overlay_exe/overlay_exe.cpp
+++ b/overlay/overlay_exe/overlay_exe.cpp
@@ -91,7 +91,7 @@ static std::wstring GetAbsoluteMumbleOverlayDllPath() {
std::wstring absDLLPath(exePath);
absDLLPath.append(L"\\");
- absDLLPath.append(L"mumble_ol.dll");
+ absDLLPath.append(MUMBLE_OVERLAY_DLL_NAME);
return absDLLPath;
}
diff --git a/overlay/overlay_exe/overlay_exe.h b/overlay/overlay_exe/overlay_exe.h
index e91719d1e..bbd9d2e20 100644
--- a/overlay/overlay_exe/overlay_exe.h
+++ b/overlay/overlay_exe/overlay_exe.h
@@ -31,6 +31,12 @@
#ifndef MUMBLE_OVERLAY_EXE_H_
#define MUMBLE_OVERLAY_EXE_H_
+#if defined(_M_IX86)
+const wchar_t *MUMBLE_OVERLAY_DLL_NAME = L"mumble_ol.dll";
+#elif defined (_M_X64)
+const wchar_t *MUMBLE_OVERLAY_DLL_NAME = L"mumble_ol_x64.dll";
+#endif
+
/// OverlayHelperError represents exit codes returned by the
/// overlay helper process (mumble_ol.exe) on Windows.
enum OverlayHelperError {
diff --git a/overlay/overlay_exe/overlay_exe.pro b/overlay/overlay_exe/overlay_exe.pro
index acba31004..cc86753eb 100644
--- a/overlay/overlay_exe/overlay_exe.pro
+++ b/overlay/overlay_exe/overlay_exe.pro
@@ -1,38 +1,2 @@
-include(../../compiler.pri)
-
-TEMPLATE = app
-CONFIG -= qt
-CONFIG += debug_and_release
-TARGET = mumble_ol
-
-win32 {
- DEFINES += WIN32 _WIN32
- RC_FILE = overlay_exe.rc
- LIBS *= -luser32 -lshlwapi
-
- CONFIG(release, debug|release) {
- QMAKE_CXXFLAGS_RELEASE -= -MD
- QMAKE_CXXFLAGS += -MT
- }
- CONFIG(debug, debug|release) {
- QMAKE_CXXFLAGS_DEBUG -= -MDd
- QMAKE_CXXFLAGS += -MTd
- }
-}
-
-SOURCES *= overlay_exe.cpp
-
-QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t)$$quote(mt.exe -nologo -updateresource:$(DESTDIR_TARGET);1 -manifest ../../src/mumble/mumble.appcompat.manifest)
-
-CONFIG(debug, debug|release) {
- CONFIG += console
- DEFINES *= DEBUG
- DESTDIR = ../../debug
-}
-
-CONFIG(release, debug|release) {
- DEFINES *= NDEBUG
- DESTDIR = ../../release
-}
-
-include(../../symbols.pri)
+CONFIG += force-x86-toolchain
+include(overlay_exe-shared.pro)