From 46976e4f8b37202795ff2ca1a814506d7416365e Mon Sep 17 00:00:00 2001
From: Pascal Palenda <pascal.palenda@akustik.rwth-aachen.de>
Date: Wed, 15 Feb 2023 10:48:33 +0100
Subject: [PATCH] Add example useage to README

---
 README.md | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

diff --git a/README.md b/README.md
index 7ba860d..0031da1 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,78 @@ A collection of CMake helper functions and tools that are common to all IHTA C++
 - `ihta_add_test`: Adds a unit test executable target including downloading the dependencies, CTest registration and optional code coverage.
 - `build_doc`: Builds doxygen documentation with nice styling.
 
+## Usage
+
+Here is an example of the usage:
+
+```cmake
+cmake_minimum_required(VERSION 3.20)
+
+# optionally disable code coverage
+set(IHTA_COMMON_ENABLE_CODE_COVERAGE ON)
+
+include (FetchContent)
+FetchContent_Declare (
+    IHTACMakeCommon
+    GIT_REPOSITORY https://git.rwth-aachen.de/ihta/cmake/ihtacmakecommon.git
+    GIT_TAG main
+)
+FetchContent_MakeAvailable (IHTACMakeCommon)
+
+init_project ()
+
+project (AwesomeProjectName
+    LANGUAGES CXX C
+    VERSION 1.0.0
+)
+
+CPMAddPackage("gh:gabime/spdlog@1.8.2")
+
+# Add the library target with unit test
+ihta_add_library (
+    NAME ${PROJECT_NAME}
+    SOURCES include/project.h src/project.cpp
+    NAMESPACE IHTA
+    IDE_FOLDER ${PROJECT_NAME}
+    LIBRARY_TYPE STATIC
+    TEST_INTERNALS
+    OUT_LIB LIB_TARGET
+    OUT_TEST TEST_TARGET
+    TEST_SOURCES test/test.cpp
+)
+
+# Add external library link to library
+target_link_libraries(${LIB_TARGET} PRIVATE spdlog)
+
+# Add external library link to unit test
+target_link_libraries(${TEST_TARGET} PRIVATE OtherExternalLibrary)
+
+# Install & export
+packageProject (
+    NAME ${PROJECT_NAME}
+    VERSION ${PROJECT_VERSION}
+    BINARY_DIR ${PROJECT_BINARY_DIR}
+    INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include
+    INCLUDE_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+    DEPENDENCIES "ExternalLibrary"
+    COMPATIBILITY ExactVersion
+    NAMESPACE IHTA
+    DISABLE_VERSION_SUFFIX YES
+    VERSION_HEADER "AwesomeProjectName_version.h"
+    EXPORT_HEADER "AwesomeProjectName_export.h"
+)
+
+# Needed so the object library knows the location of the generated headers from packageProject.
+target_include_directories (${LIB_TARGET} PUBLIC "$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/PackageProjectInclude>")
+target_include_directories (${TEST_TARGET} PUBLIC "$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/PackageProjectInclude>")
+
+build_doc (
+    ADD_DEV_SECTION OFF
+    README_MAINPAGE ${CMAKE_CURRENT_SOURCE_DIR}/README.md
+    SOURCES "include" "src" "docs"
+)
+```
+
 ## References
 
 - [cpp_coverage](https://github.com/ekcoh/cpp-coverage/blob/master/cmake/cpp_coverage.cmake)
-- 
GitLab