8989 tooling_repo_path : src/ros-controls/ros2_control_ci
9090 CCACHE_DIR : ${{ github.workspace }}/${{ inputs.ccache_dir }}
9191 CACHE_PREFIX : win-${{ inputs.ros_distro }}-${{ inputs.target_workspace }}-${{ github.job }}
92+ CCACHE_MSVC : " 1"
9293 steps :
9394 - name : Checkout default ref when build is not scheduled
9495 if : ${{ github.event_name != 'schedule' }}
@@ -201,7 +202,13 @@ jobs:
201202 call pixi shell-hook -s cmd > pixi_env.bat
202203 call pixi_env.bat >nul 2>&1
203204
204- mkdir -p ${{ env.CCACHE_DIR }}
205+ if not exist "${{ env.CCACHE_DIR }}" mkdir "${{ env.CCACHE_DIR }}"
206+ set "CCACHE_WRAPPER=%RUNNER_TEMP:\=/%/cl_wrapper.bat"
207+ > "%CCACHE_WRAPPER%" echo @echo off
208+ >> "%CCACHE_WRAPPER%" echo ccache cl.exe %%*
209+
210+ echo CCACHE wrapper created at: %CCACHE_WRAPPER%
211+ type "%CCACHE_WRAPPER%"
205212 ccache --show-config
206213 ccache --zero-stats
207214
@@ -298,6 +305,7 @@ jobs:
298305 call pixi shell-hook -s cmd > pixi_env.bat
299306 call pixi_env.bat >nul 2>&1
300307
308+ set "CCACHE_WRAPPER=%RUNNER_TEMP:\=/%/cl_wrapper.bat"
301309 call ${{ env.ros_underlay_path }}\ros2_${{ inputs.ros_distro }}\ros2-windows\setup.bat
302310 pushd ${{ env.upstream_workspace }}
303311
@@ -314,13 +322,13 @@ jobs:
314322 )
315323
316324 if not "${{ inputs.ninja_packages }}"=="" (
317- colcon build --packages-up-to ${{ inputs.ninja_packages }} --cmake-args -G Ninja --event-handler console_cohesion+ --merge-install
325+ colcon build --packages-up-to ${{ inputs.ninja_packages }} --cmake-args -G Ninja -DCMAKE_C_COMPILER="%CCACHE_WRAPPER%" -DCMAKE_CXX_COMPILER="%CCACHE_WRAPPER%" - -event-handler console_cohesion+ --merge-install
318326 set skip_arg=%skip_arg% ${{ inputs.ninja_packages }}
319327 )
320328
321329 REM skip pinocchio, which take an eternity to build. build with different cmake args, see below
322330 colcon build --packages-skip pinocchio %skip_arg% %skip_regex_arg% --event-handler console_cohesion+ ^
323- --cmake-args -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ${{ inputs.upstream_cmake_args }} ^
331+ --cmake-args -DCMAKE_C_COMPILER="%CCACHE_WRAPPER%" -DCMAKE_CXX_COMPILER="%CCACHE_WRAPPER%" ${{ inputs.upstream_cmake_args }} ^
324332 --merge-install
325333
326334 REM Check if 'pinocchio' is in the list of packages, and build it
@@ -334,7 +342,7 @@ jobs:
334342 --cmake-args --no-warn-unused-cli ^
335343 -DBUILD_EXAMPLES=OFF -DBUILD_PYTHON_INTERFACE=OFF -DBUILD_WITH_HPP_FCL_SUPPORT=OFF ^
336344 -DBUILD_WITH_COLLISION_SUPPORT=OFF ^
337- -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ^
345+ -DCMAKE_C_COMPILER="%CCACHE_WRAPPER%" -DCMAKE_CXX_COMPILER="%CCACHE_WRAPPER%" ^
338346 --packages-select pinocchio ^
339347 --merge-install
340348 )
@@ -346,6 +354,7 @@ jobs:
346354 call pixi shell-hook -s cmd > pixi_env.bat
347355 call pixi_env.bat >nul 2>&1
348356
357+ set "CCACHE_WRAPPER=%RUNNER_TEMP:\=/%/cl_wrapper.bat"
349358 call ${{ env.ros_underlay_path }}\ros2_${{ inputs.ros_distro }}\ros2-windows\setup.bat
350359 call ${{ env.upstream_workspace }}\install\setup.bat
351360
@@ -363,7 +372,7 @@ jobs:
363372 pushd ${{ env.target_workspace }}
364373 )
365374 colcon build %skip_arg% %skip_regex_arg% --event-handler console_cohesion+ ^
366- --cmake-args -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ${{ inputs.target_cmake_args }} ^
375+ --cmake-args -DCMAKE_C_COMPILER="%CCACHE_WRAPPER%" -DCMAKE_CXX_COMPILER="%CCACHE_WRAPPER%" ${{ inputs.target_cmake_args }} ^
367376 --merge-install
368377
369378 - name : Show ccache stats
0 commit comments