Software Architecture with C++: Designing Robust C++ Systems with Modern Architectural Practices, Second Edition, published by Packt
Install the following software:
- CMake 3.28
- Conan 2
- GCC 15, Clang 20, MSVC 19.44
The C++ compiler in your IDE and the Conan profile must be compatible to compile examples from the IDE.
Assuming you're on Linux or using WSL. The examples are developed on Linux, but their compilation and functionality are also tested on macOS and Windows.
Configure a local Conan profile and remotes by running:
rm -rf ./build/
conan profile detect --name ./build/conan_profileMake sure that the profile section [settings] contains:
arch=x86_64
compiler=gcc
compiler.libcxx=libstdc++11
compiler.version=15
os=Linux
To build the project, configure the Conan profile as described above, cd to its directory, and then run:
cd build
conan install .. --build=missing -s build_type=Release -pr:a=./conan_profile -of .
cmake .. -DCMAKE_BUILD_TYPE=Release # build type must match Conan's
cmake --build .If GCC 15 is not your default compiler, you can tell CMake to use it with the CMAKE_CXX_COMPILER flag:
cd build
conan install .. --build=missing -s build_type=Release -pr:a=./conan_profile -of .
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=`which g++-15` # build type must match Conan's
cmake --build .To pass the settings directly without a Conan profile, use the command line option --settings:all or -s:a, and the keys arch, build_type, compiler, compiler.cppstd, compiler.libcxx, compiler.version, os:
rm -rf ./build/ && mkdir build && cd build
conan install .. --build=missing -s:a build_type=Release -s:a compiler=gcc -of .
cmake .. -DCMAKE_BUILD_TYPE=Release # build type must match Conan's
cmake --build .To apply Conan dependency as a CMake Dependency Provider, clone this Git repository and then run the next command:
rm -rf ./build/cmake-conan
git clone https://github.com/conan-io/cmake-conan.git build/cmake-conancmake -S . -B build -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=./build/cmake-conan/conan_provider.cmake -DCMAKE_BUILD_TYPE=Release
cmake --build build