Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 558644

Summary: dev-build/cmake - ninja generator does not support fortran compiler
Product: Gentoo Linux Reporter: Andrew Savchenko <bircoph>
Component: Current packagesAssignee: Gentoo's Team for Core System packages <base-system>
Status: CONFIRMED ---    
Severity: normal CC: chromium, kde, mgorny, toralf
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on: 668020    
Bug Blocks: 557992    

Description Andrew Savchenko gentoo-dev 2015-08-24 23:17:48 UTC
Hi,

Ninja should either support Fortran compiler (e.g. add this functionality) or should not be used for packages compiling Fortran code. There are multiple bugs about this already.
Comment 1 Andrew Savchenko gentoo-dev 2015-08-24 23:19:14 UTC
*** Bug 558632 has been marked as a duplicate of this bug. ***
Comment 2 Andrew Savchenko gentoo-dev 2015-08-24 23:20:18 UTC
*** Bug 558592 has been marked as a duplicate of this bug. ***
Comment 3 Andrew Savchenko gentoo-dev 2015-08-24 23:21:45 UTC
*** Bug 558244 has been marked as a duplicate of this bug. ***
Comment 4 Mike Gilbert gentoo-dev 2015-08-25 00:06:01 UTC
ninja has never claimed to support fortran. If the feature is desired, it needs to be requested upstream.

People should not be setting CMAKE_MAKEFILE_GENERATOR=ninja globally if they are going to be building fortran packages.
Comment 5 Toralf Förster gentoo-dev 2015-08-25 11:43:07 UTC
(In reply to Mike Gilbert from comment #4)
> ninja has never claimed to support fortran. If the feature is desired, it
> needs to be requested upstream.

I wasn't aware of this, sry.

> People should not be setting CMAKE_MAKEFILE_GENERATOR=ninja globally if they
> are going to be building fortran packages.
Comment 6 Mike Gilbert gentoo-dev 2015-08-25 13:54:51 UTC
Actually, ninja has any built-in support for compiling any language; that has to be defined in build rules by the program that generates the ninja files.

I suspect the cmake generator for ninja simply does not generate valid ninja files for compiling fortran.

Re-opening.
Comment 7 Toralf Förster gentoo-dev 2015-08-25 16:02:21 UTC
(In reply to Mike Gilbert from comment #6)
> Re-opening.

Do you accept furthermore bug reports of this kind (with blocker to "ninja-porting") or will those be declined ?
Comment 8 Mike Gilbert gentoo-dev 2015-08-25 16:20:34 UTC
(In reply to Toralf Förster from comment #7)
> Do you accept furthermore bug reports of this kind (with blocker to
> "ninja-porting") or will those be declined ?

I don't think it makes sense to file bugs for individual fortran packages at this point. The fix is likely to be in cmake or the eclass, and not in the individual packages.
Comment 9 Michael Palimaka (kensington) gentoo-dev 2016-10-12 18:59:39 UTC
From cmake-3.7.0_rc1 (in tree without keywords currently) changelog:


* The "Ninja" generator learned to conditionally support Fortran
  when using a "ninja" tool that has the necessary features. See
  generator documentation for details.
Comment 10 Mike Gilbert gentoo-dev 2016-10-13 19:40:23 UTC
(In reply to Michael Palimaka (kensington) from comment #9)
> * The "Ninja" generator learned to conditionally support Fortran
>   when using a "ninja" tool that has the necessary features. See
>   generator documentation for details.

I think that Gentoo's ninja package does not satisfy this. We provide the a package based on https://github.com/ninja-build/ninja, whereas cmake wants a ninja package with several changes that have not yet been merged: https://github.com/Kitware/ninja.
Comment 11 Michael Palimaka (kensington) gentoo-dev 2017-06-24 15:42:23 UTC
We'll get ninja/fortran support if and when it lands in ninja upstream, and we don't support officially using ninja globally.
Comment 12 Michael Palimaka (kensington) gentoo-dev 2018-02-28 09:06:30 UTC
FYI from the cmake-3.11 release notes:

* The Makefile Generators and the "Ninja" generator learned to add
  compiler launcher tools along with the compiler for the "Fortran"
  language ("C", "CXX", and "CUDA" were supported previously). See the
  "CMAKE_<LANG>_COMPILER_LAUNCHER" variable and
  "<LANG>_COMPILER_LAUNCHER" target property for details.
Comment 13 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2018-02-28 09:31:32 UTC
Sounds like we can get back to the business. I think the best way forward would be to add a >= dep to the eclass when three new version is in and stable, and then start removing generator overrides.
Comment 14 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2018-02-28 09:32:03 UTC
s/three/the/
Comment 15 Andreas Sturmlechner gentoo-dev 2021-08-05 20:26:45 UTC
Can this be closed?