# Wrong percentage status when building one of many targets

**URL:** https://discourse.cmake.org/t/wrong-percentage-status-when-building-one-of-many-targets/2557
**Category:** Usage
**Created:** [January 15, 2021, 4:18pm UTC](https://discourse.cmake.org/t/wrong-percentage-status-when-building-one-of-many-targets/2557 "2021-01-15T16:18:25Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![tgq](https://discourse.cmake.org/letter_avatar_proxy/v4/letter/t/87869e/32.png) [@tgq](https://discourse.cmake.org/u/tgq)
#### Post date: [January 15, 2021, 4:18pm UTC](https://discourse.cmake.org/t/wrong-percentage-status-when-building-one-of-many-targets/2557/1 "2021-01-15T16:18:25Z")

</div>

Hello. There is this annoying problem, that when a package comes with a ton of targets (like llvm), invoking make on just a few targets makes the progress not show the actual percentage of built code, but looks more or less like that:

```auto
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DFAEmitter.cpp.o
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DirectiveEmitter.cpp.o
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DisassemblerEmitter.cpp.o
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/ExegesisEmitter.cpp.o
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FastISelEmitter.cpp.o
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FixedLenDecoderEmitter.cpp.o
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/GICombinerEmitter.cpp.o
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/GlobalISelEmitter.cpp.o
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InfoByHwMode.cpp.o
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrInfoEmitter.cpp.o
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrDocsEmitter.cpp.o
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/IntrinsicEmitter.cpp.o
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/OptEmitter.cpp.o
[66%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/OptParserEmitter.cpp.o
[100%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/OptRSTEmitter.cpp.o
[100%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/PredicateExpander.cpp.o
[100%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o
[100%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RISCVCompressInstEmitter.cpp.o
[100%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterBankEmitter.cpp.o
[100%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterInfoEmitter.cpp.o
[100%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SDNodeProperties.cpp.o
[100%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SearchableTableEmitter.cpp.o
[100%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetEmitter.cpp.o

```

Why is the progress 66% literally forever and then it jumps to 100% right away (which also lasts long time)?

---

<div class="post-metadata">

### Author: ![sjoubert](https://discourse.cmake.org/user_avatar/discourse.cmake.org/sjoubert/32/110_2.png) [@sjoubert](https://discourse.cmake.org/u/sjoubert)
#### Post date: [January 15, 2021, 4:38pm UTC](https://discourse.cmake.org/t/wrong-percentage-status-when-building-one-of-many-targets/2557/2 "2021-01-15T16:38:55Z")

</div>

I think the progress is generated from the Makefiles and has the target granularity. If you want a better progress report try the Ninja generator, if you can, which has a better granularity.

---

<div class="post-metadata">

### Author: ![YMba9g8j9CJp0wLoQf5y](https://discourse.cmake.org/user_avatar/discourse.cmake.org/ymba9g8j9cjp0wloqf5y/32/1244_2.png) [@YMba9g8j9CJp0wLoQf5y](https://discourse.cmake.org/u/YMba9g8j9CJp0wLoQf5y)
#### Post date: [January 15, 2021, 8:49pm UTC](https://discourse.cmake.org/t/wrong-percentage-status-when-building-one-of-many-targets/2557/3 "2021-01-15T20:49:12Z")

</div>

What generator and version of cmake are you using?

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.cmake.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.cmake.org/u/ben.boeckel)
#### Post date: [January 19, 2021, 7:37pm UTC](https://discourse.cmake.org/t/wrong-percentage-status-when-building-one-of-many-targets/2557/4 "2021-01-19T19:37:03Z")

</div>

The Makefiles progress report is really a best-effort thing. There are known issues with it. I’d either use it with the knowledge that it is not exactly accurate in terms of time (ever) or command count when using it in parallel. If you really want something better for at least command count progress, the Ninja generator is the way to go.

---

<div class="post-metadata">

### Author: ![ddddxie](https://discourse.cmake.org/user_avatar/discourse.cmake.org/ddddxie/32/2581_2.png) [@ddddxie](https://discourse.cmake.org/u/ddddxie)
#### Post date: [July 7, 2022, 6:02am UTC](https://discourse.cmake.org/t/wrong-percentage-status-when-building-one-of-many-targets/2557/5 "2022-07-07T06:02:33Z")

</div>

Hi,tgq  
I want to ask you how can make Cmake display percentage progress report?  
Look forward you reply!  
Regards,  
xie

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.cmake.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.cmake.org/u/ben.boeckel)
#### Post date: [July 9, 2022, 1:18pm UTC](https://discourse.cmake.org/t/wrong-percentage-status-when-building-one-of-many-targets/2557/6 "2022-07-09T13:18:27Z")

</div>

CMake just drops files into a directory and counts them versus the expected number. It’s pretty primitive, but works as long as things go as expected (filesystems are weird, so things go sideways sometimes).
