Using CMake
CMake philosophy is the following:
- your sources are in a directory containing a platform independent 
CMakeLists.txt configuration file describing your programs, the files from which they are built and the libraries they rely on (the source directory). 
- from this file, CMake creates, in some build directory you specify, all the files needed by your own system and your own development environment to compile your programs.
 
- you can generate projects for Visual Studio on Windows, XCode on MacOS, Code::Blocks on all platforms... Some development environments, such as Kdevelop (Linux) and QtCreator (all platforms) know natively CMake, and you do not need to launch the cmake progam before.
 
- it is a good idea to have separate source and build directories: you do not pollute your source directory with numerous temporary files needed for build.
 
- this process is done once and for all. Even further modifications of 
CMakeLists.txt are handled automatically by the build process. 
The 'test' sub-directory of the Imagine++ installation directory contains useful examples of such files. As an example, let's compile the Graphics tests.
The CMakeLists.txt (<Imagine_DIR>/test/Graphics/CMakeLists.txt) file of the Graphics test is simple, and your own should follow this model:
 cmake_minimum_required(
VERSION 3.12)
 
project(ImagineGraphicsTests)
find_package(
Imagine REQUIRED COMPONENTS Graphics)
 
add_executable(ImagineGraphicsExample example.cpp)
target_link_libraries(ImagineGraphicsExample PRIVATE 
Imagine::Graphics)
 
add_executable(ImagineGraphicsTest test.cpp)
target_link_libraries(ImagineGraphicsTest PRIVATE 
Imagine::Graphics)
 
 
Two executables are defined, ImagineGraphicsExample and ImagineGraphicsTest, built respectively from example.cpp and tesp.cpp, each of them using the Graphics module. The first few lines are mandatory for any Imagine++ project: they check the Imagine_DIR environment variable, which is mandatory to use Imagine++ (see Introduction).
Finally, if an executable depends on more than one C++ source, just add them as arguments to add_executable separated by whitespace. See other tests and refer to CMake own manual for further information.
QtCreator (all platforms)
QtCreator works on all platforms
- launch 
QtCreator. Under Windows, it may complain about some problem related to OpenGL. It is happens, launch from a terminal: c:\Qt\Tools\QtCreator\bin\qtcreator.exe -noload Welcome
 
- launch menu 
File/Open file or project... Choose the file <Imagine_DIR>/test/Graphics/CMakeLists.txt 
Choose your build directory, click Next 
 
 
Set arguments as above to be able to debug the programs. Click button 'Run CMake', then Finish.
 
 
Build (hammer button), select program to launch (button all) and launch (green arrow)
 
 
The text output of the program is displayed in QtCreator
 
 
To launch from a terminal instead, go to Projects, select Run and click 'Run in terminal'. You must do that if your program expects user text input.
 
 
The green button with a ladybug launches the debugger. Set breakpoints , run line by line, observe variables...
 
  
From a terminal (all platforms)
- run CMake GUI, and select a generator, 'Unix makefiles' for Linux and MacOS, 'MinGW Makefiles' for Windows. To install cmake-gui under Debian or derivative (such as Ubuntu): 
sudo apt install cmake-qt-gui
  Notice it is in the Universe part of Ubuntu, which may not be activated by default. 
- you may now run 
make (Linux/Mac) or mingw32-make (Windows) in your build directory to compile your project. 
- under Mac, it may complain about not finding Qt. This is fixed by the command 
PATH=$HOME/Qt/5.3/clang_64/bin:$PATH
 
- important notes:
- while being under cmake-gui, you may change build type to 
Debug (for use with a debugger) or Release to generate optmized programs (default is neither Release nor Debug). For some applications, the Release executable can be much faster. 
- you can use 
cmake instead of cmake-gui as a command line version. Try also ccmake (non graphic version under Linux/Mac) to change build type: cmake -S /path/to/source -B buildTest
ccmake -B buildTest
[change CMAKE_BUILD_TYPE to Release, press [g], quit [q]]
cmake --build buildTest