• Stars
    star
    294
  • Rank 141,303 (Top 3 %)
  • Language
    C++
  • License
    MIT License
  • Created over 6 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

travis Travis Build Status
Cirrus CI Cirrus CI Build Status
Appveyor AppVeyor Build status
Codecov codecov
CodeFactor CodeFactor
Codacy Codacy Badge
ScoreMe Readme Score

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

More Repositories

1

cpp_weekly

The official C++ Weekly Repository. Code samples and notes of future / past episodes will land here at various times. PR's will be accepted in some cases.
C++
680
star
2

json2cpp

Compiles JSON into static constexpr C++ data structures with nlohmann::json API
CMake
251
star
3

6502-cpp

C++
244
star
4

constexpr_all_the_things

HTML
129
star
5

cpp_weekly_game_project

C++
107
star
6

tools

C++
73
star
7

presentations

Presentations by Jason Turner at various conferences
CSS
62
star
8

cons_expr

C++
54
star
9

lambda_coroutines

A lightweight macro-based coroutine / resumable / cooperative multitasking function utility designed for C++14 lambdas.
CMake
37
star
10

nvim-config

Vim Script
22
star
11

cpp_weekly_videos

HTML
22
star
12

learning-rust

Rust
21
star
13

decent_ci

Ruby
18
star
14

lefticus

17
star
15

raycasting

Python
15
star
16

i2c_hacking

C++
14
star
17

ce_rpg_maze_thing

C++
6
star
18

4bitalu

5
star
19

thing

C++
5
star
20

BibleStudy

C++
5
star
21

parser_test

CMake
4
star
22

nu_plugin_calc

CMake
3
star
23

vimconfig

Vim configuration customized for heavy C++ with git and SWIG usage.
3
star
24

xml_thing

C++
3
star
25

WorldBuilder

C++
3
star
26

AnalysisTestSuite

Ruby
3
star
27

ChaiGame

A game engine built around the ChaiScript programming language
C++
3
star
28

consequence

C++
2
star
29

lefticus.github.io

CSS
1
star
30

test_instantiation

A cool test
CMake
1
star
31

decent_ci_energyplus_packages

1
star
32

speedgame2015

ChristianDevs Speedgame 2015
1
star
33

meetup_smallptr_refactor

1
star
34

rad

1
star
35

meetup_refactor_smallpt

C++
1
star
36

llvm-msvc

Shell
1
star
37

exastris

Automatically exported from code.google.com/p/exastris
C++
1
star
38

energyplus_build_results

1
star
39

emptycrategameengine

Automatically exported from code.google.com/p/emptycrategameengine
1
star
40

ChaiScript-BuildResults

1
star
41

OpenStudio-Archive

OpenStudio Test
1
star
42

OpenStudio-SuperBuild

Top level project for building of OpenStudio-Core and OpenStudio projects.
1
star
43

class_0

C++
1
star
44

decent_ci_results

Project to fork to get output gui for decent_ci
HTML
1
star
45

wxMozilla

wxMozilla for historical purposes
1
star
46

EmbeddedScripting

C++
1
star
47

emptycrate

HTML
1
star
48

template_test_repository

This repository is used only for testing of the other templates
CMake
1
star
49

conan-openstudio-ruby

CMake
1
star
50

swigstarterkit

Automatically exported from code.google.com/p/swigstarterkit
C++
1
star
51

OpenStudioLibTest

A project to test using installed OpenStudio Library
CMake
1
star
52

chaidraw

Automatically exported from code.google.com/p/chaidraw
C++
1
star
53

OS_EP_Bestest_Public

Ruby
1
star
54

decent_ci_runner

Ruby
1
star
55

libraycaster

CMake
1
star