# Working with Qt Creator

## Settings (MSYS2)

### Setup CMake-Kit

1. Add CMake under `Tools -> Options -> Kits -> CMake`

2. Add C and C++ Compilers under `Tools -> Options -> Kits -> Compilers`

3. Add Debugger under `Tools -> Options -> Kits -> Debuggers`

4. Add Kit under `Tools -> Options -> Kits -> Kits`

5. Adjust `CMake Generator` under `Tools -> Options -> Kits -> Kits` to `MSYS Makefiles`

   When loading a `CMakeLists.txt` doesn’t result in listing all relevant files, a change of the `CMake Generator` to `MinGW Makefiles` with a matching `Extra generator` is recommended. This has to be noted while executing the `Prepare build` step in Installing OpenPASS.

   Note

   Change the environment variable to `MAKEFLAGS=-j4` (or similar) to enable parallel building on the kit level.

### Setup Project

1. Load the project by opening a `CMakeLists.txt` file and configure it to use the new kit.

2. Setup missing CMake flags (c.f. CMake Variables and Options). For building the documentation and also running the end-to-end tests the variable `Python3_EXECUTABLE` needs to be set to a native Windows Python environment, which has to include all required libraries, because the Python environment used in MSYS2 will not work here.

   Todo

   The configuration is still “itchy”, as Qt creator changes the interface with every version See https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/issues/149

## Settings (Linux)

### Setup Kit

Qt Creator should be able to come up with a suiteable kit for developing openPASS on its own. If not, check if all Installing Prerequisites are met. Also, the steps above should be a good indicator, where to look for potential troubles.

### Setup Project

1. Load the project by opening a `CMakeLists.txt` file and configure it to use a proper kit.

2. Setup missing CMake flags (c.f. CMake Variables and Options)

   Todo

   The configuration is still “itchy”, as Qt creator changes the interface with every version See https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/issues/149

## Alternative Method

Version Issues

Qt Creator is constantly improving the CMake integration. Unfortunatly, some versions seem to be buggy.

Tested Versions: 4.13.2 | 4.12.2

1. Follow the install instructions to invoke cmake from within your own build directory. - Execute the step for `build-release` - Execute the step for `build-debug`

2. Open Qt Creator

3. Open `CMakeLists.txt`

4. Qt Creator should find the configured build directories and create a temporary kit. It is recommended to use the the Kit prepared under the step `Setup CMake-Kit` and change therefore the paths for the `Release` resp. `Debug` build from the `Prepare build` step in Installing OpenPASS.

   It is possible to add an additional build step which also includes the end-to-end tests. Therefore the CMake variable `WITH_ENDTOEND_TESTS` needs to be set.

5. After the build, the link to the `opSimulation.exe` resp. the `opSimulationManager.exe` within the `Run Settings` is possible. When using `Debug` as the build-type, the Qt-creator should be able to run the simulation with debugging.