IDE Integration

Table of Contents >>

IDE Integration for OpenMAMA

We recommend that any new projects are set up in the same way as our tutorial examples are set up.

This general approach means that it is in fact the build system rather than the IDE which manages much of how things are set up for building and you get portability for free. Decoupling the IDE from the build system means you can support many IDEs simply by using a standardized build system.

This means that for new projects, we suggest using:

  • Cmake for C / C++ projects (regardless of operating system being used)
  • Gradle for Java projects
  • Csproj files for C# projects

C / C++ IDEs Supporting CMake

As an example of the IDEs which will automatically work with your buildsystem if you use cmake projects:

  • Microsoft Visual Studio 2017+
  • Visual Studio Code
  • CLion
  • Eclipse
  • NetBeans
  • Code::Blocks
  • Others…

Java IDEs Supporting Gradle

As an example of the IDEs which will automatically work with your buildsystem if you use gradle projects:

  • Visual Studio Code
  • IntelliJ
  • Eclipse
  • NetBeans
  • Others…

C# IDEs Supporting .csproj

This format is so ubiquitous with the target platform that this goes without saying, but as an example of the IDEs which will automatically work with your buildsystem if you use CMake projects:

  • Microsoft Visual Studio
  • Visual Studio Code
  • MonoDevelop
  • Rider / ReSharper
  • Others…

Example IDE Integration: Visual Studio Code

For the sake of using freely available cross platform software, this example will set up using Visual Studio Code as the proposed IDE for all languages. For a build system, we will use CMake for C / C++ code, Gradle for Java code, and Visual Studio for C# code.

This solution suggests installing:

C / C++

After completing this, if you open a folder containing a CMakeLists.txt file with the correct OPENMAMA_ROOT etc set up, you will get a prompt like this:

C Project IDE Confirmation

After agreeing to this and letting intellisense do its thing, autocomplete etc becomes available:

C Project Autocomplete

Java

Opening a folder containg a gradle project will provide a prompt like this:

Java Project IDE Confirmation

Which leads to autocomplete working:

Java Project Autocomplete

C#

Opening a folder containing a csproj file will pop up a prompt like this:

CS Project IDE Confirmation

Which leads to autocomplete working:

CS Project Autocomplete