diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index 28a5af49c0ee9..1aff810052f2f 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -17,6 +17,7 @@ jobs: run: | choco install -y cuda --version 11.6.0.51123 choco install -y ninja + choco install -y sccache --version 0.2.15 refreshenv echo CUDA_PATH=%CUDA_PATH% echo CUDA_PATH=%CUDA_PATH% >> %GITHUB_ENV% @@ -49,6 +50,8 @@ jobs: --cmake-opt="-DCMAKE_C_COMPILER=cl" ^ --cmake-opt="-DCMAKE_CXX_COMPILER=cl" ^ --cmake-opt="-DCMAKE_INSTALL_PREFIX=%GITHUB_WORKSPACE%\install" ^ + --cmake-opt="-DCMAKE_CXX_COMPILER_LAUNCHER=sccache" ^ + --cmake-opt="-DCMAKE_C_COMPILER_LAUNCHER=sccache" ^ --cuda - name: Build shell: cmd @@ -64,4 +67,4 @@ jobs: uses: actions/upload-artifact@v2 with: name: sycl_windows_default - path: install/**/* \ No newline at end of file + path: install/**/* diff --git a/sycl/CMakeLists.txt b/sycl/CMakeLists.txt index 01df5c048a4fe..3d7f41c838aa7 100644 --- a/sycl/CMakeLists.txt +++ b/sycl/CMakeLists.txt @@ -62,7 +62,23 @@ if(MSVC) include(LLVMCheckLinkerFlag) llvm_check_linker_flag(CXX "/DEBUG" LINKER_SUPPORTS_DEBUG) if(LINKER_SUPPORTS_DEBUG) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zi") + # sccache is not compatible with /Zi flag + if (CMAKE_CXX_COMPILER_LAUNCHER STREQUAL "sccache") + # CMake may put /Zi by default + if(CMAKE_BUILD_TYPE STREQUAL "Debug") + string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") + string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}") + elseif(CMAKE_BUILD_TYPE STREQUAL "Release") + string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") + string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") + elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") + string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") + string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}") + endif() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Z7") + else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zi") + endif() add_link_options("/DEBUG") # Enable unreferenced removal and ICF in Release mode.