方舟编译器编译过程

源码下载

  • 下载地址:

  • https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler/home,可以通过 Clone or Download 的方式下载openarkcompiler源码

  • 开发环境推荐Ubuntu16.04

sudo apt-get -y install openjdk-8-jdk git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip lib32z1-dev qemu g++-multilib gcc-multilib python3-paramiko python-paramiko python-jenkins python-requests python-xlwt libglib2.0-dev libpixman-1-dev linux-libc-dev:i386
sudo apt-get -y install gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu

建议用16.04的镜像源,不然python-jenkins无法找到

  • 安装Clang编译器并完成配置(用于编译方舟编译器代码)

  • 下载clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04

  • LLVM下载地址: http://releases.llvm.org/download.html#8.0.0
    方舟编译器编译过程_第1张图片

  • 放置到openarkcompiler/tools目录,打开openarkcompiler/build/config/BUILDCONFIG.gn文件,将GN_C_COMPILER、GN_CXX_COMPILER和GN_AR三个变量配置为Clang编译器所在路径,例如:
    需要配置源码包的环境变量

GN_C_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang"
GN_CXX_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang++"
GN_AR = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/llvm-ar"

${MAPLE_ROOT}是openarkcompiler的环境变量

  • 安装Ninja、GN并完成配置

    • 下载Ninja(v1.9.0)及GN(Linux Version) Ninja下载地址: https://github.com/ninja-build/ninja/releases
  • GN下载地址:https://archive.softwareheritage.org/browse/content/sha1_git:2dc0d5b26caef44f467de8120b26f8aad8b878be/raw/?filename=gn

  • 将GN和Ninja可执行程序放置到openarkcompiler/tools目录,打开openarkcompiler/Makefile文件,将GN和NINJA两个变量配置为GN和Ninja可执行程序所在路径。例如:

GN := ${MAPLE_ROOT}/tools/gn/gn
NINJA := ${MAPLE_ROOT}/tools/ninja_1.9.0/ninja

这两个直接下载就好
方舟编译器编译过程_第2张图片
全部文件:gn里面放下载的gn程序,ninja_1.9.0放下载解压的ninja程序

  • 源码编译

  • 在openarkcompiler目录下执行以下命令,编译出OpenArkCompiler,默认输出路径 openarkcompiler/out/bin。

    source build/envsetup.sh
    make

  • 命令说明:

  • source build/envsetup.sh 初始化环境,将OpenArkCompiler工具链路径openarkcompiler/src/bin设置到环境变量中

  • make 编译OpenArkCompiler的Release版本

  • make BUILD_TYPE=DEBUG 编译OpenArkCompiler的Debug版本

最终结果
方舟编译器编译过程_第3张图片

你可能感兴趣的:(方舟编译器编译过程)