From 6b9fc02f597fe9588815f0c5a68e97210bb9b873 Mon Sep 17 00:00:00 2001
From: Marek Roszko <mark.roszko@gmail.com>
Date: Fri, 11 Mar 2022 21:10:41 -0500
Subject: [PATCH] Switch the kiface extension on windows to native dll

Fixes issue where Windows really wants to see the DLL extension to load the resource metadata
---
 CMakeLists.txt                      | 7 ++++---
 resources/msw/cvpcb-dll.rc          | 2 +-
 resources/msw/eeschema-dll.rc       | 2 +-
 resources/msw/gerbview-dll.rc       | 2 +-
 resources/msw/pcb_calculator-dll.rc | 2 +-
 resources/msw/pcbnew-dll.rc         | 2 +-
 resources/msw/pl_editor-dll.rc      | 2 +-
 7 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 55b9924940..ef63d26cf6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -503,9 +503,10 @@ endif()
 # KIFACE_SUFFIX is the file extension used for top level program modules which
 # implement the KIFACE interface.  A valid suffix starts with a period '.'.
 
-if( false )
-    # This is the eventual situation near milestone C) of modular-kicad blueprint.
-    # Until then we use .kiface extension so we don't collide with python DSO.
+if( WIN32 )
+    # We use .kiface extension so we don't collide with python DSO. (Linux/mac issue?)
+    # Windows works fine with the native dll extension
+    # which also resolves metadata issues because windows wants to see the dll extension
     set( KIFACE_SUFFIX  ${CMAKE_SHARED_MODULE_SUFFIX} )
 else()
     # Temporary situation until we can dovetail the python DSO into the kiface DSO.
diff --git a/resources/msw/cvpcb-dll.rc b/resources/msw/cvpcb-dll.rc
index 0d4f6053f2..1d32f5ba2a 100644
--- a/resources/msw/cvpcb-dll.rc
+++ b/resources/msw/cvpcb-dll.rc
@@ -1,5 +1,5 @@
 #define RC_VER_FILE_DESCRIPTION "KiCad Dynamic Link Library " KICAD_WIN32_RC_PRODVER_STR
 #define RC_VER_INTERNALNAME "_cvpcb"
-#define RC_VER_ORIGINALFILENAME "_cvpcb.kiface"
+#define RC_VER_ORIGINALFILENAME "_cvpcb.dll"
 
 #include "kiwin32-dll.rc"
diff --git a/resources/msw/eeschema-dll.rc b/resources/msw/eeschema-dll.rc
index 2f45bb269e..ee844702a0 100644
--- a/resources/msw/eeschema-dll.rc
+++ b/resources/msw/eeschema-dll.rc
@@ -1,4 +1,4 @@
 #define RC_VER_FILE_DESCRIPTION "KiCad Schematic Editor " KICAD_WIN32_RC_PRODVER_STR
 #define RC_VER_INTERNALNAME "_eeschema"
-#define RC_VER_ORIGINALFILENAME "_eeschema.kiface"
+#define RC_VER_ORIGINALFILENAME "_eeschema.dll"
 #include "kiwin32-dll.rc"
diff --git a/resources/msw/gerbview-dll.rc b/resources/msw/gerbview-dll.rc
index 3d0f6503cd..987653773e 100644
--- a/resources/msw/gerbview-dll.rc
+++ b/resources/msw/gerbview-dll.rc
@@ -1,4 +1,4 @@
 #define RC_VER_FILE_DESCRIPTION "KiCad Gerber Viewer " KICAD_WIN32_RC_PRODVER_STR
 #define RC_VER_INTERNALNAME "_gerbview"
-#define RC_VER_ORIGINALFILENAME "_gerbview.kiface"
+#define RC_VER_ORIGINALFILENAME "_gerbview.dll"
 #include "kiwin32-dll.rc"
diff --git a/resources/msw/pcb_calculator-dll.rc b/resources/msw/pcb_calculator-dll.rc
index d9a3f9b811..d050d34f05 100644
--- a/resources/msw/pcb_calculator-dll.rc
+++ b/resources/msw/pcb_calculator-dll.rc
@@ -1,4 +1,4 @@
 #define RC_VER_FILE_DESCRIPTION "KiCad PCB Calculator " KICAD_WIN32_RC_PRODVER_STR
 #define RC_VER_INTERNALNAME "_pcb_calculator"
-#define RC_VER_ORIGINALFILENAME "_pcb_calculator.kiface"
+#define RC_VER_ORIGINALFILENAME "_pcb_calculator.dll"
 #include "kiwin32-dll.rc"
diff --git a/resources/msw/pcbnew-dll.rc b/resources/msw/pcbnew-dll.rc
index 932ecfea69..f4ddb287b9 100644
--- a/resources/msw/pcbnew-dll.rc
+++ b/resources/msw/pcbnew-dll.rc
@@ -1,4 +1,4 @@
 #define RC_VER_FILE_DESCRIPTION "KiCad PCB Editor " KICAD_WIN32_RC_PRODVER_STR
 #define RC_VER_INTERNALNAME "_pcbnew"
-#define RC_VER_ORIGINALFILENAME "_pcbnew.kiface"
+#define RC_VER_ORIGINALFILENAME "_pcbnew.dll"
 #include "kiwin32-dll.rc"
\ No newline at end of file
diff --git a/resources/msw/pl_editor-dll.rc b/resources/msw/pl_editor-dll.rc
index d84cef94e4..539338796a 100644
--- a/resources/msw/pl_editor-dll.rc
+++ b/resources/msw/pl_editor-dll.rc
@@ -1,4 +1,4 @@
 #define RC_VER_FILE_DESCRIPTION "KiCad Drawing Sheet Editor " KICAD_WIN32_RC_PRODVER_STR
 #define RC_VER_INTERNALNAME "_pl_editor"
-#define RC_VER_ORIGINALFILENAME "_pl_editor.kiface"
+#define RC_VER_ORIGINALFILENAME "_pl_editor.dll"
 #include "kiwin32-dll.rc"