diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 8c48f7bdfd..e4930c5471 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -128,7 +128,7 @@ if((BUILD_CONVERT OR BUILD_GEOMSERVER OR BUILD_IFCPYTHON) AND(NOT BUILD_IFCGEOM) endif() if(CCACHE_FOUND) - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_FOUND}") if(MSVC) # By default Visual Studio generators will use /Zi which is not compatible # with ccache, so tell Visual Studio to use /Z7 instead. diff --git a/win/build-deps.cmd b/win/build-deps.cmd index 1ecef21138..0d21c7e9e2 100644 --- a/win/build-deps.cmd +++ b/win/build-deps.cmd @@ -205,6 +205,34 @@ IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" ( echo PYTHONHOME=%PYTHONHOME%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%" ) + +:ccache +set DEPENDENCY_NAME=ccache +set CCACHE_VERSION=4.12.1 +set CCACHE_INSTALL_DIR=%DEPS_DIR%\%DEPENDENCY_NAME%-%CCACHE_VERSION%-windows-x86_64 +set CCACHE_ZIP=ccache-%CCACHE_VERSION%-windows-x86_64.zip +set DEPENDENCY_DIR=%CCACHE_INSTALL_DIR% + +where ccache >nul 2>&1 +IF %ERRORLEVEL%==0 ( + echo Found existing ccache in PATH. Skipping. + goto :proj +) + +echo CCACHE_INSTALL_DIR=%CCACHE_INSTALL_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%" +IF EXIST "%DEPENDENCY_DIR%" ( + echo Found existing "%DEPENDENCY_DIR%", skipping + goto :proj +) + +cd %DEPS_DIR% +call :DownloadFile ^ + https://github.com/ccache/ccache/releases/download/v%CCACHE_VERSION%/%CCACHE_ZIP% ^ + "%DEPS_DIR%" %CCACHE_ZIP% +IF NOT %ERRORLEVEL%==0 GOTO :Error +call :ExtractArchive %CCACHE_ZIP% "%DEPS_DIR%" "%DEPENDENCY_DIR%" +IF NOT %ERRORLEVEL%==0 GOTO :Error + :proj IF EXIST "%INSTALL_DIR%\proj-9.2.1" ( diff --git a/win/run-cmake.bat b/win/run-cmake.bat index c13c6cf95e..30eadd71f5 100755 --- a/win/run-cmake.bat +++ b/win/run-cmake.bat @@ -151,6 +151,7 @@ echo TBB_INCLUDE_DIR = %TBB_INCLUDE_DIR% echo TBB_LIBRARY_DIR = %TBB_LIBRARY_DIR% echo ROCKSDB_INSTALL_DIR = %ROCKSDB_INSTALL_DIR% echo ZSTD_INSTALL_DIR = %ZSTD_INSTALL_DIR% +echo CCACHE_INSTALL_DIR = %CCACHE_INSTALL_DIR% echo. echo CMAKE_INSTALL_PREFIX = %CMAKE_INSTALL_PREFIX% echo. @@ -162,7 +163,7 @@ echo "Running CMake for %PROJECT_NAME%." set CMAKE_PREFIX_PATH=%HDF5_INSTALL_DIR%;%OPENCOLLADA_INSTALL_DIR%;%SWIG_INSTALL_DIR% set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%ROCKSDB_INSTALL_DIR%;%ZSTD_INSTALL_DIR% -set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%BOOST_ROOT% +set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%BOOST_ROOT%;%CCACHE_INSTALL_DIR% IF NOT "%VS_TOOLSET_HOST%"=="" ( cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% -A %VS_PLATFORM% -T %VS_TOOLSET_HOST% ^