emscripten-core / emscripten-core/emscripten

`ccache` not working with `em++.bat` using `-DCMAKE_CXX_COMPILER_LAUNCHER=ccache`

Open
#22,374 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
27.6k
Forks
3.6k
Avg merge
1d 1h
Merged PRs (30d)
105

Description

I'm using the canonical CMake way of enabling `ccache` via `-DCMAKE_CXX_COMPILER_LAUNCHER=ccache`. On my MSYS2/CLANG64 installation of Emscripten, this technique fails, probably due to the `emscripten\em++.bat` wrapper not correctly handling `ccache` as a prefix.

---

**Version of emscripten/emsdk:**
```
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.64-git (7b466b4f097b05b9f1e4f6ae0753f525cac08c92)
clang version 19.0.0git
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: C:/msys64/clang64/opt/emscripten-llvm/bin
```

**Failing command line in full:**
```
[33/379] Building CXX object src/SFML/Window/CMakeFiles/sfml-window.dir/Touch.cpp.o
FAILED: src/SFML/Window/CMakeFiles/sfml-window.dir/Touch.cpp.o
ccache C:\msys64\clang64\lib\emscripten\em++.bat -DDOCTEST_CONFIG_SUPER_FAST_ASSERTS -DGL_GLEXT_PROTOTYPES -DSFML_BUILD_AUDIO -DSFML_BUILD_EXAMPLES -DSFML_BUILD_GRAPHICS -DSFML_BUILD_IMGUI -DSFML_BUILD_NETWORK -DSFML_BUILD_TEST_SUITE -DSFML_BUILD_WINDOW -DSFML_ENABLE_LIFETIME_TRACKING -DSFML_OPENGL_ES -DSFML_STATIC -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES -IC:/OHWorkspace/SFML/include -IC:/OHWorkspace/SFML/src -isystem C:/OHWorkspace/SFML/extlibs/headers/glad/include -isystem C:/OHWorkspace/SFML/extlibs/headers/vulkan -Wall -Wextra -Wpedantic -Wno-ignored-attributes -Wno-unused-command-line-argument -g -std=c++20 -fansi-escape-codes -fcolor-diagnostics -g3 -gsource-map -O0 -pthread -Wall -Wextra -Wshadow -Wnon-virtual-dtor -Wcast-align -Wunused -Woverloaded-virtual -Wconversion -Wsign-conversion -Wdouble-promotion -Wformat=2 -Wimplicit-fallthrough -Wsuggest-override -Wnull-dereference -Wold-style-cast -Wpedantic -Wno-c++20-extensions -Wno-unknown-warning-option -MD -MT src/SFML/Window/CMakeFiles/sfml-window.dir/Touch.cpp.o -MF src\SFML\Window\CMakeFiles\sfml-window.dir\Touch.cpp.o.d -o src/SFML/Window/CMakeFiles/sfml-window.dir/Touch.cpp.o -c C:/OHWorkspace/SFML/src/SFML/Window/Touch.cpp
The parameter is incorrect.
```

*(This error is repeated for every single object file.)*

**Full link command and output with `-v` appended:**
Linking stage is never reached.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.