mirror of
https://github.com/miurahr/aqtinstall.git
synced 2025-12-16 20:27:05 +03:00
* Add authentication flags for list-qt-commercial, add tests for coverage * Add dry run * Make tests really use auth since secrets have been added, fix some indents * Fix auth issue, rename user 'email, and password 'pw' * Fix modules param type * Update commands names
504 lines
21 KiB
YAML
504 lines
21 KiB
YAML
env:
|
|
AQT_TEST_EMAIL: ${{ secrets.AQT_TEST_EMAIL }}
|
|
AQT_TEST_PASSWORD: ${{ secrets.AQT_TEST_PASSWORD }}
|
|
steps:
|
|
- task: UsePythonVersion@0
|
|
inputs:
|
|
versionSpec: $(PYTHON_VERSION)
|
|
architecture: 'x64'
|
|
- powershell: |
|
|
pip install -e .
|
|
displayName: install package
|
|
|
|
# Install linux dependencies
|
|
- bash: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libgl1-mesa-dev libxkbcommon-x11-0
|
|
if [[ "$(SUBCOMMAND)" == "install-tool" || "$(SUBCOMMAND)" == "install-qt-official" ]]; then
|
|
sudo apt-get install -y libxcb-{icccm4,image0,keysyms1,randr0,render-util0,shape0,sync1,xfixes0,xinerama0,xkb1}
|
|
fi
|
|
condition: and(eq(variables['TARGET'], 'desktop'), eq(variables['Agent.OS'], 'Linux'))
|
|
displayName: install test dependency for Linux
|
|
|
|
# Run Aqt
|
|
##----------------------------------------------------
|
|
## we insert sleep in random 1sec < duration < 60sec to reduce
|
|
## download server load.
|
|
- bash: |
|
|
set -ex
|
|
number=$RANDOM
|
|
let "number %= 60" || true
|
|
let "number += 1"
|
|
sleep $number
|
|
mkdir Qt
|
|
cd Qt
|
|
if [[ "$(SUBCOMMAND)" == "install-qt-official" ]]; then
|
|
opt+=" --email $(AQT_TEST_EMAIL) --pw $(AQT_TEST_PASSWORD)"
|
|
python -m aqt install-qt-official $opt $(TARGET) $(ARCH) $(QT_VERSION) --m $(MODULE)
|
|
fi
|
|
if [[ "$(SUBCOMMAND)" == "install-qt" ]]; then
|
|
opt=""
|
|
if [[ "$(QT_BASE_MIRROR)" != "" ]]; then
|
|
opt+=" -b $(QT_BASE_MIRROR)"
|
|
fi
|
|
if [[ "$(MODULE)" != "" ]]; then
|
|
opt+=" -m $(MODULE)"
|
|
fi
|
|
if [[ "$(OUTPUT_DIR)" != "" ]]; then
|
|
opt+=" --outputdir $(OUTPUT_DIR)"
|
|
sudo mkdir -p "$(OUTPUT_DIR)"
|
|
sudo chown $(whoami) "$(OUTPUT_DIR)"
|
|
fi
|
|
if [[ "$(SUBARCHIVES)" != "" ]]; then
|
|
opt+=" --archives $(SUBARCHIVES)"
|
|
fi
|
|
if [[ "$(IS_AUTODESKTOP)" == "True" ]]; then
|
|
opt+=" --autodesktop"
|
|
elif [[ "$(TARGET)" == "android" || "$(TARGET)" == "ios" ]]; then
|
|
if [[ "$(HOST)" == "windows" ]]; then
|
|
python -m aqt install-qt $(HOST) desktop $(QT_VERSION) mingw81_64 --archives qtbase
|
|
else
|
|
# qtdeclarative contains `qmlimportscanner`: necessary for ios builds, Qt6+
|
|
python -m aqt install-qt $(HOST) desktop $(QT_VERSION) --archives qtbase qtdeclarative
|
|
fi
|
|
fi
|
|
if [[ "$(SPEC)" == "" ]]; then
|
|
python -m aqt install-qt $(HOST) $(TARGET) $(QT_VERSION) $(ARCH) $opt
|
|
else
|
|
python -m aqt install-qt $(HOST) $(TARGET) "$(SPEC)" $(ARCH) $opt
|
|
fi
|
|
if [[ "$(OUTPUT_DIR)" != "" ]]; then
|
|
# Use 'strings' to read binary
|
|
echo "Verify patched value of qt_prfxpath"
|
|
[[ "$(strings $(QT_BINDIR)/qmake | grep qt_prfxpath | cut -d '=' -f 2)" == "$(OUTPUT_DIR)/$(QT_VERSION)/$(ARCHDIR)" ]]
|
|
echo "Verify patched value of qt_epfxpath"
|
|
[[ "$(strings $(QT_BINDIR)/qmake | grep qt_epfxpath | cut -d '=' -f 2)" == "$(OUTPUT_DIR)/$(QT_VERSION)/$(ARCHDIR)" ]]
|
|
echo "Verify patched value of qt_hpfxpath"
|
|
[[ "$(strings $(QT_BINDIR)/qmake | grep qt_hpfxpath | cut -d '=' -f 2)" == "$(OUTPUT_DIR)/$(QT_VERSION)/$(ARCHDIR)" ]]
|
|
|
|
# Use 'qmake -query' to check paths
|
|
echo "Hide qt.conf so it doesn't interfere with test"
|
|
mv $(QT_BINDIR)/qt.conf $(QT_BINDIR)/_qt.conf
|
|
#export PATH=$(QT_BINDIR):$PATH
|
|
echo "Require that qt_epfxpath was set to '$(OUTPUT_DIR)/$(QT_VERSION)/$(ARCHDIR)'"
|
|
[[ $($(QT_BINDIR)/qmake -query QT_INSTALL_PREFIX) == "$(OUTPUT_DIR)/$(QT_VERSION)/$(ARCHDIR)" ]]
|
|
echo "Require that qt_prfxpath was set to '$(OUTPUT_DIR)/$(QT_VERSION)/$(ARCHDIR)'"
|
|
[[ $($(QT_BINDIR)/qmake -query QT_INSTALL_PREFIX/dev) == "$(OUTPUT_DIR)/$(QT_VERSION)/$(ARCHDIR)" ]]
|
|
echo "Require that qt_hpfxpath was set to '$(OUTPUT_DIR)/$(QT_VERSION)/$(ARCHDIR)'"
|
|
[[ $($(QT_BINDIR)/qmake -query QT_HOST_PREFIX) == "$(OUTPUT_DIR)/$(QT_VERSION)/$(ARCHDIR)" ]]
|
|
fi
|
|
fi
|
|
if [[ "$(SUBCOMMAND)" == "list" ]]; then
|
|
aqt list-qt $(HOST) # print all targets for host
|
|
aqt list-tool $(HOST) $(TARGET) # print all tools for host/target
|
|
aqt list-tool $(HOST) $(TARGET) qt3dstudio_runtime_240 # print all tool variant names for qt3dstudio
|
|
aqt list-tool $(HOST) $(TARGET) qt3dstudio_runtime_240 --long # print tool variant names, versions, release dates
|
|
if [[ "$(TARGET)" == "desktop" ]]; then
|
|
aqt list-tool $(HOST) $(TARGET) tools_qtcreator # print all tool variant names for qtcreator
|
|
aqt list-tool $(HOST) $(TARGET) tools_qtcreator -l # print tool variant names, versions, release dates
|
|
fi
|
|
aqt list-qt $(HOST) $(TARGET) # print all versions of Qt
|
|
aqt list-qt $(HOST) $(TARGET) --spec "$(SPEC)" # print all versions of Qt in SimpleSpec
|
|
ver=$(aqt list-qt $(HOST) $(TARGET) --spec "$(SPEC)" --latest-version) # latest Qt in SimpleSpec
|
|
[ $ver == $(QT_VERSION) ] # latest version in SPEC must be QT_VERSION
|
|
aqt list-qt $(HOST) $(TARGET) --spec "$(SPEC)" --modules latest $(ARCH) # print modules for latest in SimpleSpec
|
|
aqt list-qt $(HOST) $(TARGET) --modules $(QT_VERSION) $(ARCH) # print modules for version/host/target/arch
|
|
aqt list-qt $(HOST) $(TARGET) --arch $(QT_VERSION) # print architectures for version/host/target
|
|
if [[ "$(TARGET)" == "desktop" ]]; then
|
|
if [[ "$(HAS_WASM)" == "True" ]]; then # fail if 'wasm_32' is not in the list
|
|
aqt list-qt $(HOST) $(TARGET) --arch $(QT_VERSION) | grep -w -q "wasm_32"
|
|
else # fail if 'wasm_32' is in the list
|
|
! aqt list-qt $(HOST) $(TARGET) --arch $(QT_VERSION) | grep -w -q "wasm_32"
|
|
fi
|
|
|
|
# Extra check for Qt 6.5.0 WASM:
|
|
for host in mac linux windows; do
|
|
export WASM_ARCHES=$(aqt list-qt $host desktop --arch 6.5.0)
|
|
echo $WASM_ARCHES | grep -w -q "wasm_singlethread" # fail if 'wasm_singlethread' is not in the list
|
|
echo $WASM_ARCHES | grep -w -q "wasm_multithread" # fail if 'wasm_multithread' is not in the list
|
|
done
|
|
fi
|
|
aqt list-qt $(HOST) $(TARGET) --spec "$(SPEC)" --arch latest
|
|
|
|
# list-src/doc/example
|
|
aqt list-src $(HOST) $(QT_VERSION) # print source archives available for host/desktop/version
|
|
aqt list-doc $(HOST) $(QT_VERSION) # print docs archives available for host/desktop/version
|
|
aqt list-doc $(HOST) $(QT_VERSION) --modules # print docs modules available for host/desktop/version
|
|
aqt list-example $(HOST) $(QT_VERSION) # print example archives available for host/desktop/version
|
|
aqt list-example $(HOST) $(QT_VERSION) --modules # print example modules available for host/desktop/version
|
|
fi
|
|
if [[ "$(SUBCOMMAND)" == "install-src" ]]; then
|
|
python -m aqt $(SUBCOMMAND) $(HOST) $(QT_VERSION) --archives $(SUBARCHIVES)
|
|
$(CHECK_OUTPUT_CMD)
|
|
fi
|
|
if [[ "$(SUBCOMMAND)" =~ ^install-(doc|example)$ ]]; then
|
|
opt=""
|
|
if [[ "$(MODULE)" != "" ]]; then
|
|
opt+=" -m $(MODULE)"
|
|
fi
|
|
python -m aqt $(SUBCOMMAND) $(HOST) $(QT_VERSION) --archives $(SUBARCHIVES) $opt
|
|
$(CHECK_OUTPUT_CMD)
|
|
fi
|
|
if [[ "$(SUBCOMMAND)" == "install-tool" ]]; then
|
|
opt=""
|
|
if [[ "$(OUTPUT_DIR)" != "" ]]; then
|
|
opt+=" --outputdir $(OUTPUT_DIR)"
|
|
sudo mkdir -p "$(OUTPUT_DIR)"
|
|
sudo chown $(whoami) "$(OUTPUT_DIR)"
|
|
fi
|
|
python -m aqt $(SUBCOMMAND) $(HOST) $(TARGET) $(TOOL1_ARGS) $opt
|
|
$(LIST_TOOL1_CMD)
|
|
echo "Testing $(TOOL1_ARGS) with '$(TEST_TOOL1_CMD)'"
|
|
$(TEST_TOOL1_CMD)
|
|
python -m aqt $(SUBCOMMAND) $(HOST) $(TARGET) $(TOOL2_ARGS) $opt
|
|
$(LIST_TOOL2_CMD)
|
|
echo "Testing $(TOOL2_ARGS) with '$(TEST_TOOL2_CMD)'"
|
|
$(TEST_TOOL2_CMD)
|
|
fi
|
|
workingDirectory: $(Build.BinariesDirectory)
|
|
env:
|
|
AQT_CONFIG: $(Build.SourcesDirectory)/ci/settings.ini
|
|
LOG_CFG: $(Build.SourcesDirectory)/ci/logging.ini
|
|
displayName: Run Aqt
|
|
|
|
##----------------------------------------------------
|
|
# for Android target
|
|
- bash: |
|
|
set -ex
|
|
if [[ "$(Agent.OS)" == "Linux" ]]; then
|
|
wget https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip
|
|
unzip android-ndk-r21e-linux-x86_64.zip
|
|
fi
|
|
if [[ "$(Agent.OS)" == "Darwin" ]]; then
|
|
wget https://dl.google.com/android/repository/android-ndk-r21e-darwin-x86_64.zip
|
|
unzip android-ndk-r21e-darwin-x86_64.zip
|
|
fi
|
|
export ANDROID_NDK_ROOT=$(Build.SourcesDirectory)/android-ndk-r21e
|
|
mkdir $(Build.BinariesDirectory)/tests
|
|
(cd $(Build.BinariesDirectory)/tests; 7zr x $(Build.SourcesDirectory)/ci/accelbubble.7z)
|
|
export PATH=$(QT_BINDIR):$PATH
|
|
qmake $(Build.BinariesDirectory)/tests/accelbubble
|
|
make
|
|
condition: |
|
|
and(
|
|
eq(variables['TARGET'], 'android'),
|
|
or(
|
|
eq(variables['Agent.OS'], 'Linux'),
|
|
eq(variables['Agent.OS'], 'Darwin')
|
|
),
|
|
ne(variables['SUBCOMMAND'], 'list-qt'),
|
|
ne(variables['SUBCOMMAND'], 'install-tool')
|
|
)
|
|
displayName: Build accelbubble example application to test for android
|
|
|
|
##----------------------------------------------------
|
|
# for iOS target
|
|
- bash: |
|
|
set -ex
|
|
mkdir $(Build.BinariesDirectory)/tests
|
|
(cd $(Build.BinariesDirectory)/tests; 7zr x $(Build.SourcesDirectory)/ci/accelbubble.7z)
|
|
export PATH=$(QT_BINDIR):$PATH
|
|
qmake $(Build.BinariesDirectory)/tests/accelbubble
|
|
make
|
|
condition: |
|
|
and(eq(variables['TARGET'], 'ios'),
|
|
ne(variables['SUBCOMMAND'], 'list'),
|
|
ne(variables['SUBCOMMAND'], 'install-tool'))
|
|
displayName: Build accelbubble example application to test for ios
|
|
|
|
##----------------------------------------------------
|
|
# Cache Powershell Modules in $MODULES_FOLDER
|
|
- task: Cache@2
|
|
inputs:
|
|
key: '"pwsh modules" | "$(startYear)" | "$(startMonth)"'
|
|
path: $(MODULES_FOLDER)
|
|
cacheHitVar: PSModules_IsCached
|
|
condition: |
|
|
and(eq(variables['Agent.OS'], 'Windows_NT'),
|
|
eq(variables['SUBCOMMAND'], 'install-qt'))
|
|
displayName: Cache Powershell Modules
|
|
# On cache miss: Download Powershell Modules to $MODULES_FOLDER
|
|
- powershell: |
|
|
Install-PackageProvider NuGet -Force
|
|
Import-PackageProvider NuGet -Force
|
|
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
|
|
md -p $(MODULES_FOLDER) # mkdir
|
|
Save-Module -Name Pscx -AllowPrerelease -Path $(MODULES_FOLDER)
|
|
condition: |
|
|
and(eq(variables['Agent.OS'], 'Windows_NT'),
|
|
eq(variables['SUBCOMMAND'], 'install-qt'),
|
|
ne(variables.PSModules_IsCached, 'true'))
|
|
displayName: Download Powershell Modules for Windows on cache miss
|
|
|
|
##----------------------------------------------------
|
|
# determine Windows build system
|
|
- powershell: |
|
|
if ('$(ARCH)' -like '*msvc*') {
|
|
Write-Host '##vso[task.setvariable variable=TOOLCHAIN]MSVC'
|
|
}
|
|
if ('$(ARCH)' -like '*mingw*') {
|
|
Write-Host '##vso[task.setvariable variable=TOOLCHAIN]MINGW'
|
|
}
|
|
if ('$(ARCH)' -like 'win64_msvc*') {
|
|
Write-Host '##vso[task.setvariable variable=ARCHITECTURE]amd64'
|
|
} else {
|
|
Write-Host '##vso[task.setvariable variable=ARCHITECTURE]x86'
|
|
}
|
|
if ('$(ARCH)' -like '*msvc*') {
|
|
Write-Host '##vso[task.setvariable variable=VSVER]2022'
|
|
}
|
|
cd $(WIN_QT_BINDIR)
|
|
unzip $(Build.SourcesDirectory)\ci\jom_1_1_3.zip
|
|
condition: |
|
|
and(eq(variables['Agent.OS'], 'Windows_NT'),
|
|
eq(variables['SUBCOMMAND'], 'install-qt'))
|
|
displayName: Detect toolchain for Windows and update PATH
|
|
|
|
# When no modules
|
|
- script: |
|
|
set -ex
|
|
mkdir $(Build.BinariesDirectory)/tests
|
|
(cd $(Build.BinariesDirectory)/tests; 7zr x $(Build.SourcesDirectory)/ci/helloworld.7z)
|
|
export PATH=$(QT_BINDIR):$PATH
|
|
qmake $(Build.BinariesDirectory)/tests/helloworld
|
|
make
|
|
condition: |
|
|
and(
|
|
eq( variables['TARGET'], 'desktop' ),
|
|
not( startsWith( variables['ARCH'], 'wasm_' ) ),
|
|
or(
|
|
eq(variables['Agent.OS'], 'Linux'),
|
|
eq(variables['Agent.OS'], 'Darwin')
|
|
),
|
|
eq(variables['MODULE'], ''),
|
|
eq(variables['SUBCOMMAND'], 'install-qt')
|
|
)
|
|
displayName: Build test with qmake for Linux and macOS w/o extra module
|
|
# Update the MSVC build step to use the new compiler flags
|
|
- powershell: |
|
|
if ( $env:TOOLCHAIN -eq 'MSVC' ) {
|
|
# Load modules from cache
|
|
$Env:PSModulePath = '$(MODULES_FOLDER)', $Env:PSModulePath -join [System.IO.Path]::PathSeparator
|
|
Write-Host $Env:PSModulePath
|
|
Import-Module "Pscx"
|
|
Import-Module "VSSetup"
|
|
|
|
Import-VisualStudioVars -VisualStudioVersion $(VSVER) -Architecture $(ARCHITECTURE)
|
|
$env:Path += ";$(WIN_QT_BINDIR)"
|
|
mkdir $(Build.BinariesDirectory)\tests
|
|
cd $(Build.BinariesDirectory)\tests
|
|
7z x $(Build.SourcesDirectory)\ci\helloworld.7z
|
|
cd ..
|
|
qmake $(Build.BinariesDirectory)\tests\helloworld
|
|
jom
|
|
} elseif ( $env:TOOLCHAIN -eq 'MINGW' ) {
|
|
python -m aqt install-tool $(if (($QT_BASE_MIRROR + "") -ne "") { "-b $QT_BASE_MIRROR" } else {""}) `
|
|
--outputdir $(Build.BinariesDirectory)/Qt $(HOST) desktop $(MINGW_TOOL_NAME) qt.tools.$(MINGW_VARIANT)
|
|
if ($?) {
|
|
Write-Host 'Successfully installed tools_mingw'
|
|
} else {
|
|
throw 'Failed to install tools_mingw'
|
|
}
|
|
Set-Item -Path Env:Path -Value ("$(Build.BinariesDirectory)\Qt\Tools\$(MINGW_FOLDER)\bin;$(WIN_QT_BINDIR);" + $Env:Path)
|
|
Write-Host "Path == " + $env:Path
|
|
mkdir $(Build.BinariesDirectory)\tests
|
|
cd $(Build.BinariesDirectory)\tests
|
|
7z x $(Build.SourcesDirectory)\ci\helloworld.7z
|
|
cd ..
|
|
qmake $(Build.BinariesDirectory)\tests\helloworld
|
|
mingw32-make
|
|
}
|
|
condition: |
|
|
and(
|
|
eq(variables['Agent.OS'], 'Windows_NT'),
|
|
eq(variables['MODULE'], ''),
|
|
eq(variables['SUBCOMMAND'], 'install-qt')
|
|
)
|
|
displayName: build test with qmake w/o extra module
|
|
env:
|
|
AQT_CONFIG: $(Build.SourcesDirectory)/ci/settings.ini
|
|
LOG_CFG: $(Build.SourcesDirectory)/ci/logging.ini
|
|
|
|
# When --archives non-empty
|
|
- script: |
|
|
set -ex
|
|
rm -rf $(Build.BinariesDirectory)/tests
|
|
mkdir $(Build.BinariesDirectory)/tests
|
|
(cd $(Build.BinariesDirectory)/tests && 7zr x $(Build.SourcesDirectory)/ci/helloworld_qttools.7z)
|
|
export PATH=$(QT_BINDIR):$PATH
|
|
qmake -d $(Build.BinariesDirectory)/tests/helloworld_qttools
|
|
make
|
|
condition: |
|
|
and(
|
|
eq( variables['TARGET'], 'desktop' ),
|
|
not( startsWith( variables['ARCH'], 'wasm_' ) ),
|
|
or(
|
|
eq(variables['Agent.OS'], 'Linux'),
|
|
eq(variables['Agent.OS'], 'Darwin')
|
|
),
|
|
contains(variables['SUBARCHIVES'], 'qttools'),
|
|
eq(variables['SUBCOMMAND'], 'install-qt')
|
|
)
|
|
displayName: build test with qmake for Linux and macOS with specific Qt modules (QT += uitools)
|
|
- powershell: |
|
|
if ( $env:TOOLCHAIN -eq 'MSVC' ) {
|
|
# Load modules from cache
|
|
$Env:PSModulePath = '$(MODULES_FOLDER)', $Env:PSModulePath -join [System.IO.Path]::PathSeparator
|
|
Write-Host $Env:PSModulePath
|
|
Import-Module "Pscx"
|
|
Import-Module "VSSetup"
|
|
|
|
Import-VisualStudioVars -VisualStudioVersion $(VSVER) -Architecture $(ARCHITECTURE)
|
|
$env:Path += ";$(WIN_QT_BINDIR)"
|
|
try { rm -r -fo $(Build.BinariesDirectory)\tests } catch { $Error.Clear() }
|
|
mkdir $(Build.BinariesDirectory)\tests
|
|
cd $(Build.BinariesDirectory)\tests
|
|
7z x $(Build.SourcesDirectory)\ci\helloworld_qttools.7z
|
|
qmake -d $(Build.BinariesDirectory)\tests\helloworld_qttools
|
|
nmake
|
|
} elseif ( $env:TOOLCHAIN -eq 'MINGW' ) {
|
|
Set-Item -Path Env:Path -Value ("$(Build.BinariesDirectory)\Qt\Tools\$(MINGW_FOLDER)\bin;$(WIN_QT_BINDIR);" + $Env:Path)
|
|
Write-Host "Path == " + $env:Path
|
|
if (![bool] (Get-Command -ErrorAction Ignore -Type Application mingw32-make)) {
|
|
python -m aqt install-tool $(if (($QT_BASE_MIRROR + "") -ne "") { "-b $QT_BASE_MIRROR" } else {""}) `
|
|
--outputdir $(Build.BinariesDirectory)/Qt $(HOST) desktop $(MINGW_TOOL_NAME) qt.tools.$(MINGW_VARIANT)
|
|
if ($?) {
|
|
Write-Host 'Successfully installed tools_mingw'
|
|
} else {
|
|
throw 'Failed to install tools_mingw'
|
|
}
|
|
}
|
|
try { rm -r -fo $(Build.BinariesDirectory)\tests } catch { $Error.Clear() }
|
|
mkdir $(Build.BinariesDirectory)\tests
|
|
cd $(Build.BinariesDirectory)\tests
|
|
7z x $(Build.SourcesDirectory)\ci\helloworld_qttools.7z
|
|
qmake -d $(Build.BinariesDirectory)\tests\helloworld_qttools
|
|
mingw32-make
|
|
}
|
|
condition: |
|
|
and(
|
|
eq( variables['Agent.OS'], 'Windows_NT'),
|
|
contains(variables['SUBARCHIVES'], 'qttools'),
|
|
eq(variables['SUBCOMMAND'], 'install-qt')
|
|
)
|
|
displayName: build test with qmake with specific Qt modules (QT += uitools)
|
|
env:
|
|
AQT_CONFIG: $(Build.SourcesDirectory)/ci/settings.ini
|
|
LOG_CFG: $(Build.SourcesDirectory)/ci/logging.ini
|
|
|
|
- powershell: |
|
|
# Load modules from cache
|
|
$Env:PSModulePath = '$(MODULES_FOLDER)', $Env:PSModulePath -join [System.IO.Path]::PathSeparator
|
|
Write-Host $Env:PSModulePath
|
|
Import-Module "Pscx"
|
|
Import-Module "VSSetup"
|
|
|
|
Import-VisualStudioVars -VisualStudioVersion $(VSVER) -Architecture $(ARCHITECTURE)
|
|
$env:Path += ";$(WIN_QT_BINDIR)"
|
|
echo Add Qt to PATH: $env:PATH
|
|
mkdir $(Build.BinariesDirectory)/tests
|
|
cd $(Build.BinariesDirectory)/tests
|
|
7z x $(Build.SourcesDirectory)/ci/redditclient.7z
|
|
cd ..
|
|
qmake $(Build.BinariesDirectory)\tests\redditclient
|
|
nmake
|
|
condition: |
|
|
and(
|
|
eq(variables['Agent.OS'], 'Windows_NT'),
|
|
eq(variables['TOOLCHAIN'], 'MSVC'),
|
|
ne(variables['MODULE'], ''),
|
|
ne(variables['VSVER'], '2022')
|
|
)
|
|
displayName: build test with qmake with MSVC with extra module
|
|
- bash: |
|
|
set -ex
|
|
mkdir $(Build.BinariesDirectory)/tests
|
|
(cd $(Build.BinariesDirectory)/tests; 7zr x $(Build.SourcesDirectory)/ci/redditclient.7z)
|
|
if [[ "6" -eq "${QT_VERSION:0:1}" ]]; then
|
|
(cd $(Build.BinariesDirectory)/tests/redditclient;patch -i redditclient_6.diff -p1)
|
|
fi
|
|
export PATH=$(QT_BINDIR):$PATH
|
|
qmake $(Build.BinariesDirectory)/tests/redditclient
|
|
make
|
|
condition: |
|
|
and(
|
|
eq( variables['TARGET'], 'desktop'),
|
|
or(
|
|
eq(variables['Agent.OS'], 'Linux'),
|
|
eq(variables['Agent.OS'], 'Darwin')
|
|
),
|
|
ne(variables['MODULE'], ''),
|
|
eq(variables['SUBCOMMAND'], 'install-qt')
|
|
)
|
|
displayName: Build test with qmake for Linux and macOS with extra module
|
|
|
|
##----------------------------------------------------
|
|
# wasm_32/single/multithread on linux and mac
|
|
- script: |
|
|
set -uex
|
|
git clone --depth=1 --branch=$(EMSDK_TAG) https://github.com/emscripten-core/emsdk.git
|
|
cd emsdk
|
|
./emsdk install $(EMSDK_VERSION)
|
|
./emsdk activate --embedded $(EMSDK_VERSION)
|
|
source $(Build.BinariesDirectory)/emsdk/emsdk_env.sh
|
|
mkdir $(Build.BinariesDirectory)/tests
|
|
if [[ $(QT_VERSION) = 6* ]]; then
|
|
OPENGLWINDOW_7Z="openglwindow_qt6.7z"
|
|
else
|
|
OPENGLWINDOW_7Z="openglwindow.7z"
|
|
fi
|
|
(cd $(Build.BinariesDirectory)/tests; 7zr x $(Build.SourcesDirectory)/ci/$OPENGLWINDOW_7Z)
|
|
export PATH=$(QT_BINDIR):$PATH
|
|
qmake $(Build.BinariesDirectory)/tests/openglwindow
|
|
make
|
|
workingDirectory: $(Build.BinariesDirectory)
|
|
condition: |
|
|
and(
|
|
startsWith( variables['ARCH'], 'wasm_' ),
|
|
or(
|
|
eq(variables['Agent.OS'], 'Linux'),
|
|
eq(variables['Agent.OS'], 'Darwin')
|
|
)
|
|
)
|
|
displayName: 'Build WebAssembler sample project on mac/linux'
|
|
|
|
# wasm_32/single/multithread on Windows cmd.exe
|
|
- powershell: |
|
|
git clone --depth=1 --branch=$(EMSDK_TAG) https://github.com/emscripten-core/emsdk.git
|
|
cd emsdk
|
|
.\emsdk install $(EMSDK_VERSION)
|
|
.\emsdk activate --embedded $(EMSDK_VERSION)
|
|
.\emsdk_env.bat
|
|
mkdir $(Build.BinariesDirectory)\tests
|
|
cd $(Build.BinariesDirectory)\tests
|
|
$env:Path += ";$(WIN_QT_BINDIR)"
|
|
echo "Add Qt/qmake to PATH at $(WIN_QT_BINDIR):"
|
|
echo "$env:Path"
|
|
if ('$(QT_VERSION)' -like '6*') {
|
|
7z x $(Build.SourcesDirectory)\ci\openglwindow_qt6.7z
|
|
echo "Inlined qmake.bat command is: $(WIN_AUTODESK_QT_BINDIR)\qmake -qtconf $(WIN_QT_BINDIR)\target_qt.conf $(Build.BinariesDirectory)\tests\openglwindow"
|
|
$(WIN_AUTODESK_QT_BINDIR)\qmake.exe -qtconf "$(WIN_QT_BINDIR)\target_qt.conf" $(Build.BinariesDirectory)\tests\openglwindow
|
|
} else {
|
|
7z x $(Build.SourcesDirectory)\ci\openglwindow.7z
|
|
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(
|
|
startsWith( variables['ARCH'], 'wasm_' ),
|
|
eq( variables['Agent.OS'], 'Windows_NT' )
|
|
)
|
|
displayName: 'Build WebAssembler sample project on windows'
|