Instalação CEF no Linux
CEF é o anacrônico de Chromium Embedded Framework, é uma interface para o Chromium em outras aplicações.
Estaremos tratando aqui, como realizar a instalação deste frame work.
Existem dois caminhos para realizar tal feito, o primeiro e mais complicado é através do procedimento de compilação total, o segundo é através da baixa dos binários já montados.
Compilação total
O Passo a passo que se segue foi tirado em pesquisa da web e consta entre outros links:
https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart#markdown-header-mac-os-x-setup
Baixe os repositórios dos projetos no seguinte repositório GIT:
https://bitbucket.org/%7Bdc443723-7652-4c63-b340-033e522146db%7D/
Para tanto, existem 3 repositórios:
- CEF
- CEF-PROJECT
- Java-cef
Conforme imagem abaixo:
Como o projeto Java, não esta em nosso alvo, ignoraremos este ultimo.
Baixando do CEF
Primeiramente precisamos baixar o projeto
git clone https://bitbucket.org/chromiumembedded/cef.git
Digite o comando acima no seu console.
Instalação do projeto CEF
No site do desenvolvedor este recomenda uma super máquina, com 16 núcleos de processador, e conexão de internet de 100mbits.
Este procedimento deve ser realizado em um Ubuntu 18.04, pois tive problemas em ambientes diferentes.
Realmente o processo é um pouco demorado, e recomendo fortemente que pelo menos a conexão seja de boa qualidade, para que não sofram com o processo.
Siga os passos abaixo para realizar a instalação do CEF:
Passo 1
Entre na pasta cef, e crie os diretórios:
mkdir ./code
mkdir ./code/automate
mkdir ./code/chromium_git
criação das pastas
Passo 2
Baixe e execute o arquivo install0buuild-deps.sh
Este arquivo irá instalar todas as dependências do cef.
cd ./code
sudo apt install curl
curl ‘https://chromium.googlesource.com/chromium/src/+/master/build/install-build-deps.sh?format=TEXT’ | base64 -d > install-build-deps.sh
chmod 755 install-build-deps.sh
sudo ./install-build-deps.sh –no-arm –no-chromeos-fontes –no-nacl
Dependências para instalação do CEF
Passo 3
Baixe os repositórios de ferramentas
cd ./code
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
Passo 4
Agora voce precisa incluir o caminho absoluto da sua pasta.
Para isso primeiro vá a pasta do cef, indo e digite o comando
export PATH=
Pega o caminho da pasta atual e inclui no repositório`dirs | cut -d' ' -f2
`/code/depot_tools:$PATH
Passo 5
Agora é necessário baixar o automate.
cd ~/code/automate
wget https://bitbucket.org/chromiumembedded/cef/raw/master/tools/automate/automate-git.py
Passo 6
Agora vamos baixar o chromium_git, para isso vamos seguir o seguinte passo.
Crie o arquivo update.sh, na pasta ./code/chromium_git
cd ..
cd ./chromium_git
vim update.sh
Edite o seguinte fragmento:
#!/bin/bash
CAMINHO=`dirs | cut -d' ' -f2`
echo $CAMINHO
python ../automate/automate-git.py --download-dir=$CAMINHO/../chromium_git --depot-tools-dir=$CAMINHO/../depot_tools --no-distrib --no-build
Agora dê permissão ao script:
chmod +755 update.sh
Agora rode o script e aguarde.
./update.sh
Passo 7
Neste passo, iremos gerar os defines para configurar o ambiente.
O Chromium usa o usuário root para build da aplicação, porem temos a opção de usuários não root.
GN_DEFINE ROOT
export GN_DEFINES="use_sysroot=true use_allocator=none symbol_level=1 is_cfi=false use_thin_lto=false"
GN_DEFINE NOROOT
export GN_DEFINES="use_sysroot=false use_allocator=none symbol_level=1 is_cfi=false use_thin_lto=false use_vaapi=false"
Passo 8
Rode o script, em ./code/chromium_git/chromium/src/cef/
cd ./code/chromium_git/chromium/src/cef/
./cef_create_projects.sh
Passo 9
Gera o binario com Debug usando Ninja
cd ~/code/chromium_git/chromium/src
ninja -C out/Debug_GN_x64 cefclient cefsimple ceftests chrome_sandbox
Caso queira versão final, substitua a palavra Debug por Release.
Passo 10
Configure o Linux SUID Caixa de areia, se voce esta usando um kernel antigo, versão inferior a 3.8.
# This environment variable should be set at all times.
export CHROME_DEVEL_SANDBOX=/usr/local/sbin/chrome-devel-sandbox
# This command only needs to be run a single time.
cd ~/code/chromium_git/chromium/src
sudo BUILDTYPE=Debug_GN_x64 ./build/update-linux-sandbox.sh
Passo 11
Rode o cefclient, cefsimple e ou ceftests. Note que o cefclient somente compilará se voce estiver usando um parametro nao root, no passo 7.
cd ~/code/chromium_git/chromium/src
./out/Debug_GN_x64/cefclient
Instalação através de Baixa de Binários
Neste processo não há de fato a compilação, apenas a etapa de linkagem dos binários.
Este é o processo que recomendo, pois além de ser mais rápido é mais fácil e dá menos problema na hora da instalação.
Passo 1 – Baixa dos Binários
O primeiro passo é baixar os binários através do site abaixo:
https://cef-builds.spotifycdn.com/index.html
Nele existem diversas distribuições que podem ser vistas, é importante observar qual será o alvo da sua instalação. Para não baixar a distribuição errada, e eventualmente ter problemas com isso.
Lembrando que não é possível compilar um linux 32 com uma distribuição 64, pois a lib terá problemas na linkagem do mesmo. Então sempre escolha a versão que coincide com seu sistema operacional.
Caso não saiba qual é sua distribuição, recomendo, que use o comando,
uname -a
Conforme figura abaixo, podemos ver que meu linux é 64 bits, desta forma recomenda-se o uso da lib 64 bits.
Desta forma seguiremos, com o padrão, conforme passado:
Agora baixe o binário, e instale na sua maquina linux descompactado.
Renomeie o arquivo para apenas cef, conforme figura abaixo.
Apenas para elucidar, estou usando o samba, que permite eu acessar as pastas do linux na minha maquina windows. Isso facilita a edição dos fontes.
Passo 2 – Preparação e Dependências.
Entre no linux pela console, entrando na pasta do cef. Digite o seguinte comando:
cmake .
Preparação para o make, onde irá peparar o makefile
Se não houver problemas de dependências, ele irá estar pronto para linkagem.
Caso dê problema, consulte a documentação, no link abaixo:
https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart#markdown-header-ma
Passo 3 – Linkagem dos binários
Nesta etapa iremos montar a lib, pegando os binários pré compilados e juntando na .so
Para concluir esta etapa, basta digitar na console
make
Monta a lib
Ao fim, será mostrado, o resultado, como segue:
A lib estará disponivel, no caminho .\cef\Release, conforme figura abaixo:
Includes de distribuição,
Ficam em .\cef\include conforme figura abaixo: