Restarted the production of the app

This commit is contained in:
Henry Winkel
2023-08-09 15:23:10 +02:00
parent b71f3b3bdf
commit 55ad5000dd
970 changed files with 453 additions and 79862 deletions

2
.gitignore vendored
View File

@@ -1,3 +1,3 @@
.cache .cache
build build/
compile_commands.json compile_commands.json

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "libs/EntityLibrary"]
path = libs/EntityLibrary
url = ssh://git@dev-gitea.ftewa.ti.unibw-hamburg.de:12000/hwinkel/EntityLibrary.git

View File

@@ -1,19 +1,15 @@
cmake_minimum_required (VERSION 3.1 FATAL_ERROR) cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
project (EntitiyManager VERSION 0.1.0 LANGUAGES CXX C) project (EntitiyManager VERSION 0.1.0 LANGUAGES CXX C)
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
include(defaultOptions) include(defaultOptions)
#find_package(Eigen3 REQUIRED NO_MODULE) #find_package(Eigen3 REQUIRED NO_MODULE)
IF (NOT TARGET CLI11) IF (NOT TARGET CLI11)
set(CLI11_TESTING OFF CACHE BOOL "disable testing") set(CLI11_TESTING OFF CACHE BOOL "disable testing")
add_subdirectory(libs/cli11 EXCLUDE_FROM_ALL) add_subdirectory(libs/CLI11 EXCLUDE_FROM_ALL)
ENDIF() ENDIF()
# IF(NOT TARGET nlohmann_json::nlohmann_json)
# set(JSON_BuildTests OFF CACHE INTERNAL "")
# add_subdirectory(libs/json EXCLUDE_FROM_ALL)
# ENDIF()
IF(NOT TARGET loguru) IF(NOT TARGET loguru)
add_subdirectory(libs/loguru EXCLUDE_FROM_ALL) add_subdirectory(libs/loguru EXCLUDE_FROM_ALL)
@@ -21,12 +17,11 @@ IF(NOT TARGET loguru)
ENDIF() ENDIF()
IF (NOT TARGET CommService) IF(NOT TARGET EntityLibrary)
add_subdirectory(libs/CommService EXCLUDE_FROM_ALL) add_subdirectory(libs/EntityLibrary EXCLUDE_FROM_ALL)
ENDIF() ENDIF()
add_library(SimControl STATIC add_library(SimControl STATIC
@@ -39,9 +34,9 @@ add_library(SimControl STATIC
target_link_libraries(SimControl target_link_libraries(SimControl
PUBLIC PUBLIC
CommService CLI11
pthread pthread
EntityLibrary
loguru loguru
) )

View File

@@ -3,7 +3,7 @@ find_package(Git)
enable_testing() enable_testing()
cxx_20() cxx_20()
build_docs(PROCESS_DOXYFILE DOXYFILE_PATH "docs/Doxyfile.in" ) # build_docs(PROCESS_DOXYFILE DOXYFILE_PATH "docs/Doxyfile.in" )
add_code_coverage_all_targets(EXCLUDE ${PROJECT_SOURCE_DIR}/libs/* ${PROJECT_SOURCE_DIR}/test/*) add_code_coverage_all_targets(EXCLUDE ${PROJECT_SOURCE_DIR}/libs/* ${PROJECT_SOURCE_DIR}/test/*)
TEST_BIG_ENDIAN(IS_BIG_ENDIAN) TEST_BIG_ENDIAN(IS_BIG_ENDIAN)

View File

@@ -0,0 +1,38 @@
function(protobuf_generate_cpp)
set(OPTIONS)
set(SINGLE_VALUE_KEYWORDS
PROTO_PATH
CPP_PATH
HPP_PATH
)
set(MULTI_VALUE_KEYWORDS)
cmake_parse_arguments(protobuf
"${OPTIONS}"
"${SINGLE_VALUE_KEYWORDS}"
"${MULTI_VALUE_KEYWORDS}"
${ARGN})
FILE(GLOB PROTO_FILES ${protobuf_PROTO_PATH}/*.proto)
set(PROTOC ${CMAKE_BINARY_DIR}/libs/EntityLibrary/libs/SimCore/libs/whisper-com/libs/protobuf/protoc)
message(STATUS "protoc path: " ${PROTOC})
FOREACH(proto ${PROTO_FILES})
FILE(TO_NATIVE_PATH ${proto} proto_native)
get_filename_component(protoFILENAME ${proto} NAME_WLE )
get_filename_component(protoDIR ${proto} DIRECTORY)
message(STATUS "proto file path: " ${proto})
add_custom_command(
OUTPUT "${protoDIR}/${protoFILENAME}.pb.cc"
DEPENDS "${protoDIR}/${protoFILENAME}.proto"
COMMAND ${PROTOC} --cpp_out=${protoDIR} --proto_path=${protoDIR} --proto_path="${CMAKE_SOURCE_DIR}/libs/EntityLibrary/libs/SimCore/include/SimCore/Messages/Protos" --proto_path="${CMAKE_SOURCE_DIR}/libs/EntityLibrary/libs/SimCore/libs/whisper-com/libs/protobuf/src" "${protoDIR}/${protoFILENAME}.proto"
)
ENDFOREACH(proto)
endfunction()

View File

@@ -1,7 +1,7 @@
#ifndef __SIMCONTROL__ #ifndef __SIMCONTROL__
#define __SIMCONTROL__ #define __SIMCONTROL__
#include "CommService/Message.hpp" #include "DirectCommunicationClient.hpp"
#include <iostream> #include <iostream>
@@ -12,69 +12,24 @@
#include <mutex> #include <mutex>
#include <queue> #include <queue>
#include <CommService/CommService.hpp>
namespace SimControl { namespace SimControl {
class SimControl : public std::enable_shared_from_this<SimControl> { class SimControl{
public: public:
SimControl(const std::string &addr,const std::int16_t port): SimControl(const std::string &addr,const std::int16_t port);
// UDPInboundQueue_(std::make_shared<std::queue<std::string>>()),
// UDPOutboundQueue_(std::make_shared<std::queue<std::string>>()),
isMainThreadRunning_(false),
stopMainThread_(false),
isCommServiceThreadRunning_(false),
stopCommServiceThread_(false),
CommServiceThread(nullptr),
MainFunctionThread_(nullptr)
{
OutgoingMessageQueue_ = std::make_shared<ThreadsafeQueue<CommService::Message>>();
IncommingMessageQueue_ = nullptr;
}
void start();
void stop();
private: private:
std::unique_ptr<std::thread> CommServiceThread = nullptr; void MainFunction_();
std::unique_ptr<std::thread> MainFunctionThread_ = nullptr;
std::shared_ptr<std::queue<std::string>> UDPInboundQueue_ = nullptr;
std::shared_ptr<std::queue<std::string>> UDPOutboundQueue_ = nullptr;
std::atomic<bool> isCommServiceThreadRunning_;
std::atomic<bool> stopCommServiceThread_;
std::atomic<bool> isMainThreadRunning_;
std::atomic<bool> stopMainThread_;
// std::mutex mutexInboundQueue_;
// std::mutex mutexOutboundQueue_;
///pointer to the commservice
std::unique_ptr<CommService::CommService> CommService_;
///threadsafe message queue from CommService
std::shared_ptr<ThreadsafeQueue<CommService::Message>> IncommingMessageQueue_;
std::shared_ptr<ThreadsafeQueue<CommService::Message>> OutgoingMessageQueue_;
void startMainFunction_(); std::shared_ptr<DirectCommunication::DirectCommunicationClient> TCPClient_;
void stopMainFunction_();
void startCommService_();
void stopCommService_();
void CommServiceFunction_();
void MainFunction_();

View File

@@ -1,4 +1,4 @@
version: 2.2.0.{build} version: 2.3.1.{build}
branches: branches:
only: only:
@@ -24,6 +24,7 @@ build_script:
-DCMAKE_BUILD_TYPE=Debug -DCMAKE_GENERATOR="Visual Studio 14 2015" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_GENERATOR="Visual Studio 14 2015"
- ps: cmake --build . - ps: cmake --build .
- cd .. - cd ..
- ps: set CTEST_OUTPUT_ON_FAILURE=1
- conan create . CLIUtils/CLI11 - conan create . CLIUtils/CLI11
test_script: test_script:

View File

@@ -20,6 +20,8 @@ jobs:
precompile: ["ON", "OFF"] precompile: ["ON", "OFF"]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Get LCov - name: Get LCov
run: | run: |
@@ -50,12 +52,10 @@ jobs:
lcov --list coverage.info lcov --list coverage.info
working-directory: build working-directory: build
- name: Upload coverage - uses: codecov/codecov-action@v3
run: | with:
curl -Os https://uploader.codecov.io/latest/linux/codecov fail_ci_if_error: true
chmod +x codecov working-directory: build
./codecov
working-directory: build
clang-tidy: clang-tidy:
name: Clang-Tidy name: Clang-Tidy
@@ -84,7 +84,7 @@ jobs:
- name: Add wget - name: Add wget
run: apt-get update && apt-get install -y wget run: apt-get update && apt-get install -y wget
- name: Get cmake - name: Get cmake
uses: jwlawson/actions-setup-cmake@v1.12 uses: jwlawson/actions-setup-cmake@v1.13
- name: Configure - name: Configure
run: cmake -S . -B build -DCLI11_CUDA_TESTS=ON run: cmake -S . -B build -DCLI11_CUDA_TESTS=ON
- name: Build - name: Build
@@ -101,7 +101,7 @@ jobs:
- name: Add deps - name: Add deps
run: apt-get update && apt-get install make run: apt-get update && apt-get install make
- name: Get CMake - name: Get CMake
uses: jwlawson/actions-setup-cmake@v1.12 uses: jwlawson/actions-setup-cmake@v1.13
- name: Configure - name: Configure
run: cmake -S . -B build -DCLI11_BOOST=ON run: cmake -S . -B build -DCLI11_BOOST=ON
- name: Build - name: Build

View File

@@ -4,12 +4,12 @@ ci:
repos: repos:
- repo: https://github.com/psf/black - repo: https://github.com/psf/black
rev: 22.8.0 rev: 22.10.0
hooks: hooks:
- id: black - id: black
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0 rev: v4.4.0
hooks: hooks:
- id: check-added-large-files - id: check-added-large-files
- id: check-case-conflict - id: check-case-conflict
@@ -21,7 +21,7 @@ repos:
- id: trailing-whitespace - id: trailing-whitespace
- repo: https://github.com/pre-commit/mirrors-clang-format - repo: https://github.com/pre-commit/mirrors-clang-format
rev: v14.0.6 rev: v15.0.4
hooks: hooks:
- id: clang-format - id: clang-format
types_or: [c++, c, cuda] types_or: [c++, c, cuda]
@@ -33,17 +33,19 @@ repos:
additional_dependencies: [pyyaml] additional_dependencies: [pyyaml]
- repo: https://github.com/pre-commit/mirrors-prettier - repo: https://github.com/pre-commit/mirrors-prettier
rev: "v3.0.0-alpha.0" rev: "v3.0.0-alpha.4"
hooks: hooks:
- id: prettier - id: prettier
types_or: [yaml, markdown, html, css, scss, javascript, json] types_or: [yaml, markdown, html, css, scss, javascript, json]
args: [--prose-wrap=always] args: [--prose-wrap=always]
- repo: https://github.com/markdownlint/markdownlint - repo: https://github.com/markdownlint/markdownlint
rev: v0.11.0 rev: v0.12.0
hooks: hooks:
- id: markdownlint - id: markdownlint
args: ["--style=scripts/mdlint_style.rb"] args: ["--style=scripts/mdlint_style.rb"]
# Uncomment on macOS - Apple has deprecated Ruby, so macOS is stuck on 2.6
# language_version: 3.1.2
# - repo: local # - repo: local
# hooks: # hooks:
@@ -80,7 +82,7 @@ repos:
exclude: .pre-commit-config.yaml exclude: .pre-commit-config.yaml
- repo: https://github.com/codespell-project/codespell - repo: https://github.com/codespell-project/codespell
rev: v2.2.1 rev: v2.2.2
hooks: hooks:
- id: codespell - id: codespell
args: ["-L", "atleast,ans,doub,inout"] args: ["-L", "atleast,ans,doub,inout"]

View File

@@ -1,5 +1,50 @@
# Changelog # Changelog
## Version 2.3: Precompilation Support
This version adds a pre-compiled mode to CLI11, which allows you to precompile
the library, saving time on incremental rebuilds, making CLI11 more competitive
on compile time with classic compiled CLI libraries. The header-only mode is
still default, and is not yet distributed via binaries.
- Add `CLI11_PRECOMPILED` as an option. [#762][]
- Bugfix: Include `<functional>` in `FormatterFwd` [#727][]
- Bugfix: Add missing `Macros.hpp` to `Error.hpp` [#755][]
- Bugfix: Fix subcommand callback trigger [#733][]
- Bugfix: Variable rename to avoid warning [#734][]
- Bugfix: `split_program_name` single file name error [#740][]
- Bugfix: Better support for min/max overrides on MSVC [#741][]
- Bugfix: Support MSVC 2022 [#748][]
- Bugfix: Support negated flag in config file [#775][]
- Bugfix: Better errors for some confusing config file situations [#781][]
- Backend: Restore coverage testing (lost with Travis CI) [#747][]
[#727]: https://github.com/CLIUtils/CLI11/pull/727
[#733]: https://github.com/CLIUtils/CLI11/pull/733
[#734]: https://github.com/CLIUtils/CLI11/pull/734
[#740]: https://github.com/CLIUtils/CLI11/pull/740
[#741]: https://github.com/CLIUtils/CLI11/pull/741
[#747]: https://github.com/CLIUtils/CLI11/pull/747
[#748]: https://github.com/CLIUtils/CLI11/pull/748
[#755]: https://github.com/CLIUtils/CLI11/pull/755
[#762]: https://github.com/CLIUtils/CLI11/pull/762
[#775]: https://github.com/CLIUtils/CLI11/pull/775
[#781]: https://github.com/CLIUtils/CLI11/pull/781
### Version 2.3.1: Missing implementation
A function implementation was missing after the pre-compile move, missed due to
the fact we lost 100% after losing coverage checking. We are working on filling
out 100% coverage again to ensure this doesn't happen again!
- Bugfix: `App::get_option_group` implementation missing [#793][]
- Bugfix: Fix spacing when setting an empty footer [#796][]
- Bugfix: Address Klocwork static analysis checking issues [#785][]
[#785]: https://github.com/CLIUtils/CLI11/pull/785
[#793]: https://github.com/CLIUtils/CLI11/pull/793
[#796]: https://github.com/CLIUtils/CLI11/pull/796
## Version 2.2: Option and Configuration Flexibility ## Version 2.2: Option and Configuration Flexibility
New features include support for output of an empty vector, a summing option New features include support for output of an empty vector, a summing option

View File

@@ -530,7 +530,7 @@ Before parsing, you can set the following options:
are `CLI::MultiOptionPolicy::Throw`, `CLI::MultiOptionPolicy::Throw`, are `CLI::MultiOptionPolicy::Throw`, `CLI::MultiOptionPolicy::Throw`,
`CLI::MultiOptionPolicy::TakeLast`, `CLI::MultiOptionPolicy::TakeFirst`, `CLI::MultiOptionPolicy::TakeLast`, `CLI::MultiOptionPolicy::TakeFirst`,
`CLI::MultiOptionPolicy::Join`, `CLI::MultiOptionPolicy::TakeAll`, and `CLI::MultiOptionPolicy::Join`, `CLI::MultiOptionPolicy::TakeAll`, and
`CLI::MultiOptionPolicy::Sum` 🚧. `CLI::MultiOptionPolicy::Sum` 🆕.
- `->check(std::string(const std::string &), validator_name="",validator_description="")`: - `->check(std::string(const std::string &), validator_name="",validator_description="")`:
Define a check function. The function should return a non empty string with Define a check function. The function should return a non empty string with
the error message if the check fails the error message if the check fails
@@ -571,7 +571,7 @@ Before parsing, you can set the following options:
- `->trigger_on_parse()`: If set, causes the callback and all associated - `->trigger_on_parse()`: If set, causes the callback and all associated
validation checks for the option to be executed when the option value is validation checks for the option to be executed when the option value is
parsed vs. at the end of all parsing. This could cause the callback to be parsed vs. at the end of all parsing. This could cause the callback to be
executed multiple times. Also works with positional options 🆕. executed multiple times. Also works with positional options.
These options return the `Option` pointer, so you can chain them together, and These options return the `Option` pointer, so you can chain them together, and
even skip storing the pointer entirely. The `each` function takes any function even skip storing the pointer entirely. The `each` function takes any function
@@ -658,7 +658,7 @@ CLI11 has several Validators built-in that perform some common checks
- `CLI::ExistingDirectory`: Requires that the directory exists. - `CLI::ExistingDirectory`: Requires that the directory exists.
- `CLI::ExistingPath`: Requires that the path (file or directory) exists. - `CLI::ExistingPath`: Requires that the path (file or directory) exists.
- `CLI::NonexistentPath`: Requires that the path does not exist. - `CLI::NonexistentPath`: Requires that the path does not exist.
- `CLI::FileOnDefaultPath`: 🆕 Best used as a transform, Will check that a file - `CLI::FileOnDefaultPath`: Best used as a transform, Will check that a file
exists either directly or in a default path and update the path appropriately. exists either directly or in a default path and update the path appropriately.
See [Transforming Validators](#transforming-validators) for more details See [Transforming Validators](#transforming-validators) for more details
- `CLI::Range(min,max)`: Requires that the option be between min and max (make - `CLI::Range(min,max)`: Requires that the option be between min and max (make

View File

@@ -37,7 +37,7 @@ class CLI11Conan(ConanFile):
def build(self): # this is not building a library, just tests def build(self): # this is not building a library, just tests
cmake = CMake(self) cmake = CMake(self)
cmake.definitions["CLI11_EXAMPLES"] = "OFF" cmake.definitions["CLI11_BUILD_EXAMPLES"] = "OFF"
cmake.definitions["CLI11_SINGLE_FILE"] = "OFF" cmake.definitions["CLI11_SINGLE_FILE"] = "OFF"
cmake.configure() cmake.configure()
cmake.build() cmake.build()

View File

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Some files were not shown because too many files have changed in this diff Show More