GE Offline Compilation Guide

1. Complete the following preparation work in a networked environment

Step 1: Repository Download

In a networked environment, enter this project homepage, and complete source code download through the Download ZIP or clone button according to the instructions.

Step 2: Download Open Source Third-Party Software Dependencies

GE depends on the following third-party open source software during compilation:

Open Source Software Version Download Address
protobuf 25.1 protobuf-25.1.tar.gz
boost 1.87.0 boost_1_87_0.tar.gz
abseil-cpp 20230802.1 abseil-cpp-20230802.1.tar.gz
c-ares 1.19.1 c-ares-1.19.1.tar.gz
benchmark 1.8.3 benchmark-1.8.3.tar.gz
grpc 1.60.0 grpc-1.60.0.tar.gz
googletest 1.14.0 googletest-1.14.0.tar.gz
json 3.12.0 json-3.12.0.tar.gz
openssl 3.0.9 openssl-openssl-3.0.9.tar.gz
re2 2024-02-01 re2-2024-02-01.tar.gz
symengine 0.12.0 symengine-0.12.0.tar.gz
zlib 1.2.13 zlib-1.2.13.tar.gz
makeself 2.5.0 makeself-release-2.5.0-patch1.tar.gz
mockcpp 2.7 mockcpp-2.7.tar.gz
libseccomp 2.5.4 libseccomp-2.5.4.tar.gz
cann-cmake master cmake-master.tar.gz
  • Method 1 (Recommended): Use the one-click third-party software download packaging script provided by GE repository, usage as follows:

    # Execute in GE repository root directory in a networked environment
    cd ge
    bash scripts/download_third_party_source.sh
    

    After successful execution, opensource.tar.gz will be generated in the GE repository root directory

  • Method 2: Download third-party open source software packages one by one through the third-party open source software list links

2. After completing networked environment preparation, log in to the test environment (offline) to continue compilation preparation

Scenario 1: Use third-party software downloaded by one-click third-party software download packaging script

Connect to the test environment (offline), upload the repository and third-party software dependencies source code obtained from the networked environment to your specified directory. The downloaded files are compressed packages and need to be extracted.

After extraction, the project structure is as follows:

├── ge                               # GE repository source code extracted directory
│  ├── api
│  ├── base
│  └── ...
├── opensource                       # Third-party software dependencies extracted directory
│  └── abseil-cpp-20230802.1.tar.gz
│  └── benchmark-1.8.3.tar.gz
│  └── ...

Enter the repository root directory, you can adjust the directory through the following commands:

# Move files under opensource directory to GE repository
cd ge
mkdir output output/third_party
cp -r ../opensource/* output/third_party
rm -rf ../opensource

After adjustment, the project structure is as follows:

├── ge                               # GE repository source code extracted directory
│  ├── api
│  ├── base
│  ├── ...
│  └── output                        # Third-party software default directory
│     └── third_party
│         └── abseil-cpp-20230802.1.tar.gz
│         └── benchmark-1.8.3.tar.gz
│         └── ...

After completion, return to Build Verification - Compilation section to continue compilation

  1. Connect to the test environment (offline), upload the repository and third-party software dependencies source code obtained from the networked environment to your specified directory, where the repository is a compressed package and needs to be extracted.

  2. Enter the repository root directory, create output/third_party and place the third-party software packages in this directory.

# Create output/third_party directory
cd ge
mkdir output output/third_party

After adjustment, the project structure is as follows:

├── ge                               # GE repository source code extracted directory
│  ├── api
│  ├── base
│  ├── ...
│  └── output                        # Third-party software default directory
│     └── third_party
│        ├── abseil-cpp-20230802.1.tar.gz
│        ├── benchmark-1.8.3.tar.gz
│        └── ...

After completion, return to Build Verification - Compilation section to continue compilation