Configuração do Toolchain de Compilação do HarmonyOS com CMake para Bibliotecas de Terceiros

Visão Geral do CMake para HarmonyOS

O CMake é uma ferramenta de construção multiplataforma que gerenica o processo de compilação, linkagem e empacotamento de projetos de software. Ele gera scripts de construção, como Makefiles, adaptados a diferentes sistemas operacionais e compiladores. O fluxo de trabalho do CMake envolve três fases principais: configuração, geração e construção.

  • Configuração: Nesta fase, o CMake analisa o arquivo CMakeLists.txt, que define as regras de construção e dependências do projeto.
  • Geração: Com base na configuração, o CMake produz arquivos de construção compreensíveis pelas ferramentas, como Makefiles.
  • Construção: As ferramentas de construção, como o Make, utilizam os arquivos gerados para compilar o código-fonte e linkar os objetos alvo.

Ambiente de Desenvolvimento

Para compilar bibliotecas de terceiros para o HarmonyOS usando o CMake, é necessário um ambiente Linux. Recomenda-se utilizar o Ubuntu 18.04 ou 20.04, pois versões mais recentes podem apresentar incompatibilidades.

O SDK do HarmonyOS pode ser obtido através do DevEco Studio ou de plataformas de CI. Após o download, extraia o arquivo compactado e navegue até o diretório linux do SDK para descompactar os pacotes de ferramentas.

Exemplo de extração do SDK:

tar -zxvf ohos-sdk.tar.gz
cd ohos-sdk/linux
for pacote in *.zip; do unzip "$pacote"; done

Obtenção do Código-Fonte da Biblioteca

Para este exemplo, utilizaremos a biblioteca cJSON. Clonamos uma versão específica do repositório:

git clone https://github.com/DaveGamble/cJSON.git -b v1.7.18
cd cJSON

Processo de Compilação

1. Preparação do Diretório de Build

Crie um diretório de build isolado para evitar contaminação do código-fonte:

mkdir build
cd build

2. Configuração com CMake

Execute o CMake especificando o toolchain do HarmonyOS e parâmetros de compilação cruzada. Ajuste os caminhos conforme a localização do SDK no seu sistema.

/caminho/para/ohos-sdk/linux/native/build-tools/cmake/bin/cmake \
  -DCMAKE_TOOLCHAIN_FILE=/caminho/para/ohos-sdk/linux/native/build/cmake/ohos.toolchain.cmake \
  -DCMAKE_INSTALL_PREFIX=/caminho/para/instalacao/cJSON \
  -DOHOS_ARCH=arm64-v8a \
  .. -L

Parâmetros-chave:

  • CMAKE_TOOLCHAIN_FILE: Caminho para o arquivo de toolchain do HarmonyOS.
  • CMAKE_INSTALL_PREFIX: Diretório de destino para a instalação da biblioteca.
  • OHOS_ARCH: Arquitetura de CPU, como arm64-v8a para 64 bits ou armeabi-v7a para 32 bits.

Após a execução, o CMake gera arquivos como Makefile, CMakeCache.txt e cmake_install.cmake, que definem as regras de construção e instalação.

3. Compilação

Utilize o comando make para compilar a biblioteca:

make

O compilador Clang do SDK é utilizado automaticamente para a compilação cruzada.

4. Verificação da Compilação Cruzada

Após a compilação, verifique se o arquivo gerado tem a arquitetura correta usando o comando file:

file lib/libcjson.so.1.7.18

Um resultado indicando "ELF 64-bit LSB shared object, ARM aarch64" confirma o sucesso da compilação para a arquitetura alvo.

5. Instalação

Instale a biblioteca compilada no diretório especificado:

make install

Isso copia os arquivos binários e cabeçalhos para o caminho definido em CMAKE_INSTALL_PREFIX, organizando-os em subdiretórios como include e lib.

Após a conclusão, a biblioteca cJSON está pronta para ser integrada em projetos HarmonyOS. O mesmo processo pode ser adaptado para outras bibliotecas de terceiros.

Tags: HarmonyOS CMake cJSON Compilação Cruzada Linux

Publicado em 6-11 18:41 por Thomas