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)