Compile Error | pedantic bug?

Trying to compile the RAVEN assembler (https://github.com/lbcb-sci/raven) with the CUDA option. Getting a compile error that is saying “treating all warnings as errors”.

Is there a way to fix this in the <CMakeLists.txt> file?

$ cmake -DCMAKE_BUILD_TYPE=Release -Dracon_enable_cuda=ON … && make
– The CXX compiler identification is GNU 9.3.0
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Check for working CXX compiler: /usr/bin/c++ - skipped
– Detecting CXX compile features
– Detecting CXX compile features - done
– Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found suitable version “1.2.11”, minimum required is “1.2.8”)
CMake Deprecation Warning at build/_deps/cereal-src/CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.

Update the VERSION argument value or use a … suffix to tell
CMake that the project does not need compatibility with older versions.

CMake Warning (dev) at build/_deps/cereal-src/CMakeLists.txt:2 (project):
Policy CMP0048 is not set: project() command manages VERSION variables.
Run “cmake --help-policy CMP0048” for policy details. Use the cmake_policy
command to set the policy and suppress this warning.

The following variable(s) would be set to empty:

PROJECT_VERSION
PROJECT_VERSION_MAJOR
PROJECT_VERSION_MINOR
PROJECT_VERSION_PATCH

This warning is for project developers. Use -Wno-dev to suppress it.

– The C compiler identification is GNU 9.3.0
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Check for working C compiler: /usr/bin/cc - skipped
– Detecting C compile features
– Detecting C compile features - done
– Found Boost: /usr/include (found version “1.65.1”) found components: serialization
– boost_variant.cpp
– Found Doxygen: /usr/bin/doxygen (found version “1.8.13”) found components: doxygen dot
Setting warning flags
– Performing Test WOLD_STYLE_CAST
– Performing Test WOLD_STYLE_CAST - Success
– Performing Test WSHADOW
– Performing Test WSHADOW - Success
– Looking for C++ include pthread.h
– Looking for C++ include pthread.h - found
– Performing Test CMAKE_HAVE_LIBC_PTHREAD
– Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
– Found Threads: TRUE
– Using CUDA 11.2 from /usr/local/cuda-11.2
– Building GenomeWorks libraries as static objects
– Found CUDA: /usr/local/cuda-11.2 (found suitable version “11.2”, minimum required is “9.0”)
– Using CUDA 11.2 from /usr/local/cuda-11.2
– Build type: Release
– Package generator - DEB
– nvcc flags for gwbase: -lineinfo -lineinfo -use_fast_math -Xcompiler -Wall,-Wno-pedantic -std=c++14
– nvcc flags for cudapoa: -lineinfo -lineinfo -use_fast_math -Xcompiler -Wall,-Wno-pedantic -std=c++14 --expt-relaxed-constexpr
– Using CUDA 11.2 from /usr/local/cuda-11.2
– Autodetected CUDA architecture(s): 7.5 7.5
– nvcc flags for cudamapper: -lineinfo -lineinfo -use_fast_math -Xcompiler -Wall,-Wno-pedantic -lineinfo --expt-extended-lambda -use_fast_math -Xcompiler -Wall,-Wno-pedantic -std=c++14 -gencode;arch=compute_75,code=sm_75
– nvcc flags for cudaaligner: -lineinfo -lineinfo -use_fast_math -Xcompiler -Wall,-Wno-pedantic -std=c++14 --expt-relaxed-constexpr
– Enabling Doxygen documentation generation
CMake Deprecation Warning at build/_deps/googletest-src/CMakeLists.txt:4 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.

Update the VERSION argument value or use a … suffix to tell
CMake that the project does not need compatibility with older versions.

CMake Deprecation Warning at build/_deps/googletest-src/googlemock/CMakeLists.txt:45 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.

Update the VERSION argument value or use a … suffix to tell
CMake that the project does not need compatibility with older versions.

CMake Deprecation Warning at build/_deps/googletest-src/googletest/CMakeLists.txt:56 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.

Update the VERSION argument value or use a … suffix to tell
CMake that the project does not need compatibility with older versions.

– Found PythonInterp: /usr/bin/python (found version “2.7.17”)
– Configuring done
CMake Warning (dev) at build/_deps/edlib-src/CMakeLists.txt:54 (add_library):
Policy CMP0063 is not set: Honor visibility properties for all target
types. Run “cmake --help-policy CMP0063” for policy details. Use the
cmake_policy command to set the policy and suppress this warning.

Target “edlib” of type “STATIC_LIBRARY” has the following visibility
properties set for CXX:

CXX_VISIBILITY_PRESET
VISIBILITY_INLINES_HIDDEN

For compatibility CMake is not honoring them for this target.
This warning is for project developers. Use -Wno-dev to suppress it.

– Generating done
– Build files have been written to: /home/cbfgws6/Programs/raven/build
Scanning dependencies of target gtest
[ 0%] Building CXX object _deps/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
[ 0%] Linking CXX static library …/…/…/lib/libgtest.a
[ 0%] Built target gtest
Scanning dependencies of target gwbase
[ 0%] Building CXX object _deps/genomeworks-build/common/base/CMakeFiles/gwbase.dir/src/cudautils.cpp.o
In file included from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/3rdparty/spdlog/include/spdlog/fmt/fmt.h:21,
from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/3rdparty/spdlog/include/spdlog/common.h:28,
from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/3rdparty/spdlog/include/spdlog/spdlog.h:12,
from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/common/base/include/claraparabricks/genomeworks/logging/logging.hpp:99,
from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/common/base/include/claraparabricks/genomeworks/utils/cudautils.hpp:22,
from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/common/base/src/cudautils.cpp:17:
/home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/3rdparty/spdlog/include/spdlog/fmt/bundled/format.h:3475:55: warning: ISO C++ did not adopt string literal operator templates taking an argument pack of characters [-Wpedantic]
3475 | FMT_CONSTEXPR internal::udl_formatter<Char, CHARS…> operator"“_format() {
| ^~~~~~~~
[ 0%] Building CXX object _deps/genomeworks-build/common/base/CMakeFiles/gwbase.dir/src/logging.cpp.o
In file included from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/3rdparty/spdlog/include/spdlog/fmt/fmt.h:21,
from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/3rdparty/spdlog/include/spdlog/common.h:28,
from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/3rdparty/spdlog/include/spdlog/spdlog.h:12,
from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/common/base/include/claraparabricks/genomeworks/logging/logging.hpp:99,
from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/common/base/src/logging.cpp:17:
/home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/3rdparty/spdlog/include/spdlog/fmt/bundled/format.h:3475:55: warning: ISO C++ did not adopt string literal operator templates taking an argument pack of characters [-Wpedantic]
3475 | FMT_CONSTEXPR internal::udl_formatter<Char, CHARS…> operator”“_format() {
| ^~~~~~~~
[ 0%] Building CXX object _deps/genomeworks-build/common/base/CMakeFiles/gwbase.dir/src/graph.cpp.o
[ 0%] Linking CXX static library …/…/…/racon-build/lib/libgwbase.a
[ 0%] Built target gwbase
[ 0%] Building NVCC (Device) object _deps/genomeworks-build/cudaaligner/CMakeFiles/cudaaligner.dir/src/cudaaligner_generated_ukkonen_gpu.cu.o
[ 12%] Building NVCC (Device) object _deps/genomeworks-build/cudaaligner/CMakeFiles/cudaaligner.dir/src/cudaaligner_generated_hirschberg_myers_gpu.cu.o
[ 12%] Building NVCC (Device) object _deps/genomeworks-build/cudaaligner/CMakeFiles/cudaaligner.dir/src/cudaaligner_generated_myers_gpu.cu.o
Scanning dependencies of target cudaaligner
[ 12%] Building CXX object _deps/genomeworks-build/cudaaligner/CMakeFiles/cudaaligner.dir/src/cudaaligner.cpp.o
In file included from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/3rdparty/spdlog/include/spdlog/fmt/fmt.h:21,
from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/3rdparty/spdlog/include/spdlog/common.h:28,
from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/3rdparty/spdlog/include/spdlog/spdlog.h:12,
from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/common/base/include/claraparabricks/genomeworks/logging/logging.hpp:99,
from /home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/cudaaligner/src/cudaaligner.cpp:18:
/home/cbfgws6/Programs/raven/build/_deps/genomeworks-src/3rdparty/spdlog/include/spdlog/fmt/bundled/format.h:3475:55: error: ISO C++ did not adopt string literal operator templates taking an argument pack of characters [-Werror=pedantic]
3475 | FMT_CONSTEXPR internal::udl_formatter<Char, CHARS…> operator”"_format() {
| ^~~~~~~~
cc1plus: all warnings being treated as errors
_deps/genomeworks-build/cudaaligner/CMakeFiles/cudaaligner.dir/build.make:102: recipe for target ‘_deps/genomeworks-build/cudaaligner/CMakeFiles/cudaaligner.dir/src/cudaaligner.cpp.o’ failed
make[2]: *** [_deps/genomeworks-build/cudaaligner/CMakeFiles/cudaaligner.dir/src/cudaaligner.cpp.o] Error 1
CMakeFiles/Makefile2:5856: recipe for target ‘_deps/genomeworks-build/cudaaligner/CMakeFiles/cudaaligner.dir/all’ failed
make[1]: *** [_deps/genomeworks-build/cudaaligner/CMakeFiles/cudaaligner.dir/all] Error 2
Makefile:170: recipe for target ‘all’ failed
make: *** [all] Error 2

Here’s the CMakeLists.txt file for reference…

CMakeLists.txt (3.4 KB)

FIXED. It was a bad set of quotes in </raven/build/_deps/genomeworks-src/3rdparty/spdlog/include/spdlog/fmt/bundled/format.h>

Pulled solution from here: https://www.gitmemory.com/issue/yuzu-emu/yuzu/2597/507715224

Changed Line 3475 from:
FMT_CONSTEXPR internal::udl_formatter<Char, CHARS...> operator""_format() {

To (remove quotes):
FMT_CONSTEXPR internal::udl_formatter<Char, CHARS...> operator_format() {

Re-ran compile command & ran sudo make install