Project

General

Profile

Revision 6b9d7df1

ID6b9d7df105025019aa2b04a01ce19cb827ed9b75
Parent a705cd9b
Child a0cfe9c0

Added by Pedro Henrique Dias Ferreira almost 7 years ago

cmake

View differences:

documento.tex
25 25
\def\titulo{Ferramentas de automação}
26 26
\def\data{Entregue dia 29/11/2015}
27 27
\def\autores{Manuel Costa, Henrique Ferreira}
28
\def\autorescontactos{manuel.alejandro@ua.pt, riques@ua.pt}
28
\def\autorescontactos{manuel.alejandro@ua.pt, henriqueferreira@ua.pt}
29 29
\def\versao{v1.0}
30 30
\def\departamento{DETI}
31 31
\def\logotipo{UA.jpg}
......
99 99
Este trabalho surge no âmbito da Unidade Curricular \ac{LABI} do primeiro ano do \ac{miect}
100 100
Entre os temas disponíveis, optámos por este uma vez que iremos abordar, ainda este ano, estes conteúdos em outras unidades curriculares.
101 101

  
102
Este documento está dividido em três partes e 7 capítulos.
102
Este documento está dividido em quatro capítulos. Depois desta introdução, no \autoref{chap.descricao} será descrito o trabalho, no \autoref{chap.metodologia} é apresentada a metodologia seguida, no \autoref{chap.resultados} são apresentados os resultados obtidos, sendo estes discutidos no \autoref{chap.analise}. Finalmente, no \autoref{chap.conclusao} são apresentadas as conclusões do trabalho.
103 103

  
104 104
\part{GNU \textit{Autotools}}
105 105
\label{part.gnu}
......
243 243
\chapter{Cmake}  %Explicar quem é o pessoal do cmake
244 244
\section{Apresentação} %Pegar no cmake propriamente dito e por aí fora
245 245
\subsection{O que é?}
246

  
247
Outra alternativa às \texit{Apache Ant Tools} e o \textit{GNU Make}, é o \texit{CMake}, software open-source, que nasceu da necessidade de um sistema de compilaçao multiplataforma e o seu autor foi Bill Hoffman, da Kitware. O \texit{CMake} é usado em conjunto com a ferramente de compilação de cada sistema.
246 248
\section{Cmake vs GNU Make} % Comparar com enumerate
247
\subsection{Prós e contras}
249

  
250
Também é uma ferramente open-source à semelhança do \texit{make}, mas obviamente têm as suas diferenças:
251
\begin{enumerate}
252
\item Nao compila o código, mas sim gera os buildfiles de acordo com a plataforma aonde está a correr, por exemplo, Makefiles no UNIX.
253
\item É uma ferramente mais apropriada a projectos multiplataforma, enquanto que no \texit{make} teriamos de criar um Makefile por plataforma.
254
\item O CMake consegue lidar bem com hierarquias de directórios complexas e aplicaçoes que dependem de várias librarias.
255
\item Requer menos código para tarefas mais triviais.
256
\end{enumerate}
257

  
258
\subsection{Contras à utilizaçao do \texit{CMake}}
259

  
260
Uma das maiores dificuldades na utilizaçao do \texit{CMake} é o facto de ter a sua própria linguagem, não tão intuitiva como outras ferramentas como por exemplo as \texit{AutoTools}. O facto do \texit{CMake} não compilar mas sim gerar os builfiles também pode ser visto como uma desvantagem uma vez que continuamos a ter de executar o comando make para compilar o projecto. É necessário ainda que o sistema aonde trabalhamos tenho \texit{CMake} instalado.
261

  
248 262
\subsubsection{Exemplos} %Imagens exemplo a explicar a comparação feita antes
249
\subsection{Conclusão - Cmake} %Conclusão do CMake comparado com GNU
250
%
251
%
263
\begin{figure}[h]
264
\includegraphics[scale=0.5]{cmake.jpg}
265
\caption{Exemplo de código \texit{CMake}}
266
\end{figure}
267

  
268
O código compila o ficheiro HelloWorld.java num ficheiro HelloWord.jar e executa o .jar usando o JVM. A variável CMAKE_JAVA_COMPILE_FLAGS pode ser usada para especificar \texit{compile flags}.
269

  
270
\subsection{Conclusão - CMake} %Conclusão do CMake comparado com GNU
271

  
272
Podemos concluir então que, apesar de ter a sua própria linguagem, não muito intuitiva, o CMake é uma ferramenta de extrema utilidade se prentendemos que o nosso projecto seja multiplataforma uma vez que se adapta ao sistema em que está e gera os \texit{build-files} necessários à compilaçao do projecto de acordo com o sistema aonde estamos a trabalhar.
252 273
%
253 274
\chapter{Metodologia}
254 275
\label{chap.metodologia}
......
257 278

  
258 279
\chapter{Conclusões}
259 280
\label{chap.conclusao}
260
A área de automação tem vindo a evoluir graças às ferramenta serem, em grande parte, open-source. Como cada programador tem uma visão e uma experiência diferente têm surgido várias opções que,dependendo de cada projecto,são mais adequadas a cada um deles.
261
No nosso caso, foi possível comparar três ferramentas de automação: GNU Make, Ant Tools e Cmake mas existem muitas mais e cada vez mais vão aparecendo, na tentativa de melhorar a automação para diferentes projetos.
281
Apresenta conclusões
262 282

  
263 283
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
264
\chapter{Acrónimos}
284
\chapter*{Acrónimos}
265 285
\begin{acronym}
266 286
\acro{ua}[UA]{Universidade de Aveiro}
267 287
\acro{miect}[MIECT]{Mestrado Integrado em Engenharia de Computadores e Telemática}

Also available in: Unified diff