# Copyright 2019 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. FROM fedora:30 AS devtools # Please keep the formatting below, it is used by `extract-install.md` # to generate the contents of the top-level INSTALL.md. ## [START INSTALL.md] # Install the minimal development tools: # ```bash RUN dnf makecache && \ dnf install -y cmake gcc-c++ git make openssl-devel pkgconfig \ zlib-devel # ``` # Fedora includes packages for gRPC, libcurl, and OpenSSL that are recent enough # for `cpp-cmakefiles`. Install these packages and additional development # tools to compile the dependencies: # ```bash RUN dnf makecache && \ dnf install -y grpc-devel grpc-plugins \ libcurl-devel protobuf-compiler tar wget zlib-devel # ``` FROM devtools AS install # #### googleapis # We can now compile and install `googleapis` as shared library. # ```bash WORKDIR /home/build/cpp-cmakefiles COPY . /home/build/cpp-cmakefiles RUN cmake -H. -Bcmake-out -DBUILD_SHARED_LIBS=yes RUN cmake --build cmake-out -- -j $(nproc) WORKDIR /home/build/cpp-cmakefiles/cmake-out RUN cmake --build . --target install # The share libraries will install in `/usr/local/lib64` we need that directory # in the ld.so cache: RUN echo "/usr/local/lib64" | tee /etc/ld.so.conf.d/local.conf RUN ldconfig # ``` ## [END INSTALL.md] # Verify that the installed files are actually usable RUN /home/build/cpp-cmakefiles/ci/test-install/compile-test-projects.sh