Giter Site home page Giter Site logo

adepke / red Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 1.04 MB

General Purpose C++ Application Framework Library

License: MIT License

C 3.16% C++ 94.20% Batchfile 0.61% CMake 1.78% Shell 0.25%
cpp cross-platform framework library windows macos linux

red's Introduction

Red Framework

Open source collection of C++ modules built to interest a wide variety of programming focuses. The modules provide high and low level abstractions to make software development smoother, leaving the platform-dependent and management code to the library. This project is not a replacement for more developed libraries such as Boost, but it makes attempts at providing unique and useful constructs for programmers.

Code Coverage

Build Status System(s)
Build Status Windows Windows 10 (MSVS 2017)
Build Status Linux Ubuntu 14.04.3 (gcc 4.8.4/clang 5.0.0) OSX (XCode 8.3 clang)

Building

Building is simplified into platform specific build scripts. For Windows systems, execute Build.bat, while on *nix systems, use Build.sh. These will generate a Build folder in the project root to store all intermediates and binaries. Running these scripts without any arguments will default to 64 bit builds without debugging information.

Customizing the Build

You can customize the build with the following set of commandline arguments. Note: If you want to specify one of these arguments, you must specify all preceding arguments. Any arguments not specified after will resort to defaults. Order does matter.

[Argument 1] Release | Debug

Changes whether or not debugging information should be included in the build.

[Argument 2] x86 | x64

Changes the target system architecture.

[Argument 3*] coverage

Changes whether or not code coverage data should be included in the build.

[Argument 3**] HASNUGET

* *nix build script only, used mainly by CI for code coverage statistics.

** Windows build script only, use this if you have NuGet in your PATH and don't need to download it.

Requirements

Windows

*nix

Contributing

This is an open source project that is open to any public submissions that fall within the loosely held style guide of the project. Until an official guide is written, potential contributors can look over the code provided and do their best to get a sense of the structure and style. As for work environments, Microsoft Visual Studio is the native development suite for work on the library and will always be supported. It is unknown whether or not other IDEs will be natively supported in the future.

Note

When contributing, make sure to submit your line endings as LF. This can be done in Windows by setting your git configuration variable core.autocrlf to true. For non-DOS systems that natively use LF line endings, set it to input.

red's People

Contributors

adepke avatar

Stargazers

 avatar

Watchers

 avatar

red's Issues

[Network] Add Send and Receive Timeout Functions

Currently all blocking network functions will stall the calling thread until they have finished, without any regard for a task timeout. Leverage the kernel flags SO_RCVTIMEO and SO_SNDTIMEO for setting timeouts.

[Network] CMake Base Include Sweep Misses Source Files

This issue directly refers to the file AsyncTask.cpp not being included into CMake builds. This is because only headers are included in the initial include sweep. Add another search component to the base sweep to include *.cpp files as well.

[Function] Cannot Distinguish Between Lambda And Function Pointer

Construction or assignment with Function type is not fully working, causing a large performance impact when using function pointers. The compiler defaults to thinking passed in function pointers are of lambda type, not causing a failure, but causing substantial execution overhead through unnecessary memory access, allocation, and deallocation.

[Network] IPv6 Support

IPv6 is growing in popularity, so portable support for it is needed. This should be fairly easy to implement and will end up mostly a mirror of the current BSD IPv4 implementation.

[Build] Need for Unified Build and Test System

The build system is strewn all over, and too many differences exist between the Windows and Unix builders. This issue is specifically referring to the CMake system for Unix builds, which is missing a solid, feature packed, and dynamically adjustable foundation that the Visual Studio solution provides. A way to conditionally export coverage data in Unix builds for Travis is required too.

[Test] Build GTest from the Git Submodule in Windows Builds

NuGet's Google Test binaries lack certain preprocessor definitions required to use std::tuple instead of std::tr1::tuple, which currently causes a massive array of deprecation warnings. Building from the git submodule source code will fix this issue.

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.