Supported project types in the IDE

The QNX Momentics IDE supports these project types:

Managed project

A Managed project uses a managed build system, meaning that all of the build settings are controlled by the GUI. If you use such a project, you shouldn't check the Makefiles into source control.

Note: In earlier versions of the IDE (before 4.5), there were two different kinds of Make projects: Managed Make, which may or may not automatically generate a makefile based on the build logic, and Standard Make, which require a user-specified makefile in order to be built. Now, when you select a project type, that type determines the build system to use.

This type of project usually can't be built from the command line (although it's possible in simple cases with some additional setup files). Also, there are restrictions on what you can build and how you can build it, particularly if you use special build steps that involve other tools.

Makefile project

Use a Makefile project if you will be creating your own Makefile. The IDE starts make and after make exits, the IDE refreshes the workspace so you can see what was created. You can change the make command and run specific make targets, but the IDE has no control over what make is doing.

Since the IDE doesn't know what's being built, it can have problems parsing source files (which it does internally to allow navigation, code completion, syntax highlighting, code generation, and refactoring). Therefore, if you use a Makefile project, you have to modify the Indexer (the internal parser) to point it to the Includes as well as the Defines your parser uses for conditional compilation. The process of determining this is called Discovery, and it can be controlled by right-clicking a project and selecting Properties > C/C++ Build > Discovery Options.

Note: If you know what includes and defines you want to use, you can specify them directly by right-clicking a project and selecting Properties > C/C++ General > Path and Symbols).
QNX project
A QNX project is a special kind of managed project with additional control over the make utility. When you create a QNX project, the IDE automatically creates a QNX recursive Makefile. QNX recursive Makefiles use specific variables and a particular layout that allow the IDE to parse the common.mk file and to provide the GUI with control over the Makefile options and build variants. Typically, a single QNX project can generate a binary or library for several variants, in debug and release modes.