C++ Modules: clang-scan-deps + gcc
I am trying to use clang-scan-deps from LLVM 16 as the scanner for gcc. The possibility is mentioned in #18355 (comment 1316796).
- OS: Linux
- LLVM: 16
- GCC: 12.2
- CMake: 3.26
- Ninja: 1.11.1
- Repo: https://github.com/huangqinjin/cxxmodules
Build the named-module
project and fails with messages:
$ cmake --build . --target named-module -- -v
[1/6] /opt/llvm-16/bin/clang-scan-deps -format=p1689 -- /opt/llvm-16/bin/clang++ -g -std=c++20 -x c++ /home/huangqinjin/Projects/cxxmodules/named-module/main.cpp -c -o named-module/CMakeFiles/named-module.dir/main.cpp.o -MT named-module/CMakeFiles/named-module.dir/main.cpp.o.ddi -MD -MF named-module/CMakeFiles/named-module.dir/main.cpp.o.ddi.d > named-module/CMakeFiles/named-module.dir/main.cpp.o.ddi
[2/6] /opt/llvm-16/bin/clang-scan-deps -format=p1689 -- /opt/llvm-16/bin/clang++ -g -std=c++20 -x c++ /home/huangqinjin/Projects/cxxmodules/named-module/hello.cppm -c -o named-module/CMakeFiles/named-module.dir/hello.cppm.o -MT named-module/CMakeFiles/named-module.dir/hello.cppm.o.ddi -MD -MF named-module/CMakeFiles/named-module.dir/hello.cppm.o.ddi.d > named-module/CMakeFiles/named-module.dir/hello.cppm.o.ddi
[3/6] /opt/cmake/bin/cmake -E cmake_ninja_dyndep --tdi=named-module/CMakeFiles/named-module.dir/CXXDependInfo.json --lang=CXX --modmapfmt=gcc --dd=named-module/CMakeFiles/named-module.dir/CXX.dd @named-module/CMakeFiles/named-module.dir/CXX.dd.rsp
[4/6] /usr/bin/g++-12 -g -std=c++20 -MD -MT named-module/CMakeFiles/named-module.dir/hello.cppm.o -MF named-module/CMakeFiles/named-module.dir/hello.cppm.o.d -fmodules-ts -fmodule-mapper=named-module/CMakeFiles/named-module.dir/hello.cppm.o.modmap -x c++ -o named-module/CMakeFiles/named-module.dir/hello.cppm.o -c /home/huangqinjin/Projects/cxxmodules/named-module/hello.cppm
FAILED: named-module/CMakeFiles/named-module.dir/hello.cppm.o named-module/CMakeFiles/named-module.dir/hello.gcm
/usr/bin/g++-12 -g -std=c++20 -MD -MT named-module/CMakeFiles/named-module.dir/hello.cppm.o -MF named-module/CMakeFiles/named-module.dir/hello.cppm.o.d -fmodules-ts -fmodule-mapper=named-module/CMakeFiles/named-module.dir/hello.cppm.o.modmap -x c++ -o named-module/CMakeFiles/named-module.dir/hello.cppm.o -c /home/huangqinjin/Projects/cxxmodules/named-module/hello.cppm
inputs may not also have inputs
ninja: build stopped: subcommand failed.
Edit
No error after adding -Mno-modules
.
set(CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FLAG "-fmodules-ts -Mno-modules -fmodule-mapper=<MODULE_MAP_FILE> -x c++")
Edited by huangqinjin