Go to file
Ron Hough a7018ac419 Updates README with output from `--help` argument 2023-03-11 19:31:02 -06:00
cmake Adds rudimentary DEB package creation 2023-03-04 19:03:34 -06:00
include Adds an extremely basic shared library 2023-03-11 13:50:45 -06:00
src Adds an extremely basic shared library 2023-03-11 13:50:45 -06:00
.gitignore Adds rudimentary DEB package creation 2023-03-04 19:03:34 -06:00
CMakeLists.txt Adds an extremely basic shared library 2023-03-11 13:50:45 -06:00
README.md Updates README with output from `--help` argument 2023-03-11 19:31:02 -06:00
build.sh Adds deb package build to build script 2023-03-04 19:06:52 -06:00
conanfile.txt Use conan to add dependency on CLI11 2023-03-04 14:28:46 -06:00

README.md

A basic C++ exercise which uses conan to satisfy dependencies before building a shared library and an executable that links it. Also produces a .deb package which installs the executable, library, and public headers.

Prerequisites

  • Ubuntu 22.04 (or equivalent)
  • Additional required packages:
    • g++
    • cmake
    • python3-venv

Setup

Create a python virtual environment, install conan, and create a default profile:

python3 -m venv conan.venv
source conan.venv/bin/activate
pip install conan
conan profile detect

Building and running

  1. To build, run:
    ./build.sh
    
  2. The build command will generate a deb package in the _packages directory. To install (to /usr/local) run:
    sudo dpkg -i _packages/_packages/cppchallenge_1.0.0_*.deb
    sudo ldconfig
    
    TODO: The sudo ldconfig step should be added to the deb package postinst step...
  3. To run:
    $ cppchallenge
    Hello World!
    File name is: aname
    $ cppchallenge --help
    Just a simple 'hello'
    Usage: cppchallenge [OPTIONS]
    
    Options:
      -h,--help                   Print this help message and exit