mpg123: cmake: create libmpg123-0.dll/libout123-0.dll/libsyn123-0.dll on Windows (autotools compat

From 431c8d4ef50d7710b8447facc16528c521696ed6 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Mon, 4 Dec 2023 21:00:15 +0100
Subject: [PATCH] cmake: create libmpg123-0.dll/libout123-0.dll/libsyn123-0.dll
 on Windows (autotools compat

---
 ports/cmake/src/libmpg123/CMakeLists.txt | 6 ++++++
 ports/cmake/src/libout123/CMakeLists.txt | 6 ++++++
 ports/cmake/src/libsyn123/CMakeLists.txt | 6 ++++++
 3 files changed, 18 insertions(+)

diff --git a/ports/cmake/src/libmpg123/CMakeLists.txt b/ports/cmake/src/libmpg123/CMakeLists.txt
index 86fc17c..4e9e34e 100644
--- a/ports/cmake/src/libmpg123/CMakeLists.txt
+++ b/ports/cmake/src/libmpg123/CMakeLists.txt
@@ -211,6 +211,12 @@ elseif(MACHINE STREQUAL "generic")
 endif()
 
 set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME mpg123)
+if(BUILD_SHARED_LIBS AND WIN32)
+    # FIXME: keep soversion in sync with autotools
+    set_property(TARGET ${TARGET} PROPERTY RUNTIME_OUTPUT_NAME "mpg123-0")
+    # Requires CMake 3.27, so not sufficient
+    set_property(TARGET ${TARGET} PROPERTY DLL_NAME_WITH_SOVERSION FALSE)
+endif()
 
 target_compile_definitions(${TARGET} PRIVATE
     $<$<BOOL:$<TARGET_PROPERTY:POSITION_INDEPENDENT_CODE>>:PIC>)
diff --git a/ports/cmake/src/libout123/CMakeLists.txt b/ports/cmake/src/libout123/CMakeLists.txt
index 5671036..cc161d7 100644
--- a/ports/cmake/src/libout123/CMakeLists.txt
+++ b/ports/cmake/src/libout123/CMakeLists.txt
@@ -19,6 +19,12 @@ add_library(${TARGET}
     $<$<BOOL:${USE_MODULES}>:$<TARGET_OBJECTS:compat_dl>>)
 
 set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME out123)
+if(BUILD_SHARED_LIBS AND WIN32)
+    # FIXME: keep soversion in sync with autotools
+    set_property(TARGET ${TARGET} PROPERTY RUNTIME_OUTPUT_NAME "out123-0")
+    # Requires CMake 3.27, so not sufficient
+    set_property(TARGET ${TARGET} PROPERTY DLL_NAME_WITH_SOVERSION FALSE)
+endif()
 
 target_link_libraries(${TARGET} PRIVATE
     $<TARGET_NAME_IF_EXISTS:defaultmodule>
diff --git a/ports/cmake/src/libsyn123/CMakeLists.txt b/ports/cmake/src/libsyn123/CMakeLists.txt
index 89558f5..62c85d0 100644
--- a/ports/cmake/src/libsyn123/CMakeLists.txt
+++ b/ports/cmake/src/libsyn123/CMakeLists.txt
@@ -16,6 +16,12 @@ add_library(${TARGET}
     $<TARGET_OBJECTS:compat_str>)
 
 set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME syn123)
+if(BUILD_SHARED_LIBS AND WIN32)
+    # FIXME: keep soversion in sync with autotools
+    set_property(TARGET ${TARGET} PROPERTY RUNTIME_OUTPUT_NAME "syn123-0")
+    # Requires CMake 3.27, so not sufficient
+    set_property(TARGET ${TARGET} PROPERTY DLL_NAME_WITH_SOVERSION FALSE)
+endif()
 
 target_include_directories(${TARGET} INTERFACE
     "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"