INSTINCT Code Coverage Report


Directory: src/
File: main.cpp
Date: 2025-02-07 16:54:41
Exec Total Coverage
Lines: 0 17 0.0%
Functions: 0 2 0.0%
Branches: 0 58 0.0%

Line Branch Exec Source
1 // This file is part of INSTINCT, the INS Toolkit for Integrated
2 // Navigation Concepts and Training by the Institute of Navigation of
3 // the University of Stuttgart, Germany.
4 //
5 // This Source Code Form is subject to the terms of the Mozilla Public
6 // License, v. 2.0. If a copy of the MPL was not distributed with this
7 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
8
9 #include <iostream>
10
11 #include "internal/Version.hpp"
12
13 #include "internal/AppLogic.hpp"
14 #include "internal/ConfigManager.hpp"
15
16 namespace
17 {
18
19 int Main(int argc, const char* argv[]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)
20 {
21 // Config Manager object
22 NAV::ConfigManager::initialize();
23
24 if (argc == 2)
25 {
26 // User requested the version of the program
27 if (!strcmp(argv[1], "--version") || !strcmp(argv[1], "-v"))
28 {
29 std::cout << PROJECT_VERSION_STRING << '\n';
30 return EXIT_SUCCESS;
31 }
32
33 // User requested the help text of the program
34 if (!strcmp(argv[1], "--help") || !strcmp(argv[1], "-h"))
35 {
36 std::cout << "INSTINCT " << PROJECT_VERSION_STRING << " - INS Toolkit for Integrated Navigation Concepts and Training\n\n"
37 << NAV::ConfigManager::GetProgramOptions() << '\n';
38 return EXIT_SUCCESS;
39 }
40 }
41
42 try
43 {
44 return NAV::AppLogic::processCommandLineArguments(argc, argv);
45 }
46 catch (const std::exception& e)
47 {
48 std::cerr << "Critical Event occurred: " << e.what() << '\n';
49 return EXIT_FAILURE;
50 }
51 }
52 } // namespace
53
54 #if defined(_WIN32) && !defined(_CONSOLE)
55 #include <windows.h>
56 #include <stdlib.h> // __argc, argv
57
58 int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd)
59 {
60 return Main(__argc, const_cast<const char**>(__argv));
61 }
62
63 #else
64
65 int main(int argc, const char* argv[])
66 {
67 return Main(argc, argv);
68 }
69
70 #endif
71