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, comoarm64-v8apara 64 bits ouarmeabi-v7apara 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.