180d59932Sopenharmony_ciname: Windows 280d59932Sopenharmony_ci 380d59932Sopenharmony_cion: [push, pull_request] 480d59932Sopenharmony_ci 580d59932Sopenharmony_cijobs: 680d59932Sopenharmony_ci compatibility: 780d59932Sopenharmony_ci runs-on: windows-latest 880d59932Sopenharmony_ci strategy: 980d59932Sopenharmony_ci matrix: 1080d59932Sopenharmony_ci VER: [v142, v143] 1180d59932Sopenharmony_ci EXT: [ON, OFF] 1280d59932Sopenharmony_ci GEN: [Visual Studio 17 2022] 1380d59932Sopenharmony_ci BIN: [x64, x86] 1480d59932Sopenharmony_ci STD: [99, 11, 17] 1580d59932Sopenharmony_ci include: 1680d59932Sopenharmony_ci - VER: v141 1780d59932Sopenharmony_ci EXT: OFF 1880d59932Sopenharmony_ci GEN: Ninja Multi-Config 1980d59932Sopenharmony_ci BIN: x64 2080d59932Sopenharmony_ci STD: 89 # /Za 2180d59932Sopenharmony_ci env: 2280d59932Sopenharmony_ci NINJA_URL: https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip 2380d59932Sopenharmony_ci NINJA_ROOT: C:\Tools\Ninja 2480d59932Sopenharmony_ci VS_ROOT: 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise' 2580d59932Sopenharmony_ci UseMultiToolTask: true # Better parallel MSBuild execution 2680d59932Sopenharmony_ci 2780d59932Sopenharmony_ci steps: 2880d59932Sopenharmony_ci - uses: actions/checkout@v2 2980d59932Sopenharmony_ci 3080d59932Sopenharmony_ci - name: Cache Ninja install 3180d59932Sopenharmony_ci if: matrix.GEN == 'Ninja Multi-Config' 3280d59932Sopenharmony_ci id: ninja-install 3380d59932Sopenharmony_ci uses: actions/cache@v2 3480d59932Sopenharmony_ci with: 3580d59932Sopenharmony_ci path: | 3680d59932Sopenharmony_ci C:\Tools\Ninja 3780d59932Sopenharmony_ci key: ${{runner.os}}-ninja-${{env.NINJA_URL}} 3880d59932Sopenharmony_ci 3980d59932Sopenharmony_ci - name: Install Ninja 4080d59932Sopenharmony_ci if: matrix.GEN == 'Ninja Multi-Config' && steps.ninja-install.outputs.cache-hit != 'true' 4180d59932Sopenharmony_ci shell: pwsh 4280d59932Sopenharmony_ci run: | 4380d59932Sopenharmony_ci Invoke-WebRequest ${env:NINJA_URL} -OutFile ~\Downloads\ninja-win.zip 4480d59932Sopenharmony_ci Expand-Archive ~\Downloads\ninja-win.zip -DestinationPath ${env:NINJA_ROOT}\ 4580d59932Sopenharmony_ci Remove-Item ~\Downloads\* 4680d59932Sopenharmony_ci 4780d59932Sopenharmony_ci - name: Configure (MSBuild) 4880d59932Sopenharmony_ci if: matrix.GEN == 'Visual Studio 17 2022' 4980d59932Sopenharmony_ci shell: pwsh 5080d59932Sopenharmony_ci run: | 5180d59932Sopenharmony_ci $BIN = if('${{matrix.BIN}}' -eq 'x86') {'Win32'} else {'x64'} 5280d59932Sopenharmony_ci $C_FLAGS = '/W4 /WX' 5380d59932Sopenharmony_ci & cmake ` 5480d59932Sopenharmony_ci -G '${{matrix.GEN}}' ` 5580d59932Sopenharmony_ci -A $BIN ` 5680d59932Sopenharmony_ci -T ${{matrix.VER}} ` 5780d59932Sopenharmony_ci -D BUILD_TESTING=ON ` 5880d59932Sopenharmony_ci -D CMAKE_C_FLAGS="${C_FLAGS}" ` 5980d59932Sopenharmony_ci -D CMAKE_C_EXTENSIONS='${{matrix.EXT}}' ` 6080d59932Sopenharmony_ci -S "${env:GITHUB_WORKSPACE}" ` 6180d59932Sopenharmony_ci -B "${env:GITHUB_WORKSPACE}\build" 6280d59932Sopenharmony_ci 6380d59932Sopenharmony_ci - name: Configure (Ninja Multi-Config) 6480d59932Sopenharmony_ci if: matrix.GEN == 'Ninja Multi-Config' 6580d59932Sopenharmony_ci shell: pwsh 6680d59932Sopenharmony_ci run: | 6780d59932Sopenharmony_ci $VER = switch ('${{matrix.VER}}') { ` 6880d59932Sopenharmony_ci 'v141' {'14.1'} ` 6980d59932Sopenharmony_ci 'v142' {'14.2'} ` 7080d59932Sopenharmony_ci 'v143' {'14.3'} } 7180d59932Sopenharmony_ci Import-Module "${env:VS_ROOT}\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" 7280d59932Sopenharmony_ci Enter-VsDevShell -VsInstallPath ${env:VS_ROOT} -SkipAutomaticLocation -DevCmdArguments "-host_arch=x64 -arch=${{matrix.BIN}} -vcvars_ver=${VER}" 7380d59932Sopenharmony_ci $C_FLAGS = '/W4 /WX' 7480d59932Sopenharmony_ci & cmake ` 7580d59932Sopenharmony_ci -G '${{matrix.GEN}}' ` 7680d59932Sopenharmony_ci -D CMAKE_MAKE_PROGRAM="${env:NINJA_ROOT}\ninja.exe" ` 7780d59932Sopenharmony_ci -D BUILD_TESTING=ON ` 7880d59932Sopenharmony_ci -D CMAKE_C_FLAGS="${C_FLAGS}" ` 7980d59932Sopenharmony_ci -D CMAKE_C_EXTENSIONS='${{matrix.EXT}}' ` 8080d59932Sopenharmony_ci -D CMAKE_EXE_LINKER_FLAGS='/INCREMENTAL' ` 8180d59932Sopenharmony_ci -S "${env:GITHUB_WORKSPACE}" ` 8280d59932Sopenharmony_ci -B "${env:GITHUB_WORKSPACE}\build" 8380d59932Sopenharmony_ci 8480d59932Sopenharmony_ci - name: Build (MSBuild) 8580d59932Sopenharmony_ci if: matrix.GEN == 'Visual Studio 17 2022' 8680d59932Sopenharmony_ci shell: pwsh 8780d59932Sopenharmony_ci run: | 8880d59932Sopenharmony_ci foreach ($Config in 'Release','Debug') { ` 8980d59932Sopenharmony_ci & cmake ` 9080d59932Sopenharmony_ci --build "${env:GITHUB_WORKSPACE}\build" ` 9180d59932Sopenharmony_ci --config ${Config} ` 9280d59932Sopenharmony_ci -- ` 9380d59932Sopenharmony_ci /verbosity:minimal ` 9480d59932Sopenharmony_ci /maxCpuCount ` 9580d59932Sopenharmony_ci /noLogo 9680d59932Sopenharmony_ci } 9780d59932Sopenharmony_ci 9880d59932Sopenharmony_ci - name: Build (Ninja) 9980d59932Sopenharmony_ci if: matrix.GEN == 'Ninja Multi-Config' 10080d59932Sopenharmony_ci shell: pwsh 10180d59932Sopenharmony_ci run: | 10280d59932Sopenharmony_ci $VER = switch ('${{matrix.VER}}') { ` 10380d59932Sopenharmony_ci 'v141' {'14.1'} ` 10480d59932Sopenharmony_ci 'v142' {'14.2'} ` 10580d59932Sopenharmony_ci 'v143' {'14.3'} } 10680d59932Sopenharmony_ci Import-Module "${env:VS_ROOT}\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" 10780d59932Sopenharmony_ci Enter-VsDevShell -VsInstallPath ${env:VS_ROOT} -SkipAutomaticLocation -DevCmdArguments "-host_arch=x64 -arch=${{matrix.BIN}} -vcvars_ver=${VER}" 10880d59932Sopenharmony_ci foreach ($Config in 'Release','Debug') { ` 10980d59932Sopenharmony_ci & cmake ` 11080d59932Sopenharmony_ci --build "${env:GITHUB_WORKSPACE}\build" ` 11180d59932Sopenharmony_ci --config ${Config} ` 11280d59932Sopenharmony_ci -- ` 11380d59932Sopenharmony_ci -j ${env:NUMBER_OF_PROCESSORS} 11480d59932Sopenharmony_ci } 11580d59932Sopenharmony_ci 11680d59932Sopenharmony_ci - name: Test 11780d59932Sopenharmony_ci shell: pwsh 11880d59932Sopenharmony_ci run: | 11980d59932Sopenharmony_ci foreach ($Config in 'Release','Debug') { ` 12080d59932Sopenharmony_ci & ctest ` 12180d59932Sopenharmony_ci --test-dir "${env:GITHUB_WORKSPACE}\build" ` 12280d59932Sopenharmony_ci --build-config ${Config} ` 12380d59932Sopenharmony_ci --output-on-failure ` 12480d59932Sopenharmony_ci --parallel ${env:NUMBER_OF_PROCESSORS} 12580d59932Sopenharmony_ci } 12680d59932Sopenharmony_ci 12780d59932Sopenharmony_ci - name: Install 12880d59932Sopenharmony_ci shell: pwsh 12980d59932Sopenharmony_ci run: | 13080d59932Sopenharmony_ci & cmake ` 13180d59932Sopenharmony_ci --install "${env:GITHUB_WORKSPACE}\build" ` 13280d59932Sopenharmony_ci --prefix "${env:GITHUB_WORKSPACE}\install" ` 13380d59932Sopenharmony_ci --config Release 13480d59932Sopenharmony_ci 13580d59932Sopenharmony_ci - name: Consume (PkgConfig - bare MSBuild) 13680d59932Sopenharmony_ci if: matrix.GEN == 'Visual Studio 17 2022' 13780d59932Sopenharmony_ci shell: pwsh 13880d59932Sopenharmony_ci run: | 13980d59932Sopenharmony_ci $BIN = if('${{matrix.BIN}}' -eq 'x86') {'Win32'} else {'x64'} 14080d59932Sopenharmony_ci $C_FLAGS = '/W4 /WX' 14180d59932Sopenharmony_ci & cmake ` 14280d59932Sopenharmony_ci -G '${{matrix.GEN}}' ` 14380d59932Sopenharmony_ci -A $BIN ` 14480d59932Sopenharmony_ci -T ${{matrix.VER}} ` 14580d59932Sopenharmony_ci -D CMAKE_C_FLAGS="${C_FLAGS}" ` 14680d59932Sopenharmony_ci -D CMAKE_C_EXTENSIONS='${{matrix.EXT}}' ` 14780d59932Sopenharmony_ci -D CMAKE_PREFIX_PATH="${env:GITHUB_WORKSPACE}\install" ` 14880d59932Sopenharmony_ci -S "${env:GITHUB_WORKSPACE}\tests\pkgconfig\bare" ` 14980d59932Sopenharmony_ci -B "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\bare" 15080d59932Sopenharmony_ci foreach ($Config in 'Release','Debug') { ` 15180d59932Sopenharmony_ci & cmake ` 15280d59932Sopenharmony_ci --build "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\bare" ` 15380d59932Sopenharmony_ci --config ${Config} ` 15480d59932Sopenharmony_ci -- ` 15580d59932Sopenharmony_ci /verbosity:minimal ` 15680d59932Sopenharmony_ci /maxCpuCount ` 15780d59932Sopenharmony_ci /noLogo ` 15880d59932Sopenharmony_ci } 15980d59932Sopenharmony_ci 16080d59932Sopenharmony_ci - name: Consume (PkgConfig - bare Ninja) 16180d59932Sopenharmony_ci if: matrix.GEN == 'Ninja Multi-Config' 16280d59932Sopenharmony_ci shell: pwsh 16380d59932Sopenharmony_ci run: | 16480d59932Sopenharmony_ci $VER = switch ('${{matrix.VER}}') { ` 16580d59932Sopenharmony_ci 'v141' {'14.1'} ` 16680d59932Sopenharmony_ci 'v142' {'14.2'} ` 16780d59932Sopenharmony_ci 'v143' {'14.3'} } 16880d59932Sopenharmony_ci Import-Module "${env:VS_ROOT}\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" 16980d59932Sopenharmony_ci Enter-VsDevShell -VsInstallPath ${env:VS_ROOT} -SkipAutomaticLocation -DevCmdArguments "-host_arch=x64 -arch=${{matrix.BIN}} -vcvars_ver=${VER}" 17080d59932Sopenharmony_ci $C_FLAGS = '/W4 /WX' 17180d59932Sopenharmony_ci & cmake ` 17280d59932Sopenharmony_ci -G '${{matrix.GEN}}' ` 17380d59932Sopenharmony_ci -D CMAKE_MAKE_PROGRAM="${env:NINJA_ROOT}\ninja.exe" ` 17480d59932Sopenharmony_ci -D BUILD_TESTING=ON ` 17580d59932Sopenharmony_ci -D CMAKE_C_FLAGS="${C_FLAGS}" ` 17680d59932Sopenharmony_ci -D CMAKE_C_EXTENSIONS='${{matrix.EXT}}' ` 17780d59932Sopenharmony_ci -D CMAKE_EXE_LINKER_FLAGS='/INCREMENTAL' ` 17880d59932Sopenharmony_ci -D CMAKE_PREFIX_PATH="${env:GITHUB_WORKSPACE}\install" ` 17980d59932Sopenharmony_ci -S "${env:GITHUB_WORKSPACE}\tests\pkgconfig\bare" ` 18080d59932Sopenharmony_ci -B "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\bare" 18180d59932Sopenharmony_ci foreach ($Config in 'Release','Debug') { ` 18280d59932Sopenharmony_ci & cmake ` 18380d59932Sopenharmony_ci --build "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\bare" ` 18480d59932Sopenharmony_ci --config ${Config} ` 18580d59932Sopenharmony_ci -- ` 18680d59932Sopenharmony_ci -j ${env:NUMBER_OF_PROCESSORS} ` 18780d59932Sopenharmony_ci } 18880d59932Sopenharmony_ci 18980d59932Sopenharmony_ci - name: Consume (Emulate SDK presence) 19080d59932Sopenharmony_ci shell: pwsh 19180d59932Sopenharmony_ci run: | 19280d59932Sopenharmony_ci New-Item -Type Directory -Path ${env:GITHUB_WORKSPACE}\install\share\cmake\OpenCL 19380d59932Sopenharmony_ci New-Item -Type File -Path ${env:GITHUB_WORKSPACE}\install\share\cmake\OpenCL\OpenCLConfig.cmake -Value 'include("${CMAKE_CURRENT_LIST_DIR}/../OpenCLHeaders/OpenCLHeadersTargets.cmake")' 19480d59932Sopenharmony_ci 19580d59932Sopenharmony_ci - name: Consume (PkgConfig - SDK MSBuild) 19680d59932Sopenharmony_ci if: matrix.GEN == 'Visual Studio 17 2022' 19780d59932Sopenharmony_ci shell: pwsh 19880d59932Sopenharmony_ci run: | 19980d59932Sopenharmony_ci $BIN = if('${{matrix.BIN}}' -eq 'x86') {'Win32'} else {'x64'} 20080d59932Sopenharmony_ci $C_FLAGS = '/W4 /WX' 20180d59932Sopenharmony_ci & cmake ` 20280d59932Sopenharmony_ci -G '${{matrix.GEN}}' ` 20380d59932Sopenharmony_ci -A $BIN ` 20480d59932Sopenharmony_ci -T ${{matrix.VER}} ` 20580d59932Sopenharmony_ci -D CMAKE_C_FLAGS="${C_FLAGS}" ` 20680d59932Sopenharmony_ci -D CMAKE_C_EXTENSIONS='${{matrix.EXT}}' ` 20780d59932Sopenharmony_ci -D CMAKE_PREFIX_PATH="${env:GITHUB_WORKSPACE}\install" ` 20880d59932Sopenharmony_ci -S "${env:GITHUB_WORKSPACE}\tests\pkgconfig\sdk" ` 20980d59932Sopenharmony_ci -B "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\sdk" 21080d59932Sopenharmony_ci foreach ($Config in 'Release','Debug') { ` 21180d59932Sopenharmony_ci & cmake ` 21280d59932Sopenharmony_ci --build "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\sdk" ` 21380d59932Sopenharmony_ci --config ${Config} ` 21480d59932Sopenharmony_ci -- ` 21580d59932Sopenharmony_ci /verbosity:minimal ` 21680d59932Sopenharmony_ci /maxCpuCount ` 21780d59932Sopenharmony_ci /noLogo ` 21880d59932Sopenharmony_ci } 21980d59932Sopenharmony_ci 22080d59932Sopenharmony_ci - name: Consume (PkgConfig - SDK Ninja) 22180d59932Sopenharmony_ci if: matrix.GEN == 'Ninja Multi-Config' 22280d59932Sopenharmony_ci shell: pwsh 22380d59932Sopenharmony_ci run: | 22480d59932Sopenharmony_ci $VER = switch ('${{matrix.VER}}') { ` 22580d59932Sopenharmony_ci 'v141' {'14.1'} ` 22680d59932Sopenharmony_ci 'v142' {'14.2'} ` 22780d59932Sopenharmony_ci 'v143' {'14.3'} } 22880d59932Sopenharmony_ci Import-Module "${env:VS_ROOT}\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" 22980d59932Sopenharmony_ci Enter-VsDevShell -VsInstallPath ${env:VS_ROOT} -SkipAutomaticLocation -DevCmdArguments "-host_arch=x64 -arch=${{matrix.BIN}} -vcvars_ver=${VER}" 23080d59932Sopenharmony_ci $C_FLAGS = '/W4 /WX' 23180d59932Sopenharmony_ci & cmake ` 23280d59932Sopenharmony_ci -G '${{matrix.GEN}}' ` 23380d59932Sopenharmony_ci -D CMAKE_MAKE_PROGRAM="${env:NINJA_ROOT}\ninja.exe" ` 23480d59932Sopenharmony_ci -D BUILD_TESTING=ON ` 23580d59932Sopenharmony_ci -D CMAKE_C_FLAGS="${C_FLAGS}" ` 23680d59932Sopenharmony_ci -D CMAKE_C_EXTENSIONS='${{matrix.EXT}}' ` 23780d59932Sopenharmony_ci -D CMAKE_EXE_LINKER_FLAGS='/INCREMENTAL' ` 23880d59932Sopenharmony_ci -D CMAKE_PREFIX_PATH="${env:GITHUB_WORKSPACE}\install" ` 23980d59932Sopenharmony_ci -S "${env:GITHUB_WORKSPACE}\tests\pkgconfig\sdk" ` 24080d59932Sopenharmony_ci -B "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\sdk" 24180d59932Sopenharmony_ci foreach ($Config in 'Release','Debug') { ` 24280d59932Sopenharmony_ci & cmake ` 24380d59932Sopenharmony_ci --build "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\sdk" ` 24480d59932Sopenharmony_ci --config ${Config} ` 24580d59932Sopenharmony_ci -- ` 24680d59932Sopenharmony_ci -j ${env:NUMBER_OF_PROCESSORS} ` 24780d59932Sopenharmony_ci }