From 6f0512e2a12a2daf71e05dcc5ca656598f169c6d Mon Sep 17 00:00:00 2001
From: Nobuhiro Iwamatsu <iwamatsu@debian.org>
Date: Sun, 16 Feb 2025 00:14:20 +0900
Subject: [PATCH] unilog: Add support for providing static libraries

This supports for building and providing static libraries.

Forwarded: https://github.com/Xilinx/Vitis-AI/pull/458
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@debian.org>
---
 CMakeLists.txt     |  1 +
 src/CMakeLists.txt | 12 +++++++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index cf02e9a..da71875 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,6 +20,7 @@ include(${PROJECT_SOURCE_DIR}/cmake/vai_add_pybind11_module.cmake)
 
 option(BUILD_TEST "build test" OFF)
 option(LIBGLOG_RESTRICT "find libglog restrict in install prefix" OFF)
+option(BUILD_STATIC_LIBS "Build static libraries" OFF)
 if (LIBGLOG_RESTRICT)
   message(STATUS "Find glog in restrict mode")
   find_package(glog PATHS ${CMAKE_INSTALL_PREFIX} NO_DEFAULT_PATH)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c479364..91c8e55 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -14,12 +14,22 @@
 
 aux_source_directory(. LOG_SRC_LIST)
 
-add_library(${PROJECT_NAME}
+if (NOT BUILD_STATIC_LIBS)
+add_library(${PROJECT_NAME} SHARED
   ${PROJECT_SOURCE_DIR}/include/UniLog/UniLog.hpp
   ${PROJECT_SOURCE_DIR}/include/UniLog/UniLogExport.hpp
   ${PROJECT_SOURCE_DIR}/include/UniLog/ErrorCode.hpp
   ${PROJECT_SOURCE_DIR}/include/UniLog/vitis_ai_pp.hpp
   ${LOG_SRC_LIST})
+else (NOT BUILD_STATIC_LIBS)
+add_library(${PROJECT_NAME} STATIC
+  ${PROJECT_SOURCE_DIR}/include/UniLog/UniLog.hpp
+  ${PROJECT_SOURCE_DIR}/include/UniLog/UniLogExport.hpp
+  ${PROJECT_SOURCE_DIR}/include/UniLog/ErrorCode.hpp
+  ${PROJECT_SOURCE_DIR}/include/UniLog/vitis_ai_pp.hpp
+  ${LOG_SRC_LIST})
+endif (NOT BUILD_STATIC_LIBS)
+
 set_target_properties(${PROJECT_NAME} PROPERTIES
   VERSION "${PROJECT_VERSION}"
   SOVERSION "${PROJECT_VERSION_MAJOR}")
-- 
2.47.2

