Git Product home page Git Product logo

concept_map's Introduction

README

https://github.com/steve-downey/scratch/actions/workflows/ci.yml/badge.svg

1 A Base ‘scratch’ template repository

Scratch work

The repository is also my work on, if not ‘best’, at least good practices with CMake and emerging consensus on file and directory layout.

2 CMake Workflow – targets.mk

The targets.mk Makefile embodies the normal cmake workflow, making sure the build area is configured for a particular toolchain, compile is run after that, that tests are rebuilt and run after compiling, and so forth.

The Ninja multi-config generator is used, and several configs are created in the build area;

  • RelWithDebInfo
  • Debug
  • Tsan
  • Asan

The default build is RelWithDebInfo. Other options are selected by the CONFIG paramter.

make CONFIG=Asan

The top level Makefile is executable, and is symlinked as build, so equivalently

./build CONFIG=Asan

The build is done, by default, in ../cmake.bld/$(dirname)/build, controlled by the PROJECT variable.

Additional CMake flags can be supplied by CMAKE_FLAGS

3 Submodules

A few git submodules I find useful are linked in.

4 Docker

The workflow can be forwarded to a Docker image, instead of being built in the host system.

The target use-docker enables this by creating the flag file .use-docker

The base image can be created by using the definition in docker-inf/docker-cxx-dev/ with the Makefile provided.

The target docker-rebuild will create an image for this project, by default on the image steve-downey/cxx-dev:latest but can be overridden by setting BASE.

The targets in targets.mk can run in either the host or in a docker container. The targets in Makefile either help build or control that image, or forward to targets.mk.

concept_map's People

Contributors

steve-downey avatar

Stargazers

Ray Manaloto avatar

Watchers

 avatar  avatar Ray Manaloto 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.