기술(Tech, IT)/안드로이드(Android)

[Android] Soong Build System

Daniel803 2022. 1. 11. 14:46

Soong이란?

: Build 도구 중 하나인 Make를 대체하기 위해 Android 7.0(누가) 때 소개됨. Android의 build 속도를 높이기 위해 Kati GNU Make clone과 Ninja build system component를 사용.

 Android 7.0 배포 전까지, Android는 build rule을 형성하고 실행하기 위해 GNU Make를 사용. Make build system은 폭넓게 지원되고 사용됐지만, Android의 규모에선 느리고, 오류체 취약하며(error prone), 유연하지 못하며(unscalable), 테스트하기 어렵다. Soong build system은 Android build에 요규되는 유연함(flexibility)를 제공.

 

Make와 Soong 비교

Make:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := libxmlrpc++
LOCAL_MODULE_HOST_OS := linux

LOCAL_RTTI_FLAG := -frtti
LOCAL_CPPFLAGS := -Wall -Werror -fexceptions
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/src

LOCAL_SRC_FILES := $(call \
     all-cpp-files-under,src)
include $(BUILD_SHARED_LIBRARY)

Soong:

cc_library_shared {
     name: “libxmlrpc++”,

     rtti: true,
     cppflags: [
           “-Wall”,
           “-Werror”,
           “-fexceptions”,
     ],
     export_include_dirs: [“src”],
     srcs: [“src/**/*.cpp”],

     target: {
           darwin: {
                enabled: false,
           },
     },
}

출처

- https://source.android.com/setup/build