[CMake] Support of compile features for Fujitsu C++ Compiler

Robert Maynard robert.maynard at kitware.com
Thu May 9 10:29:12 EDT 2019


The goal would be to upstream the compiler changes to cmake so that
all users could benefit from the improved compiler detection :)

I would look at the FindMPI docs on locating the correct mpi compiler:
https://cmake.org/cmake/help/v3.14/module/FindMPI.html#variables-for-locating-mpi
. It looks like what you will need to specify is
MPI_<lang>_COMPILER_FLAGS

On Wed, May 8, 2019 at 10:15 PM Zehner Paul <zehner.paul at jaxa.jp> wrote:
>
> Thank you for your answer.
>
> This means I have to override `/usr/share/cmake/Modules/Compiler/Fujitsu-DetermineCompiler.cmake`? This is not unfeasible, but it may seems tricky to my users. Since detecting compiler version is not a crucial task, maybe I will keep this file as it and concentrate on other ones.
>
> Another question I have is regarding MPI. The `find_package(MPI REQUIRED)` directive fails with "Could NOT find MPI (missing: MPI_CXX_FOUND)". I have no clue on how to help the detection of MPI. The compiler I give to CMake is actually an MPI wrapper that only needs one argument to enable MPI features. I tried with some exotic-named GCC compilers at my lab (which are MPI wrappers as well) and it could detect MPI with no problem. Where should I start?
>
> Best regards,
>
> --
>
> Paul Zehner, Ph. D.
>
> Invited Researcher
>
> Numerical Simulation Research Unit
>
> Japan Aerospace Exploration Agency
>
> 7-44-1 Jindaiji Higashi-machi, Chofu-shi, Tokyo
>
> 182-8522, Japan
>
> Tel. +81-50-3362-7933
>
> Fax. +81-422-40-3327
>
> zehner.paul at jaxa.jp
>
> www.jaxa.jp
>
> ________________________________
> From: Robert Maynard <robert.maynard at kitware.com>
> Sent: Thursday, May 9, 2019 3:12
> To: Zehner Paul
> Cc: Kai Wolf; cmake at cmake.org
> Subject: Re: [CMake] Support of compile features for Fujitsu C++ Compiler
>
> I believe the only way is to have your version of
> Fujitsu-DetermineCompiler.cmake be installed over the one provided by
> CMake. When it comes to known compilers CMake explicitly includes the
> version it ships.
>
> On Tue, May 7, 2019 at 11:01 PM Zehner Paul <zehner.paul at jaxa.jp> wrote:
> >
> > Robert,
> >
> > Thank you for the advice.
> >
> > As I want to take account of compiler version, I overrided the `Fujitsu-DetermineCompiler.cmake` file by copy-pasting and editing it in the folder of `CMAKE_MODULE_PATH`. However, the installation `Fujitsu-DetermineCompiler.cmake` file is always used instead. What should I do?
> >
> > Best regards,
> >
> > --
> >
> > Paul Zehner, Ph. D.
> >
> > Invited Researcher
> >
> > Numerical Simulation Research Unit
> >
> > Japan Aerospace Exploration Agency
> >
> > 7-44-1 Jindaiji Higashi-machi, Chofu-shi, Tokyo
> >
> > 182-8522, Japan
> >
> > Tel. +81-50-3362-7933
> >
> > Fax. +81-422-40-3327
> >
> > zehner.paul at jaxa.jp
> >
> > www.jaxa.jp
> >
> > ________________________________
> > From: Robert Maynard <robert.maynard at kitware.com>
> > Sent: Friday, April 26, 2019 23:32
> > To: Zehner Paul
> > Cc: Kai Wolf; cmake at cmake.org
> > Subject: Re: [CMake] Support of compile features for Fujitsu C++ Compiler
> >
> > For an initial implementation I would base the work on the PGI
> > compiler module (
> > https://gitlab.kitware.com/cmake/cmake/blob/v3.14.3/Modules/Compiler/PGI-CXX.cmake
> > ) not the GNU-CXX module.
> > This will allow you to add a new compiler with only meta-language
> > flags ( cxx_std_11, cxx_std_14, ... ) and you avoid the complexity of
> > having to manually build the feature tables.
> >
> > On Fri, Apr 26, 2019 at 3:58 AM Zehner Paul <zehner.paul at jaxa.jp> wrote:
> > >
> > > Kai,
> > >
> > >
> > > Thanks for your answer and for your presentation. So, I will try to add support for this Fujitsu compiler. Is there a list of the common compile features that I can base me upon? I plan use `GNU-CXX.cmake` as a source of inspiration.
> > >
> > >
> > > If I succeed to complete the `Fujitsu-CXX.cmake` file, I will propose it as a merge request.
> > >
> > >
> > > --
> > >
> > > Paul Zehner, Ph. D.
> > >
> > > Invited Researcher
> > >
> > > Numerical Simulation Research Unit
> > >
> > > Japan Aerospace Exploration Agency
> > >
> > > 7-44-1 Jindaiji Higashi-machi, Chofu-shi, Tokyo
> > >
> > > 182-8522, Japan
> > >
> > > Tel. +81-50-3362-7933
> > >
> > > Fax. +81-422-40-3327
> > >
> > > zehner.paul at jaxa.jp
> > >
> > > www.jaxa.jp
> > >
> > >
> > >
> > > ________________________________
> > > From: Kai Wolf <kai.wolf at gmail.com>
> > > Sent: Friday, April 26, 2019 16:22
> > > To: Zehner Paul
> > > Cc: cmake at cmake.org
> > > Subject: Re: [CMake] Support of compile features for Fujitsu C++ Compiler
> > >
> > > If you want to add support to your specific compiler, you could add or extend another Fujitsu-DetermineCompiler.cmake
> > > file and append your CMAKE_MODULE_PATH in order to CMake to find it. You probably also need to adjust
> > > *Fujitsu-CXX.cmake, Fujitsu-CXX-FeatureTests.cmake and so on.
> > >
> > > I gave a talk a few years ago that shortly explains the whole process of CMake initialization and compiler verification which
> > > you can find here: https://github.com/NewProggie/Talks/blob/master/2017-06-dep-management-with-cmake-MUC%2B%2B.pdf
> > >
> > >
> > > Greetings,
> > >
> > > Kai
> > >
> > > http://kai-wolf.me
> > > http://effective-cmake.com
> > >
> > > Am 26.04.2019 um 07:35 schrieb Zehner Paul <zehner.paul at jaxa.jp>:
> > >
> > > Hello Cmake community,
> > >
> > > I would like to use Cmake to build research simulation programs in a Fujitsu supercomputer environment. Unfortunately, it seems that Cmake (version 3.14) does not support any compile feature for the Fujitsu C++ compiler (FCCpx, version 2.0.0 P-id: T01815-02 (Jul 12 2018 13:13:18)). I add I am pretty new to Cmake. Searching for similar issues, I found only this [thread](https://cmake.org/pipermail/cmake-developers/2014-August/010989.html), which talk about basic support of the compiler.
> > >
> > > I tested it on a simple project, and the line:
> > >
> > > ```cmake
> > > target_compile_features(test PUBLIC cxx_std_11)
> > > ```
> > >
> > > fails with this message:
> > >
> > > ```
> > > CMake Error at CMakeLists.txt:15 (target_compile_features):
> > >   target_compile_features no known features for CXX compiler
> > >
> > >   "Fujitsu"
> > >
> > >   version .
> > >
> > > ```
> > >
> > > So, it seems that the compiler is detected (without its version), but compile features are not known. To be sure, I ran this simple test to list any supported features:
> > >
> > > ```cmake
> > > cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
> > > project(foobar CXX)
> > > message("Your C++ compiler supports these C++ features:")
> > > foreach(i ${CMAKE_CXX_COMPILE_FEATURES})
> > >     message("${i}")
> > > endforeach()
> > > ```
> > >
> > > and no feature are listed.
> > >
> > > So, what should I do from now on? Are there some people here using Cmake with Fujitsu who could help me? Should I propose a patch with the different compile features of the compiler? Or should I address it to Fujitsu?
> > >
> > > Thanks for your help,
> > >
> > > --
> > > Paul Zehner, Ph. D.
> > > Invited Researcher
> > > Numerical Simulation Research Unit
> > > Japan Aerospace Exploration Agency
> > > 7-44-1 Jindaiji Higashi-machi, Chofu-shi, Tokyo
> > > 182-8522, Japan
> > > Tel. +81-50-3362-7933
> > > Fax. +81-422-40-3327
> > > zehner.paul at jaxa.jp
> > > www.jaxa.jp
> > > --
> > >
> > > Powered by www.kitware.com
> > >
> > > Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
> > >
> > > Kitware offers various services to support the CMake community. For more information on each offering, please visit:
> > >
> > > CMake Support: http://cmake.org/cmake/help/support.html
> > > CMake Consulting: http://cmake.org/cmake/help/consulting.html
> > > CMake Training Courses: http://cmake.org/cmake/help/training.html
> > >
> > > Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
> > >
> > > Follow this link to subscribe/unsubscribe:
> > > https://cmake.org/mailman/listinfo/cmake
> > >
> > >
> > > --
> > >
> > > Powered by www.kitware.com
> > >
> > > Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
> > >
> > > Kitware offers various services to support the CMake community. For more information on each offering, please visit:
> > >
> > > CMake Support: http://cmake.org/cmake/help/support.html
> > > CMake Consulting: http://cmake.org/cmake/help/consulting.html
> > > CMake Training Courses: http://cmake.org/cmake/help/training.html
> > >
> > > Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
> > >
> > > Follow this link to subscribe/unsubscribe:
> > > https://cmake.org/mailman/listinfo/cmake


More information about the CMake mailing list