unable to build with cmake/ninja from 81dbc0fdb8646f90e1601f237e9eef8c8906cb8f on
balducci opened this issue · 2 comments
hello
starting with 81dbc0f until current master I'm unable to build critic2 with cmake/ninja and getting:
ninja: build stopped: multiple rules generate src/abinit_private.mod.
On the other hand, building with cmake/Makefiles works fine
Also, building with ninja has worked fine up to and including 4612739
Just curious to know if somebody else has noticed this or if something weird is going on on my side
It seems to me that there might be some glitch in the cmake files that causes generation of broken ninja files (while generation of Makefiles is fine); however, due to my ignorance about cmake/ninja I'm unable to debug this
Building with (if that matters):
-DCMAKE_Fortran_FLAGS=-fallow-argument-mismatch
Using these versions of cmake/ninja:
##> cmake --version
cmake version 3.24.2
##> ninja --version
1.11.1
but I have also downgraded to cmake-3.23.1/ninja-1.10.2
and got the same error
thanks in advance for any help
ciao
-gabriele
Hi @balducci : I have never used ninja, so I can't help very much. Two things: i) I fixed a few problems with the internal BLAS/LAPACK copy in the build system shortly after this message, and ii) I have had problems with how cmake generates the Fortran make dependencies in the past. The Fortran module/submodule dependencies are a bit tricky, and I'm not sure cmake got them quite right in all cases supported by the Fortran standard. ninja is not as popular as make so I imagine you are seeing a worse version of this problem since the commit you mention happened at around the time yet another submodule was added to the build.
thank you very much for the feedback
the problem is not serious for me because, as i said, building with makefiles works fine
But as I have been building with ninja since quite a bit, it's a pity that ninja has broken...
I'll find the time to make a git bisect and see if that will give some clue
I'll report back any good result
thanks for your valuable work
-g