Giter VIP home page Giter VIP logo

cpp_box's Introduction

travis Travis Build Status
Cirrus CI Cirrus CI Build Status
Appveyor AppVeyor Build status
Codecov codecov
CodeFactor CodeFactor

cpp_box

It implements a partial ARMv4 architecture in software.

For code this can accept, use gcc or clang in -march=armv4 mode. Almost all builds of clang but default support --target=armv4-linux regardless of your host platform.

Architecture Documentation

For more information on the ARMv4 architecture, look for documentation on the ARM7 core.

We plan to implement the VFP version 1 for a hardware FPU. For this support add -mfpu=vfp -mfloat-abi=hard to your build command line.

For more information, look at the ARMv5 Architecture Reference Manual.

Getting Started

Prerequisites

To compile the code, it requires at least C++17 to work. This includes std::filesystem which is not until GCC 8.

In this project Conan is used for package management. Conan is a portable package manager for C/C++ libraries. It is used to cache all the dependencies needed to build into local directories, without needing to install system packages.

For installation methods of Conan, visit this link. The step-by-step instructions to enable you to build with conan is provided in Conan's website. But in case you would like to see a live demo you can check out this video.

To build the project with conan, you will also need to have CMake with minimum version of 3.8 to support cxx_std_17.

Building

To set the compiler and the compiler version in Conan, edit the ~/.conan/profiles/default file if necessary.

Then in the project directory:

mkdir build && cd build

Conan support is built into the CMakeLists.txt file. You must have conan installed already and need to add appropriate remote:

conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan
cmake ..

If cmake cannot find the version of conan you have installed you can tell it where to find it with:

cmake .. -DCONAN_CMD:PATH=/path/to/conan

Running the tests

After successfully finishing build process, run test to see if everything is work.

You can use ctest

$ ctest

Or make

$ make test

Or execute the tests directly. To do so, simply go to build/bin folder and run the tests.

$ ./constexpr_tests
All tests passed (47 assertions in 21 test cases)
$ ./relaxed_constexpr_tests
All tests passed (47 assertions in 21 test cases)

Built With

  • Conan - The C/C++ Package Manager
  • CMake - Cross-platform build system
  • gcc - The GNU Compiler Collection

About Me

My name is Jason Turner, I'm a C++ programmer, trainer and speaker, available for code reviews and on-site training events.

License

This project is licensed under the MIT License - see the LICENSE file for details

cpp_box's People

Contributors

lefticus avatar mattgodbolt avatar

Watchers

 avatar  avatar

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.