adobe / hyde

A front-end to Jekyll that parses C++ sources to produce and enforce out-of-line documentation
http://opensource.adobe.com/hyde/
MIT License
323 stars 41 forks source link

Building fails on Ubuntu 20.04 #69

Open mowijo opened 2 years ago

mowijo commented 2 years ago

Describe the bug

Building fails on ubuntu 20.04 with compiler errors. A clear and concise description of what the bug is.

To Reproduce Can easily be reproduced in a docker container:

FROM ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get install -y \
    build-essential libboost-system-dev libboost-filesystem-dev libyaml-cpp-dev \
    libllvm9 llvm-9 llvm-9-dev clang-tools-9 libclang-common-9-dev clang-9 libclang-9-dev

# Install latest CMAKE. The one shipped by ubuntu 20.04 is too old.
RUN apt-get install -y software-properties-common lsb-release wget
# RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null
COPY kitware.gpg /etc/apt/trusted.gpg.d/kitware.gpg
RUN apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main"
RUN apt-get update
RUN apt-get install -y kitware-archive-keyring
RUN rm /etc/apt/trusted.gpg.d/kitware.gpg
RUN apt-get update
RUN apt-get install -y cmake

# build hyde
COPY hyde-checkout /root/hyde
RUN mkdir /root/hyde/build
RUN ( cd /root/hyde/build && cmake .. && make -j )
RUN cp /root/hyde/build/hyde /usr/local/bin

BuildFROM ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update RUN apt-get install -y \ build-essential libboost-system-dev libboost-filesystem-dev libyaml-cpp-dev \ libllvm9 llvm-9 llvm-9-dev clang-tools-9 libclang-common-9-dev clang-9 libclang-9-dev

Install latest CMAKE. The one shipped by ubuntu 20.04 is too old.

RUN apt-get install -y software-properties-common lsb-release wget

RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null

COPY kitware.gpg /etc/apt/trusted.gpg.d/kitware.gpg RUN apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main" RUN apt-get update RUN apt-get install -y kitware-archive-keyring RUN rm /etc/apt/trusted.gpg.d/kitware.gpg RUN apt-get update RUN apt-get install -y cmake

build hyde

COPY hyde /root/hyde RUN mkdir /root/hyde/build RUN ( cd /root/hyde/build && cmake .. && make -j ) RUN cp /root/hyde/build/hyde /usr/local/bin```

Building the above docker image with

docker build . -t foo

will fail with the errors as seen in the build transcript at the bottom:

Expected behavior I expect the build to pass.

Screenshots If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

Smartphone (please complete the following information):

Build Transcript

-- Build files have been written to: /root/hyde/build
[  2%] Building CXX object CMakeFiles/hyde.dir/emitters/yaml_base_emitter.cpp.o
[  4%] Building CXX object CMakeFiles/hyde.dir/emitters/yaml_class_emitter.cpp.o
[  6%] Building CXX object CMakeFiles/hyde.dir/emitters/yaml_enum_emitter.cpp.o
[  8%] Building CXX object CMakeFiles/hyde.dir/emitters/yaml_function_emitter.cpp.o
[ 10%] Building CXX object CMakeFiles/hyde.dir/emitters/yaml_library_emitter.cpp.o
[ 13%] Building CXX object CMakeFiles/hyde.dir/emitters/yaml_sourcefile_emitter.cpp.o
[ 17%] Building CXX object CMakeFiles/hyde.dir/matchers/class_matcher.cpp.o
[ 17%] Building CXX object CMakeFiles/hyde.dir/matchers/enum_matcher.cpp.o
[ 19%] Building CXX object CMakeFiles/hyde.dir/matchers/typealias_matcher.cpp.o
[ 21%] Building CXX object CMakeFiles/hyde.dir/matchers/function_matcher.cpp.o
[ 23%] Building CXX object CMakeFiles/hyde.dir/matchers/namespace_matcher.cpp.o
[ 26%] Building CXX object CMakeFiles/hyde.dir/matchers/typedef_matcher.cpp.o
[ 28%] Building CXX object CMakeFiles/hyde.dir/matchers/utilities.cpp.o
[ 30%] Building CXX object CMakeFiles/hyde.dir/sources/autodetect.cpp.o
[ 32%] Building CXX object CMakeFiles/hyde.dir/sources/main.cpp.o
[ 34%] Building CXX object CMakeFiles/hyde.dir/sources/output_yaml.cpp.o
[ 36%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/binary.cpp.o
[ 39%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/convert.cpp.o
[ 41%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/depthguard.cpp.o
[ 43%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/directives.cpp.o
[ 45%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/emit.cpp.o
[ 47%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/emitfromevents.cpp.o
[ 50%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/emitter.cpp.o
[ 52%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/emitterstate.cpp.o
[ 54%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/emitterutils.cpp.o
[ 56%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/exp.cpp.o
[ 58%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/exceptions.cpp.o
[ 60%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/memory.cpp.o
[ 63%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/node.cpp.o
[ 65%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/node_data.cpp.o
[ 67%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/nodebuilder.cpp.o
[ 69%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/nodeevents.cpp.o
[ 71%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/null.cpp.o
[ 73%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/ostream_wrapper.cpp.o
[ 76%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/parse.cpp.o
[ 78%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/parser.cpp.o
[ 80%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/regex_yaml.cpp.o
In file included from /usr/lib/llvm-9/include/clang/AST/RecursiveASTVisitor.h:23,
                 from /root/hyde/matchers/class_matcher.cpp:20:                                                                                                                                                                                                                
/usr/lib/llvm-9/include/clang/AST/DeclOpenMP.h:97:1: error: multi-line comment [-Werror=comment]                                                                                                                                                                               
   97 | /// #pragma omp declare reduction (foo : int,float : omp_out += omp_in) \                                                                                                                                                                                              
      | ^                                                                                                                                                                                                                                                                      
[ 82%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/scanner.cpp.o
[ 84%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/scanscalar.cpp.o
[ 86%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/scantag.cpp.o
[ 89%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/scantoken.cpp.o
[ 91%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/simplekey.cpp.o
[ 93%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/singledocparser.cpp.o
[ 95%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/stream.cpp.o
[ 97%] Building CXX object CMakeFiles/hyde.dir/submodules/yaml-cpp/src/tag.cpp.o
In file included from /root/hyde/matchers/namespace_matcher.cpp:25:
/root/hyde/matchers/utilities.hpp: In function 'std::string hyde::to_string(clang::AccessSpecifier)':
/root/hyde/matchers/utilities.hpp:73:1: error: control reaches end of non-void function [-Werror=return-type]
   73 | }
      | ^
In file included from /root/hyde/matchers/utilities.cpp:13:
/root/hyde/matchers/utilities.hpp: In function 'std::string hyde::to_string(clang::AccessSpecifier)':
/root/hyde/matchers/utilities.hpp:73:1: error: control reaches end of non-void function [-Werror=return-type]
   73 | }
      | ^
/root/hyde/matchers/utilities.cpp: In function 'bool hyde::AccessCheck(hyde::ToolAccessFilter, clang::AccessSpecifier)':
/root/hyde/matchers/utilities.cpp:557:1: error: control reaches end of non-void function [-Werror=return-type]
  557 | }
      | ^
In file included from /root/hyde/matchers/typealias_matcher.cpp:25:
/root/hyde/matchers/utilities.hpp: In function 'std::string hyde::to_string(clang::AccessSpecifier)':
/root/hyde/matchers/utilities.hpp:73:1: error: control reaches end of non-void function [-Werror=return-type]
   73 | }
      | ^
In file included from /root/hyde/matchers/typedef_matcher.cpp:25:
/root/hyde/matchers/utilities.hpp: In function 'std::string hyde::to_string(clang::AccessSpecifier)':
/root/hyde/matchers/utilities.hpp:73:1: error: control reaches end of non-void function [-Werror=return-type]
   73 | }
      | ^
In file included from /root/hyde/matchers/enum_matcher.cpp:25:
/root/hyde/matchers/utilities.hpp: In function 'std::string hyde::to_string(clang::AccessSpecifier)':
/root/hyde/matchers/utilities.hpp:73:1: error: control reaches end of non-void function [-Werror=return-type]
   73 | }
      | ^
/root/hyde/emitters/yaml_base_emitter.cpp: In function 'hyde::json {anonymous}::yaml_to_json(const YAML::Node&)':
/root/hyde/emitters/yaml_base_emitter.cpp:90:1: error: control reaches end of non-void function [-Werror=return-type]
   90 | }
      | ^
/root/hyde/emitters/yaml_base_emitter.cpp: In function 'YAML::Node {anonymous}::json_to_yaml(const json&)':
/root/hyde/emitters/yaml_base_emitter.cpp:135:1: error: control reaches end of non-void function [-Werror=return-type]
  135 | }
      | ^
At global scope:
cc1plus: error: unrecognized command line option '-Wno-range-loop-analysis' [-Werror]
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/hyde.dir/build.make:202: CMakeFiles/hyde.dir/matchers/namespace_matcher.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
At global scope:
cc1plus: error: unrecognized command line option '-Wno-range-loop-analysis' [-Werror]
cc1plus: all warnings being treated as errors
At global scope:
cc1plus: error: unrecognized command line option '-Wno-range-loop-analysis' [-Werror]
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/hyde.dir/build.make:244: CMakeFiles/hyde.dir/matchers/utilities.cpp.o] Error 1
make[2]: *** [CMakeFiles/hyde.dir/build.make:230: CMakeFiles/hyde.dir/matchers/typedef_matcher.cpp.o] Error 1
At global scope:
cc1plus: error: unrecognized command line option '-Wno-range-loop-analysis' [-Werror]
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/hyde.dir/build.make:174: CMakeFiles/hyde.dir/matchers/enum_matcher.cpp.o] Error 1
At global scope:
cc1plus: error: unrecognized command line option '-Wno-range-loop-analysis' [-Werror]
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/hyde.dir/build.make:216: CMakeFiles/hyde.dir/matchers/typealias_matcher.cpp.o] Error 1
In file included from /root/hyde/matchers/class_matcher.cpp:26:
/root/hyde/matchers/utilities.hpp: In function 'std::string hyde::to_string(clang::AccessSpecifier)':
/root/hyde/matchers/utilities.hpp:73:1: error: control reaches end of non-void function [-Werror=return-type]
   73 | }
      | ^
At global scope:
cc1plus: error: unrecognized command line option '-Wno-range-loop-analysis' [-Werror]
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/hyde.dir/build.make:76: CMakeFiles/hyde.dir/emitters/yaml_base_emitter.cpp.o] Error 1
At global scope:
cc1plus: error: unrecognized command line option '-Wno-range-loop-analysis' [-Werror]
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/hyde.dir/build.make:160: CMakeFiles/hyde.dir/matchers/class_matcher.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:85: CMakeFiles/hyde.dir/all] Error 2
make: *** [Makefile:91: all] Error 2