diff --git a/make/rules-common.mk b/make/rules-common.mk index 4d72ac06..c90315f1 100644 --- a/make/rules-common.mk +++ b/make/rules-common.mk @@ -181,6 +181,11 @@ PKG_CONFIG_TARGET_64 := x86_64-linux-gnu PKG_CONFIG_TARGET_CROSS32 := i386-w64-mingw32 PKG_CONFIG_TARGET_CROSS64 := x86_64-w64-mingw32 +LIBDIR_WINE_32 := wine/i386-unix +LIBDIR_WINE_64 := wine/x86_64-unix +LIBDIR_WINE_CROSS32 := wine/i386-windows +LIBDIR_WINE_CROSS64 := wine/x86_64-windows + $(OBJ)/.%-post-build32: touch $@ $(OBJ)/.%-post-build64: diff --git a/make/rules-winemaker.mk b/make/rules-winemaker.mk index de8123cb..69688a03 100644 --- a/make/rules-winemaker.mk +++ b/make/rules-winemaker.mk @@ -32,9 +32,10 @@ $$(OBJ)/.$(1)-build$(3): $$(MAKE) -C "$$($(2)_OBJ$(3))" LIBRARIES="$$($(2)_LDFLAGS)" cd "$$($(2)_OBJ$(3))" && touch "$(basename $(4)).spec" && env $$($(2)_ENV$(3)) \ winebuild --$(lastword $(subst ., ,$(4))) --fake-module -E "$(basename $(4)).spec" -o "$(4).fake" - mkdir -p $$($(2)_DST$(3))/lib$(subst 32,,$(3))/wine/fakedlls/ - cp -a $$($(2)_OBJ$(3))/$(4).so $$($(2)_DST$(3))/lib$(subst 32,,$(3))/wine/ - cp -a $$($(2)_OBJ$(3))/$(4).fake $$($(2)_DST$(3))/lib$(subst 32,,$(3))/wine/fakedlls/$(4) + mkdir -p $$($(2)_LIBDIR$(3))/$(LIBDIR_WINE_$(3)) + cp -a $$($(2)_OBJ$(3))/$(4).so $$($(2)_LIBDIR$(3))/$(LIBDIR_WINE_$(3))/ + mkdir -p $$($(2)_LIBDIR$(3))/$(LIBDIR_WINE_CROSS$(3)) + cp -a $$($(2)_OBJ$(3))/$(4).fake $$($(2)_LIBDIR$(3))/$(LIBDIR_WINE_CROSS$(3))/$(4) touch $$@ endif endef diff --git a/proton b/proton index 16ce91b9..8df3d670 100755 --- a/proton +++ b/proton @@ -57,7 +57,7 @@ def log(msg): def file_is_wine_builtin_dll(path): if os.path.islink(path): contents = os.readlink(path) - if os.path.dirname(contents).endswith(('/lib/wine', '/lib/wine/fakedlls', '/lib64/wine', '/lib64/wine/fakedlls')): + if os.path.dirname(contents).endswith(('/lib/wine/i386-unix', '/lib/wine/i386-windows', '/lib64/wine/x86_64-unix', '/lib64/wine/x86_64-windows')): # This may be a broken link to a dll in a removed Proton install return True if not os.path.exists(path): @@ -502,7 +502,7 @@ class CompatData: def pfx_copy(self, src, dst, dll_copy=False): if os.path.islink(src): contents = os.readlink(src) - if os.path.dirname(contents).endswith(('/lib/wine', '/lib/wine/fakedlls', '/lib64/wine', '/lib64/wine/fakedlls')): + if os.path.dirname(contents).endswith(('/lib/wine/i386-unix', '/lib/wine/i386-windows', '/lib64/wine/x86_64-unix', '/lib64/wine/x86_64-windows')): # wine builtin dll # make the destination an absolute symlink contents = os.path.normpath(os.path.join(os.path.dirname(src), contents)) @@ -760,8 +760,8 @@ class CompatData: #copy openvr files into place dst = self.prefix_dir + "/drive_c/vrclient/bin/" makedirs(dst) - try_copy(g_proton.lib_dir + "wine/fakedlls/vrclient.dll", dst) - try_copy(g_proton.lib64_dir + "wine/fakedlls/vrclient_x64.dll", dst) + try_copy(g_proton.lib_dir + "wine/i386-windows/vrclient.dll", dst) + try_copy(g_proton.lib64_dir + "wine/x86_64-windows/vrclient_x64.dll", dst) try_copy(g_proton.lib_dir + "wine/dxvk/openvr_api_dxvk.dll", self.prefix_dir + "/drive_c/windows/syswow64/") try_copy(g_proton.lib64_dir + "wine/dxvk/openvr_api_dxvk.dll", self.prefix_dir + "/drive_c/windows/system32/")