jiweibo / env

Software Development Environment

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

env

Software Development Environment

cc

llvm

git clone https://github.com/llvm/llvm-project.git
cd llvm-project
mkdir build && cd build
cmake -G Ninja ../llvm \
  -DLLVM_ENABLE_PROJECTS=mlir \
  -DLLVM_BUILD_EXAMPLES=ON \
  -DCMAKE_BUILD_TYPE=Release \
  -DLLVM_ENABLE_ASSERTIONS=ON \
  -DLLVM_ENABLE_RTTI=ON \
  -DLLVM_TARGETS_TO_BUILD="Native;NVPTX;AMDGPU"
make -j8

abseil

# https://abseil.io/docs/cpp/quickstart-cmake.html#getting-the-abseil-code

git clone --depth 1 --branch origin/lts_2023_08_02 https://github.com/abseil/abseil-cpp.git
cd abseil-cpp
mkdir build && cd build
cmake -DABSL_BUILD_TESTING=OFF -DABSL_USE_GOOGLETEST_HEAD=ON -DCMAKE_CXX_STANDARD=14 -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=$PWD/install ..
cmake --build . --target all
make install
export absl_DIR=$PWD/install/lib/cmake/absl
echo $PWD/install/lib | tee /etc/ld.so.conf.d/absl.conf
ldconfig

# This is necessary for linking in Abseil.
# set(CMAKE_POSITION_INDEPENDENT_CODE ON)

protobuf

# v4.24.3
git clone --depth 1 --branch v24.2 https://github.com/protocolbuffers/protobuf.git
cd protobuf
git submodule update --init --recursive
mkdir build && cd build
cmake -Dprotobuf_ABSL_PROVIDER=package -Dprotobuf_BUILD_SHARED_LIBS=ON -Dprotobuf_BUILD_TESTS=OFF -Dabsl_DIR=$absl_DIR -DCMAKE_INSTALL_PREFIX=$PWD/install ..
make -j8
make install
export Protobuf_DIR=$PWD/install/lib/cmake/protobuf
echo $PWD/install/lib | tee /etc/ld.so.conf.d/protobuf.conf
ldconfig

# v3.21.12
# no absl dependency
git clone --depth 1 --branch v3.21.12 https://github.com/protocolbuffers/protobuf.git
cd protobuf
cmake -Dprotobuf_BUILD_SHARED_LIBS=ON -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=$PWD/install ..
make -j8
make install

flatbuffers

git clone https://github.com/google/flatbuffers.git
cd flatbuffers
cmake .. -DFLATBUFFERS_BUILD_SHAREDLIB=ON -DCMAKE_INSTALL_PREFIX=$PWD/install
make -j8
make install
echo $PWD/install/lib | tee /etc/ld.so.conf.d/flatbuffers.conf

grpc

git clone --depth 1 -b v1.58.0 https://github.com/grpc/grpc.git
cd grpc
git submodule update --init
mkdir build && cd build
cmake -DgRPC_INSTALL=ON -DCMAKE_BUILD_TYPE=Release -DgRPC_ABSL_PROVIDER=package -Dabsl_DIR=$absl_DIR -DgRPC_PROTOBUF_PROVIDER=package -DProtobuf_DIR=$Protobuf_DIR -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=$PWD/install ..
make -j8
make install
export gRPC_DIR=$PWD/install/lib/cmake/grpc
echo $PWD/install/lib | tee /etc/ld.so.conf.d/grpc.conf
ldconfig

opencv

# https://opencv.org/get-started/
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
VERSION=4.8.1
pushd opencv_contrib && git checkout $VERSION && popd
cd opencv && git checkout $VERSION
mkdir build && cd build
cmake -G Ninja -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules/ -DBUILD_SHARED_LIBS=ON -DWITH_CUDA=ON -DCUDA_GENERATION=Ampere -DCMAKE_INSTALL_PREFIX=$PWD/install ..
ninja -j8
ninja install -j4

jsoncpp

git clone https://github.com/open-source-parsers/jsoncpp.git
cd jsoncpp
cmake .. -DJSONCPP_WITH_TESTS=OFF -DCMAKE_INSTALL_PREFIX=$PWD/install
make -j8
make install

ffmpeg

VERSION=n6.1
git clone https://git.ffmpeg.org/ffmpeg.git
apt install autoconf   automake   build-essential   cmake   git-core   libass-dev   libfreetype6-dev   libgnutls28-dev   libmp3lame-dev   libsdl2-dev   libtool   libva-dev   libvdpau-dev   libvorbis-dev   libxcb1-dev   libxcb-shm0-dev   libxcb-xfixes0-dev   meson   ninja-build   pkg-config   texinfo   wget   yasm   zlib1g-dev nasm libx264-dev libx265-dev libnuma-dev libvpx-dev libfdk-aac-dev libopus-dev libdav1d-dev libbz2-dev
cd ffmpeg
git checkout $VERSION
mkdir third_party && cd third_party
git clone https://github.com/FFmpeg/nv-codec-headers.git
cd nv-codec-headers && make install
cd ../..
./configure --enable-ffnvcodec --enable-cuda  --enable-cuvid --enable-nvdec --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda/include  --extra-ldflags=-L/usr/local/cuda/lib64 --enable-gpl --enable-gnutls --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libdav1d --enable-libvorbis --enable-libvpx   --enable-libx264 --enable-libx265   --enable-cuda-nvcc  --enable-shared --nvccflags="-gencode arch=compute_80,code=sm_80 -O2" --extra-cflags="-I/usr/local/include/" --extra-ldflags=-L/usr/local/lib --prefix=$PWD/install
make install -j8

About

Software Development Environment