Well, things have been dead around here. So, to keep things running, I’ve decided to post some less important content, mostly as notes-to-self (ya know, when you spend the weekend trying to get something to work, only to forget how you did it a month later). To avoid purging hard earned pseudo-knowledge, I’ll try to create the habit to write it down here.
So, for my first post in this (otherwise endless) series: how to use CMake with and IDE.
CMake is a nice cross-platform utility that generates Makefiles for C/C++ applications. It will automatically search for include files, libraries, generate configurable source code, etc, etc. A simple CMakeLists.txt
file looks like this:
1 2 3 4 5 6 7 8 |
# Establishing minimal required version (obligatory!) cmake_minimum_required(VERSION 2.6) project(Example) # Searching and adding headers and libraries find_package(OpenGL REQUIRED) include_directories(${OPENGL_INCLUDE_DIR}) add_executable(example main.cpp) target_link_libraries(${OPENGL_LIBRARIES}) |
This neatly handles dependencies and configurations in a much more platform-independent way. Nice tutorials on CMake are available here.
As the kind of guy that can’t cope with VI(M) (sorry, I’m just to dumb for it), I generally gravitate towards programming-with-IDEs. I began searching for an IDE that had decent CMake integration. “Eclipse can handle it, for sure”, I thought. Nope. I was disappointed to find out that Eclipse not only lacks native CMake support, but there seems to be no plugins that handle it. CMakeBuilder was widely referenced online, but it seems that it is no longer available (using Eclipse to query www.cmakebuilder.com/update/
yields no results).
Qt Creator ended up being the go-to solution. AFAIK, is the only well supported cross-platform GUI that handles CMake natively. Suppose we have the test_project
folder, with a main.cpp
and the CMakeLists.txt
I’ve shown above. Use Qt Creator to open a file or project:
Open the CMakeLists.txt
. You’ll be prompted to run CMake (which you can skip, if you wish). After running the wizard, the left project pane will look something like this:
Neither the project name nor source files will be displayed, which is a bummer. This seems to be an issue with Qt Creator >5.0. There’s an fairly easy fix. Add the aux_source_directory
command to your CMakeLists.txt
:
1 2 3 4 5 |
# Establishing minimal required version (obligatory!) cmake_minimum_required(VERSION 2.6) project(Example) aux_source_directory(. SRC_LIST) # ... |
Run Qt’s import wizard now, and the result will be as expected: project name will be featured, together with listed source files.
Great. Hit ⌘B and watch the build magic happen.
’til next time.