mirror of
https://github.com/ValveSoftware/Proton.git
synced 2025-01-24 20:48:12 +03:00
build: Install builtin libraries to target-arch lib subdirs.
This commit is contained in:
parent
73982eb20f
commit
ec2a650072
@ -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:
|
||||
|
@ -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
|
||||
|
8
proton
8
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/")
|
||||
|
Loading…
x
Reference in New Issue
Block a user