Git Product home page Git Product logo

minimum-grpc-imgui-clientservertemplate's People

Contributors

spauly avatar

Stargazers

 avatar

Watchers

 avatar  avatar

minimum-grpc-imgui-clientservertemplate's Issues

Fixed build directory relative to project root

Most targets will be built into the build/ directory in the project root, disregarding the chosen build directory for CMake (e.g. release_build/). While it's only inconsistent and surprising with a single build configuration, this makes different builds (e.g. Release, Debug, Profiling, ...) in different directories impossible, as they would have to be recompiled on a build switch (or rather I would have thought so, but apparently this isn't the case. However the targets must be recompiled since the compilation flags between Debug and Release build are actually different (e.g. grpc), as far as I can see).

As a fix, the BINARY_DIRs of the external projects should be set relative to CMAKE_BINARY_DIR.

Implement better namespaces

The namespace currently used (e.g. Your_Project) does not serve a real purpose yet. Instead, it could be used to better encapsulate the different parts:

  • client and server
  • essential parts like the GUI
  • protoc elements
  • utilities
  • ...

Fix SETUP.sh

The SETUP script successfully retrieves the c_cpp_properties.json but the parsing to a text format does not work.

Better support for external gRPC

There have been some issues trying to use external gRPC sources since the file structure (e.g. all the dependency directories) is different from the created one when building gRPC with all the dependencies from source.
Also, there is a difference with statically and dynamically linked libraries. -> this needs some further research.

Set proper root folder in config

Currently, the config file has to be manually changed after using the template and the name has to be changed in SUP_ROOT_FOLDER.
Instead, this should work automatically by using a variable.

Add documentation

  • proper comments
  • licensing
  • description
  • readme
  • (documentation -> Doxygen?)

Implement Development Workflow

Currently, the build times are unnecessarily long due to everything being built. Adjust the build system here for a more efficient workflow.

gRPC and utils include does not work

The include for the gRPC headers does not work correctly. Currently, these headers are supposed to be included via target_include_directories() which includes ${SUP_GRPC_BINARIES_DIR}\grpc\include and ${SUP_GRPC_BINARIES_DIR}\protobuf\include. Still using #include <grpc\grpc.h> give the error cannot open file... and not matching information provided by the ConfigurationProvider.
The same error exists for the include of ${SUP_ROOT_FOLDER}\utils.

Note that the ${SUP_...} variables are set in costum-config.cmake and can be relative paths. Still converting the grpc path e.f. to an absolute path does not solve the problem.

More information will be provided later...

Error with MinGW GCC: string constant

When compiling with MinGW GCC I get the errors:

  • expected identifier before string constant
  • expected ',' or '...' before string constant

multiple times for using this string constructor: std::string m_server_address("localhost:50000"); simply using = resolves the problem.

Implement changes from downstream

In a private repo, I made changes to this template's core. This include:

  • consistent naming of grpc variables with mgrpc
  • using the member variable mgrpc_server in server init instead of temp variable _server
  • more consistent namespaces
  • Shutdown method for server

Create Dockerfile

Seeing the many problems a build system like this brings on different machines simply using Docker seems increasingly convenient.

the code cannot proceed because libzlib.dll was not found

Unless the directory to libzlib.dll is added to PATH I get the error 'the code cannot proceed because libzlib.dll was not found'

  • Quick fix is add the lib manually to path
  • tried implementing this automatically but since I am building with MinGW and Unix Makefiles the macro WIN32 is never set
  • adding the path to RPATH does not fix the problem for me

Add Dev-Console in different branch

Add a development console that demonstrates the basics of gRPC and ImGui and is useful in debugging applications.
Features:

  • send and receive test data structures
  • see network activity
  • log incoming and outgoing messages

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.