From 67706b1a038040af5ed6f1fec85b3099a4ad9887 Mon Sep 17 00:00:00 2001 From: pradeep Date: Fri, 26 Feb 2021 12:59:29 +0530 Subject: [PATCH 1/2] Separate Windows ci(gh-action) workflow and some improvs Splitting the windows ci job into a separate workflow enables the ci to re-run windows specific jobs independent of unix jobs. Updated Ninja dependency to 1.10.2 fix release in all ci(gh-actions) Refactored boost dependency to be installed via packages managers as GitHub Actions is removing pre-installed versions from March 8, 2021 Update VCPKG hash to newer version to enable fast and better ports. --- .../{cpu_build.yml => unix_cpu_build.yml} | 67 ++---------------- .github/workflows/win_cpu_build.yml | 69 +++++++++++++++++++ 2 files changed, 73 insertions(+), 63 deletions(-) rename .github/workflows/{cpu_build.yml => unix_cpu_build.yml} (62%) create mode 100644 .github/workflows/win_cpu_build.yml diff --git a/.github/workflows/cpu_build.yml b/.github/workflows/unix_cpu_build.yml similarity index 62% rename from .github/workflows/cpu_build.yml rename to .github/workflows/unix_cpu_build.yml index 88a83cd15c..3a70a093a4 100644 --- a/.github/workflows/cpu_build.yml +++ b/.github/workflows/unix_cpu_build.yml @@ -13,7 +13,7 @@ jobs: name: CPU runs-on: ${{ matrix.os }} env: - NINJA_VER: 1.10.0 + NINJA_VER: 1.10.2 CMAKE_VER: 3.5.1 strategy: fail-fast: false @@ -66,8 +66,10 @@ jobs: - name: Install Common Dependencies for Ubuntu if: matrix.os == 'ubuntu-16.04' || matrix.os == 'ubuntu-18.04' run: | + sudo add-apt-repository ppa:mhier/libboost-latest sudo apt-get -qq update - sudo apt-get install -y libfreeimage-dev \ + sudo apt-get install -y libboost1.74-dev \ + libfreeimage-dev \ libglfw3-dev \ libfftw3-dev \ liblapacke-dev @@ -103,7 +105,6 @@ jobs: mkdir build && cd build ${CMAKE_PROGRAM} -G Ninja \ -DCMAKE_MAKE_PROGRAM:FILEPATH=${GITHUB_WORKSPACE}/ninja \ - -DBOOST_ROOT:PATH=${BOOST_ROOT_1_72_0} \ -DAF_BUILD_CUDA:BOOL=OFF -DAF_BUILD_OPENCL:BOOL=OFF \ -DAF_BUILD_UNIFIED:BOOL=OFF -DAF_BUILD_EXAMPLES:BOOL=ON \ -DAF_BUILD_FORGE:BOOL=ON \ @@ -116,63 +117,3 @@ jobs: run: | cd ${GITHUB_WORKSPACE}/build ctest -D Experimental --track ${CTEST_DASHBOARD} -T Test -T Submit -R cpu -j2 - - window_build_cpu: - name: CPU (OpenBLAS, windows-latest) - runs-on: windows-latest - env: - VCPKG_HASH: b79f7675aaa82eb6c5a96ae764fb1ce379a9d5d6 # March 29, 2020 - [hdf5] add tools and fortran feature - NINJA_VER: 1.10.0 - steps: - - name: Checkout Repository - uses: actions/checkout@master - - - name: VCPKG Cache - uses: actions/cache@v1 - id: vcpkg-cache - with: - path: vcpkg - key: vcpkg-deps-${{ env.VCPKG_HASH }} - - - name: Install VCPKG Common Deps - if: steps.vcpkg-cache.outputs.cache-hit != 'true' - run: | - git clone --recursive https://github.com/microsoft/vcpkg - Set-Location -Path .\vcpkg - git reset --hard $env:VCPKG_HASH - .\bootstrap-vcpkg.bat - .\vcpkg.exe install --triplet x64-windows fftw3 freeimage freetype glfw3 openblas - Remove-Item .\downloads,.\buildtrees,.\packages -Recurse -Force - - - name: Download Ninja - run: | - Invoke-WebRequest -Uri "https://github.com/ninja-build/ninja/releases/download/v$env:NINJA_VER/ninja-win.zip" -OutFile ninja.zip - Expand-Archive -Path ninja.zip -DestinationPath . - - - name: CMake Configure - run: | - $cwd = (Get-Item -Path ".\").FullName - $ref = $env:GITHUB_REF | %{ if ($_ -match "refs/pull/[0-9]+/merge") { $_;} } - $prnum = $ref | %{$_.Split("/")[2]} - $branch = git branch --show-current - $buildname = if($prnum -eq $null) { $branch } else { "PR-$prnum" } - $dashboard = if($prnum -eq $null) { "Continuous" } else { "Experimental" } - $buildname = "$buildname-cpu-openblas" - mkdir build && cd build - cmake .. -G "Visual Studio 16 2019" -A x64 ` - -DCMAKE_TOOLCHAIN_FILE:FILEPATH="$env:GITHUB_WORKSPACE\vcpkg\scripts\buildsystems\vcpkg.cmake" ` - -DFFTW_INCLUDE_DIR:PATH="$env:GITHUB_WORKSPACE\vcpkg\installed/x64-windows\include" ` - -DFFTW_LIBRARY:FILEPATH="$env:GITHUB_WORKSPACE\vcpkg\installed\x64-windows\lib\fftw3.lib" ` - -DFFTWF_LIBRARY:FILEPATH="$env:GITHUB_WORKSPACE\vcpkg\installed\x64-windows\lib\fftw3f.lib" ` - -DBOOST_ROOT:PATH="$env:BOOST_ROOT_1_72_0" ` - -DAF_BUILD_CUDA:BOOL=OFF -DAF_BUILD_OPENCL:BOOL=OFF ` - -DAF_BUILD_UNIFIED:BOOL=OFF -DAF_BUILD_FORGE:BOOL=ON ` - -DBUILDNAME:STRING="$buildname" - echo "CTEST_DASHBOARD=${dashboard}" >> $GITHUB_ENV - - - name: Build and Test - run: | - $cwd = (Get-Item -Path ".\").FullName - $Env:PATH += ";$cwd/vcpkg/installed/x64-windows/bin" - Set-Location -Path $cwd/build - ctest -D Experimental --track ${CTEST_DASHBOARD} -T Test -T Submit -C Release -R cpu -E pinverse -j2 diff --git a/.github/workflows/win_cpu_build.yml b/.github/workflows/win_cpu_build.yml new file mode 100644 index 0000000000..ef4492f6d6 --- /dev/null +++ b/.github/workflows/win_cpu_build.yml @@ -0,0 +1,69 @@ +on: + push: + branches: + - master + pull_request: + branches: + - master + +name: ci + +jobs: + window_build_cpu: + name: CPU (OpenBLAS, windows-latest) + runs-on: windows-latest + env: + VCPKG_HASH: 0cbc579e1ee21fa4ad0974a9ed926f60c6ed1a4a # FEB 25, 2021 - [rsasynccpp] Add new port (Rstein.AsyncCpp) (#16380) + NINJA_VER: 1.10.2 + steps: + - name: Checkout Repository + uses: actions/checkout@master + + - name: VCPKG Cache + uses: actions/cache@v1 + id: vcpkg-cache + with: + path: vcpkg + key: vcpkg-deps-${{ env.VCPKG_HASH }} + + - name: Install VCPKG Common Deps + if: steps.vcpkg-cache.outputs.cache-hit != 'true' + run: | + git clone --recursive https://github.com/microsoft/vcpkg + Set-Location -Path .\vcpkg + git reset --hard $env:VCPKG_HASH + .\bootstrap-vcpkg.bat + .\vcpkg.exe install --triplet x64-windows boost fftw3 freeimage freetype glfw3 openblas + Remove-Item .\downloads,.\buildtrees,.\packages -Recurse -Force + + - name: Download Ninja + run: | + Invoke-WebRequest -Uri "https://github.com/ninja-build/ninja/releases/download/v$env:NINJA_VER/ninja-win.zip" -OutFile ninja.zip + Expand-Archive -Path ninja.zip -DestinationPath . + + - name: CMake Configure + run: | + $cwd = (Get-Item -Path ".\").FullName + $ref = $env:GITHUB_REF | %{ if ($_ -match "refs/pull/[0-9]+/merge") { $_;} } + $prnum = $ref | %{$_.Split("/")[2]} + $branch = git branch --show-current + $buildname = if($prnum -eq $null) { $branch } else { "PR-$prnum" } + $dashboard = if($prnum -eq $null) { "Continuous" } else { "Experimental" } + $buildname = "$buildname-cpu-openblas" + mkdir build && cd build + cmake .. -G "Visual Studio 16 2019" -A x64 ` + -DCMAKE_TOOLCHAIN_FILE:FILEPATH="$env:GITHUB_WORKSPACE\vcpkg\scripts\buildsystems\vcpkg.cmake" ` + -DFFTW_INCLUDE_DIR:PATH="$env:GITHUB_WORKSPACE\vcpkg\installed/x64-windows\include" ` + -DFFTW_LIBRARY:FILEPATH="$env:GITHUB_WORKSPACE\vcpkg\installed\x64-windows\lib\fftw3.lib" ` + -DFFTWF_LIBRARY:FILEPATH="$env:GITHUB_WORKSPACE\vcpkg\installed\x64-windows\lib\fftw3f.lib" ` + -DAF_BUILD_CUDA:BOOL=OFF -DAF_BUILD_OPENCL:BOOL=OFF ` + -DAF_BUILD_UNIFIED:BOOL=OFF -DAF_BUILD_FORGE:BOOL=ON ` + -DBUILDNAME:STRING="$buildname" + echo "CTEST_DASHBOARD=${dashboard}" >> $env:GITHUB_ENV + + - name: Build and Test + run: | + $cwd = (Get-Item -Path ".\").FullName + $Env:PATH += ";$cwd/vcpkg/installed/x64-windows/bin" + Set-Location -Path $cwd/build + ctest -D Experimental --track ${CTEST_DASHBOARD} -T Test -T Submit -C Release -R cpu -E pinverse -j2 From 04822ddd5565274b1de9ed2dbaff4020f9ed74fe Mon Sep 17 00:00:00 2001 From: Pradeep Garigipati Date: Fri, 26 Feb 2021 15:26:30 +0530 Subject: [PATCH 2/2] Mark couple of cmake variables as advanced that I missed earlier --- CMakeModules/AFconfigure_forge_dep.cmake | 2 ++ CMakeModules/FindcuDNN.cmake | 1 + 2 files changed, 3 insertions(+) diff --git a/CMakeModules/AFconfigure_forge_dep.cmake b/CMakeModules/AFconfigure_forge_dep.cmake index 72d9591908..364bd8375f 100644 --- a/CMakeModules/AFconfigure_forge_dep.cmake +++ b/CMakeModules/AFconfigure_forge_dep.cmake @@ -36,6 +36,8 @@ if(AF_BUILD_FORGE) FG_USE_WINDOW_TOOLKIT FG_USE_SYSTEM_CL2HPP FG_ENABLE_HUNTER + FG_RENDERING_BACKEND + SPHINX_EXECUTABLE glfw3_DIR glm_DIR ) diff --git a/CMakeModules/FindcuDNN.cmake b/CMakeModules/FindcuDNN.cmake index bf113afd5d..4c28d3c854 100644 --- a/CMakeModules/FindcuDNN.cmake +++ b/CMakeModules/FindcuDNN.cmake @@ -164,6 +164,7 @@ if(cuDNN_INCLUDE_DIRS) ${CMAKE_INSTALL_PREFIX} PATH_SUFFIXES lib lib64 bin lib/x64 bin/x64 DOC "cudnn${cudnn_lib_name_infix} Windows DLL." ) + mark_as_advanced(cuDNN${LIB_INFIX}_DLL_LIBRARY) endif() endmacro()