From 27d655687fe63cccd678b554e48bbb8fe660f2fb Mon Sep 17 00:00:00 2001
From: Andrii Osipov <aosipov@anaconda.com>
Date: Mon, 25 May 2026 04:47:45 -0700
Subject: [PATCH] win export and static build

---
 src/solvversion.c    | 10 +++++-----
 src/solvversion.h.in | 17 ++++++++++++-----
 win32/CMakeLists.txt |  4 +++-
 3 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/src/solvversion.c b/src/solvversion.c
index 51d57a6..608d813 100644
--- a/src/solvversion.c
+++ b/src/solvversion.c
@@ -7,8 +7,8 @@
 
 #include "solvversion.h"
 
-const char solv_version[] = LIBSOLV_VERSION_STRING;
-int solv_version_major = LIBSOLV_VERSION_MAJOR;
-int solv_version_minor = LIBSOLV_VERSION_MINOR;
-int solv_version_patch = LIBSOLV_VERSION_PATCH;
-const char solv_toolversion[] = LIBSOLV_TOOLVERSION;
+SOLV_API const char solv_version[] = LIBSOLV_VERSION_STRING;
+SOLV_API int solv_version_major = LIBSOLV_VERSION_MAJOR;
+SOLV_API int solv_version_minor = LIBSOLV_VERSION_MINOR;
+SOLV_API int solv_version_patch = LIBSOLV_VERSION_PATCH;
+SOLV_API const char solv_toolversion[] = LIBSOLV_TOOLVERSION;
diff --git a/src/solvversion.h.in b/src/solvversion.h.in
index 46f7922..46d2b40 100644
--- a/src/solvversion.h.in
+++ b/src/solvversion.h.in
@@ -19,11 +19,18 @@
 #define LIBSOLV_VERSION_PATCH @LIBSOLV_PATCH@
 #define LIBSOLV_VERSION (LIBSOLV_VERSION_MAJOR * 10000 + LIBSOLV_VERSION_MINOR * 100 + LIBSOLV_VERSION_PATCH)
 
-extern const char solv_version[];
-extern int solv_version_major;
-extern int solv_version_minor;
-extern int solv_version_patch;
-extern const char solv_toolversion[];
+#ifdef _WIN32
+// include win32/config.h for SOLV_API
+#include "config.h"
+#else
+#define SOLV_API
+#endif
+
+SOLV_API extern const char solv_version[];
+SOLV_API extern int solv_version_major;
+SOLV_API extern int solv_version_minor;
+SOLV_API extern int solv_version_patch;
+SOLV_API extern const char solv_toolversion[];
 
 #cmakedefine LIBSOLV_FEATURE_LINKED_PKGS
 #cmakedefine LIBSOLV_FEATURE_COMPLEX_DEPS
diff --git a/win32/CMakeLists.txt b/win32/CMakeLists.txt
index 9a87af7..f704a79 100644
--- a/win32/CMakeLists.txt
+++ b/win32/CMakeLists.txt
@@ -6,4 +6,6 @@ SET (WIN32_COMPAT_SOURCES
   ${PROJECT_SOURCE_DIR}/win32/regexec.c
   ${PROJECT_SOURCE_DIR}/win32/strfncs.c
   ${PROJECT_SOURCE_DIR}/win32/tre-mem.c
-)
\ No newline at end of file
+)
+
+INSTALL (FILES ${PROJECT_SOURCE_DIR}/win32/config.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv")
-- 
2.39.5 (Apple Git-154)

