Hacia tiempo que queria cambiar otra vez a eclipse, por que aunque netbeans me gusta, lo encuentro limitado. La ventaja que tiene netbeans es su soporte nativo para CMake. En cambio, con eclipse tenia que limitarme a escribir mi archivo CMakeLists.txt y crear el makefile para despues incluirlo en eclipse.
Hace poco encontré una manera alternativa de usar CMake desde dentro de eclipse que completaba la cadena. Vamos a ver como se hace
1.- Crear un nuevo proyecto
Creamos un nuevo proyecto C/C++ en eclipse desde 0. Es decir, no usamos la opción de crear un "Makefile Project with Existing Code".
Le vamos a añadir codigo fuente de ejemplo:
main.cpp
#include "main.h"int main() {); return EXgreetings (IT_SUCCESS;}
main.h
#include <iostream>void greetings() {a" << std::endl; }std::cout << "Hol
Ademas del código vamos a añadir un CMakeLists.txt directamente en eclipse.
cmake_minimum_required(VERSION 2.8)project(cmake_test) SET( TEST_SRCrc/main.h ) add_executable(tesrc/CMakeInEclipseTest.cppsst_common ${TEST_SRC})
2.- Creando los targets de eclipse
Vamos a aprovechar que podemos ejecutar instrucciones de CMake desde linea de comandos con la opcion -E para usarlo con los targets de eclipse. Primero vamos a ver la ventana de Make Target en Window | Show View | Make Target . Debe aparecer a la derecha.
Ahora seleccionamos la carpeta que sera la carpeta de trabajo de CMake. Hacemos click derecho y seleccionamos Create Make Target.
Vamos a ponerle un nombre a este target CMake Release
En la ventana Make Target, quitamos la selección "Same as the target name", y nos aseguramos que el campo este vacio.
En build command, deseleccionamos Use Builder settings y escribimos en build command algo como
cmake -E chdir ${ProjDirPath}/build/Release/ cmake -G "Unix Makefiles" ../../ -DCMAKE_BUILD_TYPE:STRING=Release
En este momento quedaria asi.
Lo que intento es que el código intermedio y caches generadas por cmake quede en una carpeta "build" para que no ensucie la carpeta de proyecto. Dentro de buid estará "Release" y "Debug" donde se generan las versiones correspondientes.
Para probarlo, nos aseguramos de que ${ProjDirPath}/build/Release existe y si hacemos doble click deberiamos ver en la consola de Eclipse la ejecución de CMake.
Podemos crear más targets que perfilen la construcción del proyecto (Debug, con diferentes flags, ...)
3.- Configurar el Eclipse CDT Builder
Hacemos click derecho en el proyecto y vamos a las preferencias. Vamos a C/C++ Build y y alli seleccionamos Configuration: [All configurations]. Seleccionamos la pestaña Builder Settings y quitamos el check de Use default build command. En build command ponemos make -C build/${ConfigName} . Desactivamos Generate Makefiles automatically y dejamos en blanco Build directory. En resumen quedaria algo asi:
La pestaña de bahaviour la dejamos igual. Le damos a apply y a OK y ahora nos vamos project -> build project y vemos como el proyecto se construye. Con esto deberiamos tener toda la cadena CMake + Make + codigo en funcionamiento en nuestro Eclipse.