Warning, /sdk/codevis/packaging/centos7/Dockerfile is written in an unsupported language. File is not indexed.

0001 FROM centos:7 AS base
0002 
0003 ENV LLVM_VERSION=17.0.1 \
0004     CMAKE_VERSION=3.25.2 \
0005     OPENSSL_VERSION=1.1.1k \
0006     QT_VERSION=5.15.7
0007 
0008 RUN yum install -y centos-release-scl \
0009     && yum install -y devtoolset-9
0010 RUN echo "source /opt/rh/devtoolset-9/enable" >> /etc/bashrc
0011 SHELL ["/bin/bash", "--login", "-c"]
0012 RUN yum -y install epel-release \
0013     && yum -y makecache \
0014     && yum -y update && yum -y install wget gnupg git wheel python3-pip bash ninja zlib-devel
0015 
0016 WORKDIR /codevis
0017 
0018 # Openssl
0019 RUN echo "Downloading OpenSSL" \
0020     && wget https://ftp.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \
0021     && tar -xf openssl-${OPENSSL_VERSION}.tar.gz \
0022     && rm openssl-${OPENSSL_VERSION}.tar.gz \
0023     && cd openssl-${OPENSSL_VERSION} \
0024     && ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib no-shared zlib-dynamic \
0025     && make -j$(nproc) \
0026     && make install \
0027     && cd /codevis \
0028     && rm -rf /codevis/openssl-${OPENSSL_VERSION}
0029 
0030 # CMake
0031 RUN echo "Downloading CMake" \
0032     && wget "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz" \
0033     && tar -xf cmake-${CMAKE_VERSION}.tar.gz \
0034     && rm cmake-${CMAKE_VERSION}.tar.gz \
0035     && cd cmake-${CMAKE_VERSION} \
0036     && ./bootstrap --prefix=/usr/ \
0037     && make -j$(nproc) \
0038     && make install \
0039     && cd /codevis \
0040     && rm -rf /codevis/cmake-${CMAKE_VERSION}
0041 
0042 # LLVM
0043 RUN echo "Downloading LLVM" \
0044     && wget "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/llvm-project-${LLVM_VERSION}.src.tar.xz" \
0045     && tar -xf llvm-project-${LLVM_VERSION}.src.tar.xz \
0046     && rm llvm-project-${LLVM_VERSION}.src.tar.xz \
0047     && mkdir build \
0048     && mkdir build/llvm-project
0049 RUN cd build/llvm-project \
0050     && cmake -DBUILD_SHARED_LIBS=Off \
0051             -DCMAKE_BUILD_TYPE=Release \
0052             -DCMAKE_INSTALL_PREFIX=/usr \
0053             -DLIBOMP_INSTALL_ALIASES=OFF \
0054             -DLLDB_ENABLE_LUA=OFF \
0055             -DLLDB_ENABLE_LZMA=ON \
0056             -DLLDB_ENABLE_PYTHON=OFF \
0057             -DLLDB_INCLUDE_TESTS=OFF \
0058             -DLLDB_USE_SYSTEM_DEBUGSERVER=OFF \
0059             -DLLVM_BUILD_EXTERNAL_COMPILER_RT=OFF \
0060             -DLLVM_BUILD_LLVM_C_DYLIB=OFF \
0061             -DLLVM_ENABLE_DIA_SDK=1 \
0062             -DLLVM_ENABLE_EH=ON \
0063             -DLLVM_ENABLE_FFI=OFF \
0064             -DLLVM_ENABLE_LIBCXX=ON \
0065             -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" \
0066             -DLLVM_ENABLE_RTTI=ON \
0067             -DLLVM_ENABLE_RUNTIMES="compiler-rt" \
0068             -DLLVM_ENABLE_Z3_SOLVER=OFF \
0069             -DLLVM_INCLUDE_DOCS=OFF \
0070             -DLLVM_INCLUDE_TESTS=OFF \
0071             -DLLVM_INSTALL_UTILS=ON \
0072             -DLLVM_LINK_LLVM_DYLIB=ON \
0073             -DLLVM_OPTIMIZED_TABLEGEN=ON \
0074             -DLLVM_POLLY_LINK_INTO_TOOLS=ON \
0075             -DLLVM_TARGETS_TO_BUILD="X86" \
0076             -B /codevis/build/llvm-${LLVM_VERSION} \
0077             -S /codevis/llvm-project-${LLVM_VERSION}.src/llvm
0078 RUN cmake --build /codevis/build/llvm-${LLVM_VERSION} --parallel $(nproc) --config Release \
0079     && cmake --install /codevis/build/llvm-${LLVM_VERSION} \
0080     && rm -rf /codevis/build/llvm-${LLVM_VERSION} \
0081     && rm -rf /codevis/llvm-project-${LLVM_VERSION}.src
0082 
0083 # QT
0084 RUN yum -y install                 \
0085     libXScrnSaver-devel            \
0086     libXaw-devel                   \
0087     libXcomposite-devel            \
0088     libXcursor-devel               \
0089     libXdmcp-devel                 \
0090     libXinerama-devel              \
0091     libXrandr-devel                \
0092     libXres-devel                  \
0093     libXtst-devel                  \
0094     libXv-devel                    \
0095     libXvMC-devel                  \
0096     libfontenc-devel               \
0097     libglvnd-devel                 \
0098     libuuid-devel                  \
0099     libxcb                         \
0100     libxcb-devel                   \
0101     libxkbcommon-devel             \
0102     libxkbcommon-x11-devel         \
0103     libxkbfile-devel               \
0104     mesa-libGL-devel               \
0105     sqlite-devel                   \
0106     xcb-util                       \
0107     xcb-util-devel                 \
0108     xcb-util-image-devel           \
0109     xcb-util-keysyms-devel         \
0110     xcb-util-renderutil-devel      \
0111     xcb-util-wm-devel              \
0112     xkeyboard-config-devel
0113 RUN cd /codevis \
0114     && wget https://download.qt.io/archive/qt/5.15/${QT_VERSION}/single/qt-everywhere-opensource-src-${QT_VERSION}.tar.xz \
0115     && tar -xf qt-everywhere-opensource-src-${QT_VERSION}.tar.xz \
0116     && rm qt-everywhere-opensource-src-${QT_VERSION}.tar.xz
0117 RUN mkdir /codevis/build/qt5 \
0118     && cd /codevis/build/qt5 \
0119     && ../../qt-everywhere-src-${QT_VERSION}/configure -opensource -confirm-license -xcb -xcb-xlib -bundled-xcb-xinput \
0120         -nomake examples -nomake tests  --prefix=/usr
0121 RUN cd /codevis/build/qt5 \
0122     && make -j$(nproc) \
0123     && make install \
0124     && rm -rf /codevis/build/qt5 \
0125     && rm -rf /codevis/qt-everywhere-opensource-src-${QT_VERSION}
0126 
0127 # Catch2 (For testing only)
0128 RUN git clone https://github.com/catchorg/Catch2.git \
0129     && cd Catch2 \
0130     && cmake -Bbuild -H. -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=/usr \
0131     && cmake --build build/ --target install
0132 
0133 RUN yum -y install python-devel
0134 
0135 RUN rm -rf /codevis/
0136 
0137 # KDE / KF5 libraries  (Old work, kept for reference)
0138 #RUN wget https://www.cpan.org/src/5.0/perl-5.38.2.tar.gz
0139 #RUN tar -xvf perl-5.38.2.tar.gz && cd perl-5.38.2
0140 #RUN ./Configure -d -e
0141 #RUN make && make install
0142 #RUN mv /usr/local/bin/perl /usr/local/bin/perl.old
0143 #RUN ln -s /usr/local/bin/perl5.38.2 /usr/local/bin/perl
0144 #RUN mv /usr/bin/perl /usr/bin/perl.old
0145 #RUN ln -s /usr/local/bin/perl5.38.2 /usr/bin/perl
0146 #RUN mkdir /root/kde/src
0147 #WORKDIR /root/kde/src/
0148 #RUN git clone https://invent.kde.org/sdk/kdesrc-build.git
0149 #WORKDIR /root/kde/src/kdesrc-build/
0150 #RUN yum install -y dnf
0151 #    NOTE: kdesrc-build fails due to not-found packages.
0152 #          The solution was to avoid using kdesrc-build.
0153 #RUN yes | ./kdesrc-build --initial-setup
0154 
0155 # ECM
0156 WORKDIR /
0157 RUN git clone https://github.com/KDE/extra-cmake-modules.git
0158 RUN cd /extra-cmake-modules/ \
0159     && mkdir -p build \
0160     && cd build/ \
0161     && cmake .. \
0162     && make \
0163     && make install
0164 
0165 # KArchive
0166 WORKDIR /
0167 RUN git clone https://github.com/KDE/karchive.git
0168 RUN cd /karchive/ \
0169     && git checkout kf5\
0170     && mkdir -p build \
0171     && cd build/ \
0172     && cmake .. \
0173     && make \
0174     && make install
0175 
0176 WORKDIR /
0177 ADD deploy.sh /
0178 RUN chmod +x /deploy.sh
0179 CMD ["/bin/bash", "/deploy.sh"]