Compilation issues, trying NJOY21
On MacOs Mojave 10.14.6 and with gcc version 8.3.0 (GCC), after having followed all instruction I do get with make Scanning dependencies of target utility [ 1%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getRealWithLBound.cpp.o [ 2%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getRealNumber.cpp.o [ 4%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/readString.cpp.o [ 5%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getLine.cpp.o [ 7%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getInteger.cpp.o [ 8%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getBool.cpp.o [ 10%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getTemperature.cpp.o [ 11%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getIntInRange.cpp.o [ 12%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getEnergy.cpp.o [ 14%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getStringArg.cpp.o [ 15%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getIntWithLBound.cpp.o [ 17%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/string/src/split.cpp.o [ 18%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/string/src/toDouble.cpp.o [ 20%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/string/src/trim.cpp.o [ 21%] Linking CXX shared library libutility.dylib [ 21%] Built target utility Scanning dependencies of target njoy [ 22%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/locale.f90.o [ 24%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/mainio.f90.o [ 25%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/util.f90.o [ 27%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/endf.f90.o [ 28%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/mathm.f90.o [ 30%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/phys.f90.o [ 31%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/acecm.f90.o [ 32%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/acedo.f90.o [ 34%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/acefc.f90.o [ 35%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/acepa.f90.o [ 37%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/acepn.f90.o [ 38%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/aceth.f90.o [ 40%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/acer.f90.o [ 41%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/broadr.f90.o [ 42%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/ccccr.f90.o [ 44%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/covr.f90.o [ 45%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/dtfr.f90.o [ 47%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/samm.f90.o [ 48%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/errorr.f90.o [ 50%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/gaminr.f90.o [ 51%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/gaspr.f90.o [ 52%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/graph.f90.o [ 54%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/groupr.f90.o [ 55%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/heatr.f90.o [ 57%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/leapr.f90.o [ 58%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/matxsr.f90.o [ 60%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/mixr.f90.o [ 61%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/moder.f90.o [ 62%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/plotr.f90.o [ 64%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/powr.f90.o [ 65%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/purr.f90.o [ 67%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/reconr.f90.o [ 68%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/resxsr.f90.o [ 70%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/thermr.f90.o [ 71%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/unresr.f90.o [ 72%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/vers.f90.o [ 74%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/viewr.f90.o [ 75%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/wimsr.f90.o [ 77%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/main.f90.o [ 78%] Linking Fortran shared library libnjoy.dylib [ 78%] Built target njoy Scanning dependencies of target njoy_c_bindings [ 80%] Building Fortran object subprojects/njoy_c_bindings/CMakeFiles/njoy_c_bindings.dir/src/njoy_c_bindings.f90.o [ 81%] Building Fortran object subprojects/njoy_c_bindings/CMakeFiles/njoy_c_bindings.dir/src/njoy_c_helpers.f90.o [ 82%] Linking Fortran shared library libnjoy_c_bindings.dylib [ 82%] Built target njoy_c_bindings Scanning dependencies of target njoy21 [ 84%] Building CXX object CMakeFiles/njoy21.dir/src/main.cpp.o In file included from /opt/code/NJOY/NJOY21/src/main.cpp:1: /opt/code/NJOY/NJOY21/src/njoy21.hpp:22:32: error: unknown warning group '-Wmaybe-uninitialized', ignored [-Werror,-Wunknown-warning-option] #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" ^ 1 error generated. make[2]: *** [CMakeFiles/njoy21.dir/src/main.cpp.o] Error 1 make[1]: *** [CMakeFiles/njoy21.dir/all] Error 2 make: *** [all] Error 2
What is wrong, has I believe we are compiling f90, wrapped into c++
This appears to be an issue with the compiler preprocessor (in which we exclude certain warning messages). Your version of clang/gcc does not appear to have this particular warning.
@jlconlin Any ideas?
You loose me there as for me apple and orange are different fruit; clang is from the LLVN project while gcc from the GNU. Two different compilers, if I can change the gcc version on any Mac OsX I have no say on the Xcode clang choice, made by Apple themselves. Which one you want/need to use on OsX ?
@jchsublet LLVM only provides a C/C++ compiler; it does not provide a Fortran compiler. You need to have a Fortran compiler to compile the Legacy NJOY parts. Thus, you need both LLVM and gfortran (from GCC). Likely what is happening is that CMake is using g++ and gfortran (both part of the GCC suite).
I think a solution would be to invoke CMake like this:
$ cmake -D CMAKE_CXX_COMPILER=`which clang++` -D CMAKE_BUILD_TYPE=Release ..
That should ensure that you are using the LLVM compiler on your Mac.
Unlikely as your new option -Wmaybe-uninitialized belong to Clang 12 class, does not work with Clang 10 or 11, so force Xcode 12, is that what you really want? as many OsX user will not wish or could to so quickly shifted to this Xcode level
On OsX the LLVM level is not a choice, this is imposed by Xcode