c++ sdk: Allow to use an external shared libfmt

On systems where libftm is already available as library, rebuilding it is
useless. Instead use the ready available libfmt.

To not introduce a regression in building the sdk, the new option
BASYX_BUILD_LIBFMT is set to "ON". Users can switch the option off if desired.

Signed-off-by: Tobias Klausmann <tobias.klausmann@lenze.com>
diff --git a/sdks/c++/basys.sdk.cc/CMakeLists.txt b/sdks/c++/basys.sdk.cc/CMakeLists.txt
index 4ab7ca1..35b3684 100644
--- a/sdks/c++/basys.sdk.cc/CMakeLists.txt
+++ b/sdks/c++/basys.sdk.cc/CMakeLists.txt
@@ -44,6 +44,8 @@
 set(BASYX_UTILITY_PROJECTS ON CACHE BOOL "Create utility targets")
 set(BASYX_DEBUG_PRINT_FRAMES OFF CACHE BOOL "Print BaSyx frames")
 
+option(BASYX_BUILD_LIBFMT "Wether to build external, yet included library libfmt" ON)
+
 ### Compiler settings ###
 
 set(CMAKE_CXX_STANDARD 11)
@@ -63,6 +65,25 @@
 find_package(Threads)
 
 ###############################################
+###           Library Directory             ###
+###############################################
+
+if(${BASYX_BUILD_LIBFMT})
+   add_subdirectory(lib/fmt)
+   add_library(lib::fmt ALIAS fmt)
+   add_library(lib::fmt-header-only ALIAS fmt-header-only)
+else()
+   find_package(fmt REQUIRED)
+endif()
+
+add_subdirectory(lib/json)
+
+if(${BASYX_BUILD_TESTS})
+    add_subdirectory(lib/gtest)
+    include(GoogleTest)
+endif()
+
+###############################################
 ###           Source Directory              ###
 ###############################################
 
@@ -74,21 +95,6 @@
 add_subdirectory(src/vab)
 
 ###############################################
-###           Library Directory             ###
-###############################################
-
-add_subdirectory(lib/fmt)
-add_library(lib::fmt ALIAS fmt)
-add_library(lib::fmt-header-only ALIAS fmt-header-only)
-
-add_subdirectory(lib/json)
-
-if(${BASYX_BUILD_TESTS})
-    add_subdirectory(lib/gtest)
-    include(GoogleTest)
-endif()
-
-###############################################
 ###           Test Directory                ###
 ###############################################
 
diff --git a/sdks/c++/basys.sdk.cc/src/logging/CMakeLists.txt b/sdks/c++/basys.sdk.cc/src/logging/CMakeLists.txt
index 662ef1b..db49dde 100644
--- a/sdks/c++/basys.sdk.cc/src/logging/CMakeLists.txt
+++ b/sdks/c++/basys.sdk.cc/src/logging/CMakeLists.txt
@@ -13,7 +13,7 @@
 )
 
 target_include_directories(basyx_log PUBLIC ${PROJECT_SOURCE_DIR}) 
-target_link_libraries(basyx_log basyx::abstraction basyx::util lib::fmt)
+target_link_libraries(basyx_log basyx::abstraction basyx::util fmt)
 add_library(basyx::log ALIAS basyx_log)