Add powershell script for windows wasm build

This commit is contained in:
Dave Dalcino
2022-10-05 21:52:26 -07:00
parent 125248c111
commit 0aed2cb926
3 changed files with 63 additions and 10 deletions

View File

@@ -30,9 +30,8 @@ import patch
from aqt.archives import TargetConfig from aqt.archives import TargetConfig
from aqt.exceptions import UpdaterError from aqt.exceptions import UpdaterError
from aqt.helper import Settings from aqt.helper import Settings
from aqt.metadata import QtRepoProperty, SimpleSpec, Version from aqt.metadata import ArchiveId, MetadataFactory, QtRepoProperty, SimpleSpec, Version
default_desktop_arch_dir = QtRepoProperty.default_desktop_arch_dir
dir_for_version = QtRepoProperty.dir_for_version dir_for_version = QtRepoProperty.dir_for_version
@@ -279,12 +278,14 @@ class Updater:
updater.patch_qtcore(target) updater.patch_qtcore(target)
elif version in SimpleSpec(">=5.0,<6.0"): elif version in SimpleSpec(">=5.0,<6.0"):
updater.patch_qmake() updater.patch_qmake()
else: # qt6 non-desktop else: # qt6 mobile or wasm
desktop_arch_dir = ( if installed_desktop_arch_dir is not None:
installed_desktop_arch_dir desktop_arch_dir = installed_desktop_arch_dir
if installed_desktop_arch_dir is not None else:
else default_desktop_arch_dir(os_name, version) # Use MetadataFactory to check what the default architecture should be
) meta = MetadataFactory(ArchiveId("qt", os_name, "desktop"))
desktop_arch_dir = meta.fetch_default_desktop_arch(version)
# NOTE: desktop_arch_dir may need to be wasm_32 in the wasm case
updater.patch_qmake_script(base_dir, version_dir, target.os_name, desktop_arch_dir) updater.patch_qmake_script(base_dir, version_dir, target.os_name, desktop_arch_dir)
updater.patch_target_qt_conf(base_dir, version_dir, arch_dir, target.os_name, desktop_arch_dir) updater.patch_target_qt_conf(base_dir, version_dir, arch_dir, target.os_name, desktop_arch_dir)

View File

@@ -266,6 +266,12 @@ linux_build_jobs.append(
mac_build_jobs.append( mac_build_jobs.append(
BuildJob("install-qt", "5.14.2", "mac", "desktop", "wasm_32", "wasm_32") BuildJob("install-qt", "5.14.2", "mac", "desktop", "wasm_32", "wasm_32")
) )
windows_build_jobs.append(
BuildJob("install-qt", "5.14.2", "windows", "desktop", "wasm_32", "wasm_32")
)
windows_build_jobs.append(
BuildJob("install-qt", "6.4.0", "windows", "desktop", "wasm_32", "wasm_32")
)
# mobile SDK # mobile SDK
mac_build_jobs.extend( mac_build_jobs.extend(

View File

@@ -339,5 +339,51 @@ steps:
qmake $(Build.BinariesDirectory)/tests/openglwindow qmake $(Build.BinariesDirectory)/tests/openglwindow
make make
workingDirectory: $(Build.BinariesDirectory) workingDirectory: $(Build.BinariesDirectory)
condition: and(eq( variables['ARCH'], 'wasm_32' ), or(eq(variables['Agent.OS'], 'Linux'), eq(variables['Agent.OS'], 'Darwin'))) condition: |
displayName: 'Build WebAssembler sample project' and(
eq( variables['ARCH'], 'wasm_32' ),
or(
eq(variables['Agent.OS'], 'Linux'),
eq(variables['Agent.OS'], 'Darwin')
)
)
displayName: 'Build WebAssembler sample project on mac/linux'
# wasm_32 on Windows cmd.exe
- powershell: |
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
.\emsdk install sdk-fastcomp-1.38.27-64bit
.\emsdk activate --embedded sdk-fastcomp-1.38.27-64bit
.\emsdk_env.bat
mkdir $(Build.BinariesDirectory)\tests
cd $(Build.BinariesDirectory)\tests
7z x $(Build.SourcesDirectory)\ci\openglwindow.7z
$env:Path += ";$(WIN_QT_BINDIR)"
echo "Add Qt/qmake to PATH at $(WIN_QT_BINDIR):"
echo "$env:Path"
if('$(QT_VERSION)' -like '6*') {
echo "Qt6: run qmake.bat"
qmake.bat $(Build.BinariesDirectory)\tests\openglwindow
} else {
echo "Qt5: run qmake.exe"
qmake $(Build.BinariesDirectory)\tests\openglwindow
}
if ($false -eq $?) {
Write-Error "qmake failed."
Write-Host "##vso[task.logissue type=error]qmake failed."
exit(1)
}
make
if ($false -eq $?) {
Write-Error "make failed."
Write-Host "##vso[task.logissue type=error]nmake failed."
exit(1)
}
workingDirectory: $(Build.BinariesDirectory)
condition: |
and(
eq( variables['ARCH'], 'wasm_32' ),
eq( variables['Agent.OS'], 'Windows_NT' )
)
displayName: 'Build WebAssembler sample project on windows'