zig c++ does not support compile only mode #30222
Labels
No labels
abi/f32
abi/ilp32
abi/n32
abi/sf
abi/x32
accepted
arch/1750a
arch/21k
arch/6502
arch/a29k
arch/aarch64
arch/alpha
arch/amdgcn
arch/arc
arch/arc32
arch/arc64
arch/arm
arch/avr
arch/avr32
arch/bfin
arch/bpf
arch/clipper
arch/colossus
arch/cr16
arch/cris
arch/csky
arch/dlx
arch/dsp16xx
arch/elxsi
arch/epiphany
arch/fr30
arch/frv
arch/h8300
arch/h8500
arch/hexagon
arch/hppa
arch/hppa64
arch/i370
arch/i860
arch/i960
arch/ia64
arch/ip2k
arch/kalimba
arch/kvx
arch/lanai
arch/lm32
arch/loongarch32
arch/loongarch64
arch/m32r
arch/m68k
arch/m88k
arch/maxq
arch/mcore
arch/metag
arch/microblaze
arch/mips
arch/mips64
arch/mmix
arch/mn10200
arch/mn10300
arch/moxie
arch/mrisc32
arch/msp430
arch/nds32
arch/nios2
arch/ns32k
arch/nvptx
arch/or1k
arch/pdp10
arch/pdp11
arch/pj
arch/powerpc
arch/powerpc64
arch/propeller
arch/riscv32
arch/riscv64
arch/rl78
arch/rx
arch/s390
arch/s390x
arch/sh
arch/sh64
arch/sparc
arch/sparc64
arch/spirv
arch/spu
arch/st200
arch/starcore
arch/tilegx
arch/tilepro
arch/tricore
arch/ts
arch/v850
arch/vax
arch/vc4
arch/ve
arch/wasm
arch/we32k
arch/x86
arch/x86_16
arch/x86_64
arch/xcore
arch/xgate
arch/xstormy16
arch/xtensa
autodoc
backend/c
backend/llvm
backend/self-hosted
binutils
breaking
build system
debug info
docs
error message
frontend
fuzzing
incremental
lib/c
lib/compiler-rt
lib/cxx
lib/std
lib/tsan
lib/ubsan-rt
lib/unwind
linking
miscompilation
os/aix
os/android
os/bridgeos
os/contiki
os/dragonfly
os/driverkit
os/emscripten
os/freebsd
os/fuchsia
os/haiku
os/hermit
os/hurd
os/illumos
os/ios
os/kfreebsd
os/linux
os/maccatalyst
os/macos
os/managarm
os/netbsd
os/ohos
os/openbsd
os/plan9
os/redox
os/rtems
os/serenity
os/solaris
os/tvos
os/uefi
os/visionos
os/wali
os/wasi
os/watchos
os/windows
os/zos
proposal
release notes
testing
tier system
zig cc
zig fmt
bounty
bug
contributor-friendly
downstream
enhancement
infra
optimization
question
regression
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ziglang/zig#30222
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Zig Version
0.16.0-dev.1624+b9eefe17a
Steps to Reproduce and Observed Behavior
I started to investigate what is missing to support C++ modules with the zig c++ toolchain. As a first step cmake will run clang-scan-deps to discover C++ module dependencies.
Failing command:
Example with clang++-21
Example command using zig c++
Error in zig
Error while scanning dependencies for /data/workspace/zig/cpp_modules/cpp_ex_01/main.cpp:
/data/workspace/zig/cpp_modules/cpp_ex_01/main.cpp:3:10: fatal error: 'iostream' file not found
The following arguments passed to zig c++ are meant to run clang in scan mode only, but It seems zig c++ is trying to compile and link, when it should only run in object mode:
-c Only run preprocess, compile, and assemble steps
-MT Specify name of main file output in depfile
-MD Write a depfile containing user and system headers
-MF Write depfile output from -MMD, -MD, -MM, or -M to
https://clang.llvm.org/docs/ClangCommandLineReference.html
Expected output(files generated):
build-cmake/CMakeFiles/main.dir/main.cpp.o
build-cmake/CMakeFiles/main.dir/main.cpp.o.ddi
build-cmake/CMakeFiles/main.dir/main.cpp.o.ddi.d
build-cmake/CMakeFiles/main.dir/main.cpp.o.modmap
Software used:
Ubuntu 24.04
cmake 4.2.0
clang++-21
zig 0.16.0-dev.1624+b9eefe17a
Steps to reproduce
commands
main.cpp
math.cppm
CMakeLists.txt
CMakePresets.json
Expected Behavior
Expected output(files generated):