This project doesn't require any special command-line flags to build to keep things simple.
Here are the steps for building in release mode with a single-configuration generator, like the Unix Makefiles one:
cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
cmake --build build
Here are the steps for building in release mode with a multi-configuration generator, like the Visual Studio ones:
cmake -S . -B build
cmake --build build --config Release
Note: as libfork is a header-only library, there are no build targets by default. If you intended to build the tests/docs/benchmarks check out the HACKING document.
Note that MSVC by default is not standards compliant and you need to pass some
flags to make it behave properly. See the flags-windows
preset in the
CMakePresets.json file for the flags and with what
variable to provide them to CMake during configuration.
CMake supports building on Apple Silicon properly since 3.20.1. Make sure you have the latest version installed.
This project doesn't require any special command-line flags to install to keep things simple. As a prerequisite, the project has to be built with the above commands already.
The below commands require at least CMake 3.15 to run, because that is the version in which Install a Project was added.
Here is the command for installing the release mode artifacts with a single-configuration generator, like the Unix Makefiles one:
cmake --install build
Here is the command for installing the release mode artifacts with a multi-configuration generator, like the Visual Studio ones:
cmake --install build --config Release
This project exports a CMake package to be used with the find_package
command of CMake:
- Package name:
libfork
- Target name:
libfork::libfork
find_package(libfork REQUIRED)
# Declare the imported target as a build requirement using PRIVATE, where
# project_target is a target created in the consuming project
target_link_libraries(
project_target PRIVATE libfork::libfork
)
include(FetchContent)
FetchContent_Declare(
libfork
GIT_REPOSITORY https://github.com/conorwilliams/libfork.git
GIT_TAG 08b82dd97dcaadc50a32ff382b785be2869d731c
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(libfork)
target_link_libraries(
project_target PRIVATE libfork::libfork
)
Assuming you clone libfork as a submodule into external/libfork
add_subdirectory(external/libfork)
target_link_libraries(
project_target PRIVATE libfork::libfork
)
The CMAKE_INSTALL_INCLUDEDIR
is set to a path other than just include
if
the project is configured as a top level project to avoid indirectly including
other libraries when installed to a common prefix. Please review the
install-rules.cmake file for the full set of
install rules.