diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2019-08-09 17:34:31 -0700 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2019-08-12 19:28:48 -0700 |
commit | c879ce078d42d1cea2f497df2fbebea34d9d6746 (patch) | |
tree | fb1c3bff4adefe5d2d0290381b2ffc8aec5942cc | |
parent | acfe1ee0dd2ebe6bdfe04daf29c43f4888b08155 (diff) | |
download | servo-c879ce078d42d1cea2f497df2fbebea34d9d6746.tar.gz servo-c879ce078d42d1cea2f497df2fbebea34d9d6746.zip |
Use packaged OpenXR
-rw-r--r-- | python/servo/build_commands.py | 29 | ||||
-rw-r--r-- | python/servo/packages.py | 1 | ||||
-rw-r--r-- | support/hololens/ServoApp/ServoApp.vcxproj | 17 | ||||
-rw-r--r-- | support/hololens/ServoApp/ServoApp.vcxproj.filters | 12 | ||||
-rw-r--r-- | support/hololens/create-openxr-package.bat | 29 |
5 files changed, 86 insertions, 2 deletions
diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py index 206d00250e6..76d75a0673b 100644 --- a/python/servo/build_commands.py +++ b/python/servo/build_commands.py @@ -696,6 +696,12 @@ class MachCommands(CommandBase): if not package_gstreamer_dlls(env, servo_exe_dir, target_triple, uwp): status = 1 + if uwp: + # copy needed openxr DLLs in to servo.exe dir + print("Packaging openxr DLLs") + if not self.package_openxr_dlls(env, servo_exe_dir, target_triple): + status = 1 + # UWP app packaging already bundles all required DLLs for us. print("Packaging MSVC DLLs") if not package_msvc_dlls(servo_exe_dir, target_triple, vcinstalldir, vs_version): @@ -746,6 +752,29 @@ class MachCommands(CommandBase): opts += params return check_call(["cargo", "clean"] + opts, env=self.build_env(), verbose=verbose) + def package_openxr_dlls(self, env, servo_exe_dir, target): + target_arch = target.split('-')[0] + if target_arch == "aarch64": + arch = "arm64" + elif target_arch == "x64": + arch = "x64" + else: + print("ERROR: We do not have openxr_loader DLLs for %s" % target_arch) + return False + + # The package on S3 contains both debug and release DLLs, but + # by default we only use release DLLs. If you need to debug OpenXR itself, + # change this to Debug. + dll_path = os.path.join(self.msvc_package_dir("openxr-loader-uwp"), arch, "Release", "openxr_loader.dll") + + try: + shutil.copy(dll_path, servo_exe_dir) + except: + print("ERROR: Could not find %s" % dll_path) + return False + + return True + def gstreamer_root(target, env): arch = { diff --git a/python/servo/packages.py b/python/servo/packages.py index 3fa2f036fb8..1da0d49b13d 100644 --- a/python/servo/packages.py +++ b/python/servo/packages.py @@ -9,4 +9,5 @@ WINDOWS_MSVC = { "ninja": "1.7.1", "openssl": "111.3.0+1.1.1c-vs2017", "gstreamer-uwp": "1.16.0.3", + "openxr-loader-uwp": "1.0", } diff --git a/support/hololens/ServoApp/ServoApp.vcxproj b/support/hololens/ServoApp/ServoApp.vcxproj index c725d4b94c2..df1d72a2ce6 100644 --- a/support/hololens/ServoApp/ServoApp.vcxproj +++ b/support/hololens/ServoApp/ServoApp.vcxproj @@ -173,8 +173,8 @@ <AppxManifest Include="Package.appxmanifest"> <SubType>Designer</SubType> </AppxManifest> - <None Include="C:\Users\manis\dev\dlls\openxr_loader.dll"> - <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</DeploymentContent> + <None Include="..\..\..\target\aarch64-pc-windows-msvc\debug\openxr_loader.dll"> + <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</DeploymentContent> </None> <None Include="..\..\..\target\aarch64-pc-windows-msvc\debug\libcrypto.dll"> <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</DeploymentContent> @@ -191,6 +191,9 @@ <None Include="..\..\..\target\aarch64-pc-windows-msvc\debug\vcruntime140.dll"> <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</DeploymentContent> </None> + <None Include="..\..\..\target\aarch64-pc-windows-msvc\release\openxr_loader.dll"> + <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</DeploymentContent> + </None> <None Include="..\..\..\target\aarch64-pc-windows-msvc\release\libcrypto.dll"> <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</DeploymentContent> </None> @@ -224,6 +227,13 @@ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</DeploymentContent> </None> + <None Include="..\..\..\target\debug\openxr_loader.dll"> + <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> + <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">false</DeploymentContent> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> + <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</DeploymentContent> + </None> <None Include="..\..\..\target\debug\libcrypto.dll"> <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> @@ -239,6 +249,9 @@ </DeploymentContent> <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent> </None> + <None Include="..\..\..\target\release\openxr_loader.dll"> + <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent> + </None> <None Include="..\..\..\target\release\libcrypto.dll"> <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent> </None> diff --git a/support/hololens/ServoApp/ServoApp.vcxproj.filters b/support/hololens/ServoApp/ServoApp.vcxproj.filters index 836ab85c858..134e6e7cc95 100644 --- a/support/hololens/ServoApp/ServoApp.vcxproj.filters +++ b/support/hololens/ServoApp/ServoApp.vcxproj.filters @@ -90,6 +90,9 @@ <None Include="Content\VertexShaderShared.hlsl"> <Filter>Content</Filter> </None> + <None Include="..\..\..\target\debug\openxr_loader.dll"> + <Filter>DebugServoDLLs</Filter> + </None> <None Include="..\..\..\target\debug\libcrypto.dll"> <Filter>DebugServoDLLs</Filter> </None> @@ -102,12 +105,18 @@ <None Include="..\..\..\target\debug\simpleservo.dll"> <Filter>DebugServoDLLs</Filter> </None> + <None Include="..\..\..\target\release\openxr_loader.dll"> + <Filter>ReleaseServoDLLs</Filter> + </None> <None Include="..\..\..\target\release\libcrypto.dll"> <Filter>ReleaseServoDLLs</Filter> </None> <None Include="..\..\..\target\release\libssl.dll"> <Filter>ReleaseServoDLLs</Filter> </None> + <None Include="..\..\..\target\aarch64-pc-windows-msvc\debug\openxr_loader.dll"> + <Filter>DebugARM64ServoDLLs</Filter> + </None> <None Include="..\..\..\target\aarch64-pc-windows-msvc\debug\libcrypto.dll"> <Filter>DebugARM64ServoDLLs</Filter> </None> @@ -117,6 +126,9 @@ <None Include="..\..\..\target\aarch64-pc-windows-msvc\debug\simpleservo.dll"> <Filter>DebugARM64ServoDLLs</Filter> </None> + <None Include="..\..\..\target\aarch64-pc-windows-msvc\release\openxr_loader.dll"> + <Filter>ReleaseARM64ServoDLLs</Filter> + </None> <None Include="..\..\..\target\aarch64-pc-windows-msvc\release\libcrypto.dll"> <Filter>ReleaseARM64ServoDLLs</Filter> </None> diff --git a/support/hololens/create-openxr-package.bat b/support/hololens/create-openxr-package.bat new file mode 100644 index 00000000000..67180b9b609 --- /dev/null +++ b/support/hololens/create-openxr-package.bat @@ -0,0 +1,29 @@ +REM USAGE +REM Clone https://github.com/microsoft/OpenXR-SDK-VisualStudio, open the openxr_loader_uwp project +REM Change the project output type to a dynamic library +REM Build it for Debug/Release x64/ARM64 +REM create-openxr-package path\to\outputdir path\to\OpenXR-SDK-VisualStudio +REM name the outputdir openxr-loader-uwp-versionnumber and zip it + +cd %1 +mkdir arm64 +mkdir arm64\Debug +cd arm64\Debug +copy %2\bin\Debug\ARM64\openxr_loader_uwp\* . +ren *.* openxr_loader.* +cd .. +mkdir Release +cd Release +copy %2\bin\Release\ARM64\openxr_loader_uwp\* . +ren *.* openxr_loader.* +cd ..\.. +mkdir x64 +mkdir x64\Debug +cd x64\Debug +copy %2\bin\Debug\x64\openxr_loader_uwp\* . +ren *.* openxr_loader.* +cd .. +mkdir Release +cd Release +copy %2\bin\Release\x64\openxr_loader_uwp\* . +ren *.* openxr_loader.*
\ No newline at end of file |