aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/ngspice
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/ngspice
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/ngspice')
-rw-r--r--vcpkg/ports/ngspice/Fix-C2065.patch170
-rw-r--r--vcpkg/ports/ngspice/portfile.cmake89
-rw-r--r--vcpkg/ports/ngspice/remove-64-in-codemodel-name.patch131
-rw-r--r--vcpkg/ports/ngspice/remove-post-build.patch230
-rw-r--r--vcpkg/ports/ngspice/use-winbison-sharedspice.patch19
-rw-r--r--vcpkg/ports/ngspice/use-winbison-vngspice.patch50
-rw-r--r--vcpkg/ports/ngspice/vcpkg.json23
7 files changed, 712 insertions, 0 deletions
diff --git a/vcpkg/ports/ngspice/Fix-C2065.patch b/vcpkg/ports/ngspice/Fix-C2065.patch
new file mode 100644
index 0000000..5823d4f
--- /dev/null
+++ b/vcpkg/ports/ngspice/Fix-C2065.patch
@@ -0,0 +1,170 @@
+diff --git a/visualc/sharedspice.vcxproj b/visualc/sharedspice.vcxproj
+index ba979bd..ce9d4df 100644
+--- a/visualc/sharedspice.vcxproj
++++ b/visualc/sharedspice.vcxproj
+@@ -113,7 +113,7 @@
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;..\src\spicelib\parser;src\include;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;SHARED_MODULE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;SHARED_MODULE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessToFile>false</PreprocessToFile>
+ <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
+ <MinimalRebuild>false</MinimalRebuild>
+@@ -157,7 +157,7 @@
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;..\src\spicelib\parser;src\include;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;SHARED_MODULE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;SHARED_MODULE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+@@ -199,7 +199,7 @@
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\osdi;..\src\frontend;..\src\spicelib\devices;tmp-bison;..\src\spicelib\parser;src\include;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;SHARED_MODULE;CONFIG64;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;SHARED_MODULE;CONFIG64;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessToFile>false</PreprocessToFile>
+ <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
+ <MinimalRebuild>false</MinimalRebuild>
+@@ -249,7 +249,7 @@
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\osdi;..\src\frontend;..\src\spicelib\devices;tmp-bison;..\src\spicelib\parser;src\include;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;SHARED_MODULE;CONFIG64;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;SHARED_MODULE;CONFIG64;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+@@ -294,7 +294,7 @@
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;..\src\spicelib\parser;src\include;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;SHARED_MODULE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;SHARED_MODULE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+@@ -339,7 +339,7 @@
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\osdi;..\src\frontend;..\src\spicelib\devices;tmp-bison;..\src\spicelib\parser;src\include;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;SHARED_MODULE;CONFIG64;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;SHARED_MODULE;CONFIG64;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+diff --git a/visualc/vngspice.vcxproj b/visualc/vngspice.vcxproj
+index 0df1dd5..67d2029 100644
+--- a/visualc/vngspice.vcxproj
++++ b/visualc/vngspice.vcxproj
+@@ -212,7 +212,7 @@
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+@@ -259,7 +259,7 @@
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+@@ -310,7 +310,7 @@
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\osdi;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;CONFIG64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;CONFIG64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+@@ -362,7 +362,7 @@
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONFIG64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONFIG64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+@@ -413,7 +413,7 @@
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+@@ -460,7 +460,7 @@
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+@@ -510,7 +510,7 @@
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;CONSOLE;CONFIG64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;CONSOLE;CONFIG64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+@@ -562,7 +562,7 @@
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;CONFIG64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;CONFIG64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+@@ -614,7 +614,7 @@
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+@@ -668,7 +668,7 @@
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;CONFIG64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;CONFIG64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+@@ -724,7 +724,7 @@
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;USE_OMP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;USE_OMP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+@@ -778,7 +778,7 @@
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;CONFIG64;USE_OMP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;CONFIG64;USE_OMP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
diff --git a/vcpkg/ports/ngspice/portfile.cmake b/vcpkg/ports/ngspice/portfile.cmake
new file mode 100644
index 0000000..2a0f102
--- /dev/null
+++ b/vcpkg/ports/ngspice/portfile.cmake
@@ -0,0 +1,89 @@
+vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
+
+# ngspice produces self-contained DLLs
+set(VCPKG_CRT_LINKAGE static)
+
+vcpkg_from_sourceforge(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ngspice/ng-spice-rework
+ REF ${VERSION}
+ FILENAME "ngspice-${VERSION}.tar.gz"
+ SHA512 fb0960cc9fcde1871fad82571cacebb1f5cce09ee3297cc938a24b88173ed102a2cb3f246599cdfbde7275e45e3d551edd0368e3ba6e79c592937c4cc466325e
+ PATCHES
+ use-winbison-sharedspice.patch
+ use-winbison-vngspice.patch
+ remove-post-build.patch
+ remove-64-in-codemodel-name.patch
+ Fix-C2065.patch
+)
+
+vcpkg_find_acquire_program(BISON)
+
+get_filename_component(BISON_DIR "${BISON}" DIRECTORY)
+vcpkg_add_to_path(PREPEND "${BISON_DIR}")
+
+# Sadly, vcpkg globs .libs inside install_msbuild and whines that the 47 year old SPICE format isn't a MSVC lib ;)
+# We need to kill them off first before the source tree is copied to a tmp location by install_msbuild
+
+file(REMOVE_RECURSE "${SOURCE_PATH}/contrib")
+file(REMOVE_RECURSE "${SOURCE_PATH}/examples")
+file(REMOVE_RECURSE "${SOURCE_PATH}/man")
+file(REMOVE_RECURSE "${SOURCE_PATH}/tests")
+
+# this builds the main dll
+vcpkg_msbuild_install(
+ SOURCE_PATH "${SOURCE_PATH}"
+ # install_msbuild swaps x86 for win32(bad) if we dont force our own setting
+ PLATFORM ${TRIPLET_SYSTEM_ARCH}
+ PROJECT_SUBPATH visualc/sharedspice.sln
+ TARGET Build
+)
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
+file(COPY "${SOURCE_PATH}/src/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include")
+
+if("codemodels" IN_LIST FEATURES)
+ # vngspice generates "codemodels" to enhance simulation capabilities
+ # we cannot use install_msbuild as they output with ".cm" extensions on purpose
+ vcpkg_msbuild_install(
+ SOURCE_PATH "${SOURCE_PATH}"
+ PROJECT_SUBPATH visualc/vngspice.sln
+ # build_msbuild swaps x86 for win32(bad) if we dont force our own setting
+ PLATFORM ${TRIPLET_SYSTEM_ARCH}
+ TARGET Build
+ )
+
+ # ngspice oddly has solution configs of x64 and x86 but
+ # output folders of x64 and win32
+ if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64)
+ set(OUT_ARCH x64)
+ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x86)
+ set(OUT_ARCH Win32)
+ else()
+ message(FATAL_ERROR "Unsupported target architecture")
+ endif()
+
+ #put the code models in the intended location
+ if(NOT VCPKG_BUILD_TYPE)
+ file(GLOB NGSPICE_CODEMODELS_DEBUG
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/visualc/codemodels/${OUT_ARCH}/Debug/*.cm"
+ )
+ file(COPY ${NGSPICE_CODEMODELS_DEBUG} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/ngspice")
+ endif()
+
+ file(GLOB NGSPICE_CODEMODELS_RELEASE
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/visualc/codemodels/${OUT_ARCH}/Release/*.cm"
+ )
+ file(COPY ${NGSPICE_CODEMODELS_RELEASE} DESTINATION "${CURRENT_PACKAGES_DIR}/lib/ngspice")
+
+ # copy over spinit (spice init)
+ file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/visualc/spinit_all" DESTINATION "${CURRENT_PACKAGES_DIR}/share/ngspice")
+ file(RENAME "${CURRENT_PACKAGES_DIR}/share/ngspice/spinit_all" "${CURRENT_PACKAGES_DIR}/share/ngspice/spinit")
+endif()
+
+# Unforunately install_msbuild isn't able to dual include directories that effectively layer
+file(GLOB NGSPICE_INCLUDES "${SOURCE_PATH}/visualc/src/include/ngspice/*")
+file(COPY ${NGSPICE_INCLUDES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/ngspice")
+
+# This gets copied by install_msbuild but should not be shared
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/cppduals")
diff --git a/vcpkg/ports/ngspice/remove-64-in-codemodel-name.patch b/vcpkg/ports/ngspice/remove-64-in-codemodel-name.patch
new file mode 100644
index 0000000..eb5e774
--- /dev/null
+++ b/vcpkg/ports/ngspice/remove-64-in-codemodel-name.patch
@@ -0,0 +1,131 @@
+From dc6b6c0aa4205047e9fd052c401f3f357d83ef57 Mon Sep 17 00:00:00 2001
+From: Marek Roszko <mark.roszko@gmail.com>
+Date: Thu, 12 Aug 2021 22:26:43 -0400
+Subject: [PATCH] Remove 64 in filename output of codemodels
+
+---
+ visualc/xspice/analog.vcxproj | 4 ++--
+ visualc/xspice/digital.vcxproj | 4 ++--
+ visualc/xspice/spice2poly.vcxproj | 4 ++--
+ visualc/xspice/table.vcxproj | 4 ++--
+ visualc/xspice/xtradev.vcxproj | 4 ++--
+ visualc/xspice/xtraevt.vcxproj | 4 ++--
+ 6 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/visualc/xspice/analog.vcxproj b/visualc/xspice/analog.vcxproj
+index cf65a37..8b320ce 100644
+--- a/visualc/xspice/analog.vcxproj
++++ b/visualc/xspice/analog.vcxproj
+@@ -77,12 +77,12 @@
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+- <TargetName>$(ProjectName)64</TargetName>
++ <TargetName>$(ProjectName)</TargetName>
+ <GenerateManifest>true</GenerateManifest>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+- <TargetName>$(ProjectName)64</TargetName>
++ <TargetName>$(ProjectName)</TargetName>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+diff --git a/visualc/xspice/digital.vcxproj b/visualc/xspice/digital.vcxproj
+index 87f4802..7722ce6 100644
+--- a/visualc/xspice/digital.vcxproj
++++ b/visualc/xspice/digital.vcxproj
+@@ -77,12 +77,12 @@
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+- <TargetName>$(ProjectName)64</TargetName>
++ <TargetName>$(ProjectName)</TargetName>
+ <GenerateManifest>true</GenerateManifest>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+- <TargetName>$(ProjectName)64</TargetName>
++ <TargetName>$(ProjectName)</TargetName>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+diff --git a/visualc/xspice/spice2poly.vcxproj b/visualc/xspice/spice2poly.vcxproj
+index c92471b..786ff7e 100644
+--- a/visualc/xspice/spice2poly.vcxproj
++++ b/visualc/xspice/spice2poly.vcxproj
+@@ -77,12 +77,12 @@
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+- <TargetName>$(ProjectName)64</TargetName>
++ <TargetName>$(ProjectName)</TargetName>
+ <GenerateManifest>true</GenerateManifest>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+- <TargetName>$(ProjectName)64</TargetName>
++ <TargetName>$(ProjectName)</TargetName>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+diff --git a/visualc/xspice/table.vcxproj b/visualc/xspice/table.vcxproj
+index fb4791c..ad3ee03 100644
+--- a/visualc/xspice/table.vcxproj
++++ b/visualc/xspice/table.vcxproj
+@@ -77,12 +77,12 @@
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+- <TargetName>$(ProjectName)64</TargetName>
++ <TargetName>$(ProjectName)</TargetName>
+ <GenerateManifest>true</GenerateManifest>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+- <TargetName>$(ProjectName)64</TargetName>
++ <TargetName>$(ProjectName)</TargetName>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+diff --git a/visualc/xspice/xtradev.vcxproj b/visualc/xspice/xtradev.vcxproj
+index 6f0197f..53975b0 100644
+--- a/visualc/xspice/xtradev.vcxproj
++++ b/visualc/xspice/xtradev.vcxproj
+@@ -77,12 +77,12 @@
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+- <TargetName>$(ProjectName)64</TargetName>
++ <TargetName>$(ProjectName)</TargetName>
+ <GenerateManifest>true</GenerateManifest>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+- <TargetName>$(ProjectName)64</TargetName>
++ <TargetName>$(ProjectName)</TargetName>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+diff --git a/visualc/xspice/xtraevt.vcxproj b/visualc/xspice/xtraevt.vcxproj
+index d5741e7..3177a91 100644
+--- a/visualc/xspice/xtraevt.vcxproj
++++ b/visualc/xspice/xtraevt.vcxproj
+@@ -77,12 +77,12 @@
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+- <TargetName>$(ProjectName)64</TargetName>
++ <TargetName>$(ProjectName)</TargetName>
+ <GenerateManifest>true</GenerateManifest>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+- <TargetName>$(ProjectName)64</TargetName>
++ <TargetName>$(ProjectName)</TargetName>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+--
+2.32.0.windows.2
+
diff --git a/vcpkg/ports/ngspice/remove-post-build.patch b/vcpkg/ports/ngspice/remove-post-build.patch
new file mode 100644
index 0000000..2a9d40b
--- /dev/null
+++ b/vcpkg/ports/ngspice/remove-post-build.patch
@@ -0,0 +1,230 @@
+From 363737b9e0e5c2f9de85a0caf641204e638115e3 Mon Sep 17 00:00:00 2001
+From: Marek Roszko <mark.roszko@gmail.com>
+Date: Thu, 12 Aug 2021 22:09:34 -0400
+Subject: [PATCH] Remove post build events that copy files out of the tree
+
+---
+ visualc/vngspice-fftw.vcxproj | 24 ------------------------
+ visualc/vngspice.vcxproj | 17 +++++------------
+ 2 files changed, 5 insertions(+), 36 deletions(-)
+
+diff --git a/visualc/vngspice-fftw.vcxproj b/visualc/vngspice-fftw.vcxproj
+index 14773c8..178aa73 100644
+--- a/visualc/vngspice-fftw.vcxproj
++++ b/visualc/vngspice-fftw.vcxproj
+@@ -238,8 +238,6 @@ lib /machine:x86 /def:..\..\fftw-3.3-dll32\libfftw3-3.def /out:$(IntDir)libfftw3
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- copy /y "..\..\fftw-3.3-dll32\libfftw3-3.dll" "$(OutDir)"
+- make-install-vngspiced.bat $(OutDir) fftw
+ </Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+@@ -289,8 +287,6 @@ lib /machine:x86 /def:..\..\fftw-3.3-dll32\libfftw3-3.def /out:$(IntDir)libfftw3
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- copy /y "..\..\fftw-3.3-dll32\libfftw3-3.dll" "$(OutDir)"
+- make-install-vngspice.bat $(OutDir) fftw
+ </Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+@@ -337,8 +333,6 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- copy /y "..\..\fftw-3.3-dll64\libfftw3-3.dll" "$(OutDir)"
+- make-install-vngspiced.bat $(OutDir) fftw 64
+ </Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+@@ -393,8 +387,6 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- copy /y "..\..\fftw-3.3-dll64\libfftw3-3.dll" "$(OutDir)"
+- make-install-vngspice.bat $(OutDir) fftw 64
+ </Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+@@ -438,8 +430,6 @@ lib /machine:x86 /def:..\..\fftw-3.3-dll32\libfftw3-3.def /out:$(IntDir)libfftw3
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- copy /y "..\..\fftw-3.3-dll32\libfftw3-3.dll" "$(OutDir)"
+- make-install-vngspiced.bat $(OutDir) fftw
+ </Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+@@ -489,8 +479,6 @@ lib /machine:x86 /def:..\..\fftw-3.3-dll32\libfftw3-3.def /out:$(IntDir)libfftw3
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- copy /y "..\..\fftw-3.3-dll32\libfftw3-3.dll" "$(OutDir)"
+- make-install-vngspice.bat $(OutDir) fftw
+ </Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+@@ -537,8 +525,6 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- copy /y "..\..\fftw-3.3-dll64\libfftw3-3.dll" "$(OutDir)"
+- make-install-vngspiced.bat $(OutDir) fftw 64
+ </Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+@@ -591,8 +577,6 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- copy /y "..\..\fftw-3.3-dll64\libfftw3-3.dll" "$(OutDir)"
+- make-install-vngspice.bat $(OutDir) fftw 64
+ </Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+@@ -643,8 +627,6 @@ lib /machine:x86 /def:..\..\fftw-3.3-dll32\libfftw3-3.def /out:$(IntDir)libfftw3
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- copy /y "..\..\fftw-3.3-dll32\libfftw3-3.dll" "$(OutDir)"
+- make-install-vngspice.bat $(OutDir) fftw
+ </Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+@@ -700,8 +682,6 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- copy /y "..\..\fftw-3.3-dll64\libfftw3-3.dll" "$(OutDir)"
+- make-install-vngspice.bat $(OutDir) fftw 64
+ </Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+@@ -752,8 +732,6 @@ lib /machine:x86 /def:..\..\fftw-3.3-dll32\libfftw3-3.def /out:$(IntDir)libfftw3
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- copy /y "..\..\fftw-3.3-dll32\libfftw3-3.dll" "$(OutDir)"
+- make-install-vngspice.bat $(OutDir) fftw
+ </Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+@@ -807,8 +785,6 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- copy /y "..\..\fftw-3.3-dll64\libfftw3-3.dll" "$(OutDir)"
+- make-install-vngspice.bat $(OutDir) fftw 64
+ </Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+diff --git a/visualc/vngspice.vcxproj b/visualc/vngspice.vcxproj
+index 7b6ac0b..7190c1e 100644
+--- a/visualc/vngspice.vcxproj
++++ b/visualc/vngspice.vcxproj
+@@ -242,7 +242,7 @@
+ <LargeAddressAware>true</LargeAddressAware>
+ </Link>
+ <PostBuildEvent>
+- <Command>make-install-vngspiced.bat $(OutDir)</Command>
++ <Command></Command>
+ </PostBuildEvent>
+ <Manifest>
+ <AdditionalManifestFiles>$(ProjectDir)ngspice-x86.exe.manifest</AdditionalManifestFiles>
+@@ -293,7 +293,6 @@
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- make-install-vngspice.bat $(OutDir)
+ </Command>
+ </PostBuildEvent>
+ <Manifest>
+@@ -342,7 +341,6 @@
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- make-install-vngspiced.bat $(OutDir) 64
+ </Command>
+ </PostBuildEvent>
+ <Manifest>
+@@ -399,7 +397,6 @@
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- make-install-vngspice.bat $(OutDir) 64
+ </Command>
+ </PostBuildEvent>
+ <Manifest>
+@@ -444,7 +441,7 @@
+ <LargeAddressAware>true</LargeAddressAware>
+ </Link>
+ <PostBuildEvent>
+- <Command>make-install-vngspiced.bat $(OutDir)</Command>
++ <Command></Command>
+ </PostBuildEvent>
+ <Manifest>
+ <AdditionalManifestFiles>$(ProjectDir)ngspice-x86.exe.manifest</AdditionalManifestFiles>
+@@ -494,7 +491,7 @@
+ <LargeAddressAware>true</LargeAddressAware>
+ </Link>
+ <PostBuildEvent>
+- <Command>make-install-vngspice.bat $(OutDir)</Command>
++ <Command></Command>
+ </PostBuildEvent>
+ <Manifest>
+ <AdditionalManifestFiles>$(ProjectDir)ngspice-x86.exe.manifest</AdditionalManifestFiles>
+@@ -542,7 +539,6 @@
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- make-install-vngspiced.bat $(OutDir) 64
+ </Command>
+ </PostBuildEvent>
+ <Manifest>
+@@ -597,7 +593,6 @@
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- make-install-vngspice.bat $(OutDir) 64
+ </Command>
+ </PostBuildEvent>
+ <Manifest>
+@@ -649,7 +644,7 @@
+ <LargeAddressAware>true</LargeAddressAware>
+ </Link>
+ <PostBuildEvent>
+- <Command>make-install-vngspice.bat $(OutDir)</Command>
++ <Command></Command>
+ </PostBuildEvent>
+ <Manifest>
+ <AdditionalManifestFiles>$(ProjectDir)ngspice-x86.exe.manifest</AdditionalManifestFiles>
+@@ -706,7 +701,6 @@
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- make-install-vngspice.bat $(OutDir) 64
+ </Command>
+ </PostBuildEvent>
+ <Manifest>
+@@ -758,7 +752,7 @@
+ <LargeAddressAware>true</LargeAddressAware>
+ </Link>
+ <PostBuildEvent>
+- <Command>make-install-vngspice.bat $(OutDir)</Command>
++ <Command></Command>
+ </PostBuildEvent>
+ <Manifest>
+ <AdditionalManifestFiles>$(ProjectDir)ngspice-x86.exe.manifest</AdditionalManifestFiles>
+@@ -813,7 +807,6 @@
+ </Link>
+ <PostBuildEvent>
+ <Command>
+- make-install-vngspice.bat $(OutDir) 64
+ </Command>
+ </PostBuildEvent>
+ <Manifest>
+--
+2.32.0.windows.2
+
diff --git a/vcpkg/ports/ngspice/use-winbison-sharedspice.patch b/vcpkg/ports/ngspice/use-winbison-sharedspice.patch
new file mode 100644
index 0000000..c345e98
--- /dev/null
+++ b/vcpkg/ports/ngspice/use-winbison-sharedspice.patch
@@ -0,0 +1,19 @@
+diff --git a/visualc/sharedspice.vcxproj b/visualc/sharedspice.vcxproj
+index 4ff0dfc..57b0c35 100644
+--- a/visualc/sharedspice.vcxproj
++++ b/visualc/sharedspice.vcxproj
+@@ -2223,12 +2223,12 @@
+ <ItemGroup>
+ <CustomBuild Include="..\src\frontend\parse-bison.y">
+ <Message>invoke win_bison.exe for %(Identity)</Message>
+- <Command>..\..\flex-bison\win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
++ <Command>win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
+ <Outputs>.\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="..\src\spicelib\parser\inpptree-parser.y">
+ <Message>invoke win_bison.exe for %(Identity)</Message>
+- <Command>..\..\flex-bison\win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
++ <Command>win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
+ <Outputs>.\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h</Outputs>
+ </CustomBuild>
+ </ItemGroup>
diff --git a/vcpkg/ports/ngspice/use-winbison-vngspice.patch b/vcpkg/ports/ngspice/use-winbison-vngspice.patch
new file mode 100644
index 0000000..008bc68
--- /dev/null
+++ b/vcpkg/ports/ngspice/use-winbison-vngspice.patch
@@ -0,0 +1,50 @@
+diff --git a/visualc/vngspice.vcxproj b/visualc/vngspice.vcxproj
+index 2d1aa81..cf0f0c7 100644
+--- a/visualc/vngspice.vcxproj
++++ b/visualc/vngspice.vcxproj
+@@ -2681,12 +2681,12 @@
+ <ItemGroup>
+ <CustomBuild Include="..\src\frontend\parse-bison.y">
+ <Message>invoke win_bison.exe for %(Identity)</Message>
+- <Command>..\..\flex-bison\win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
++ <Command>win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
+ <Outputs>.\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="..\src\spicelib\parser\inpptree-parser.y">
+ <Message>invoke win_bison.exe for %(Identity)</Message>
+- <Command>..\..\flex-bison\win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
++ <Command>win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
+ <Outputs>.\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h</Outputs>
+ </CustomBuild>
+ </ItemGroup>
+diff --git a/visualc/xspice/cmpp/cmpp.vcxproj b/visualc/xspice/cmpp/cmpp.vcxproj
+index 78607a3..7bcc1a4 100644
+--- a/visualc/xspice/cmpp/cmpp.vcxproj
++++ b/visualc/xspice/cmpp/cmpp.vcxproj
+@@ -157,22 +157,22 @@
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\src\xspice\cmpp\ifs_lex.l">
+ <Message>invoke win_flex.exe for %(Identity)</Message>
+- <Command>..\..\..\..\flex-bison\win_flex.exe --outfile=.\tmp-bison\%(Filename).c --header-file=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
++ <Command>win_flex.exe --outfile=.\tmp-bison\%(Filename).c --header-file=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
+ <Outputs>.\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="..\..\..\src\xspice\cmpp\ifs_yacc.y">
+ <Message>invoke win_bison.exe for %(Identity)</Message>
+- <Command>..\..\..\..\flex-bison\win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
++ <Command>win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
+ <Outputs>.\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="..\..\..\src\xspice\cmpp\mod_lex.l">
+ <Message>invoke win_flex.exe for %(Identity)</Message>
+- <Command>..\..\..\..\flex-bison\win_flex.exe --outfile=.\tmp-bison\%(Filename).c --header-file=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
++ <Command>win_flex.exe --outfile=.\tmp-bison\%(Filename).c --header-file=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
+ <Outputs>.\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="..\..\..\src\xspice\cmpp\mod_yacc.y">
+ <Message>invoke win_bison.exe for %(Identity)</Message>
+- <Command>..\..\..\..\flex-bison\win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
++ <Command>win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1</Command>
+ <Outputs>.\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h</Outputs>
+ </CustomBuild>
+ <None Include="..\src\xspice\icm\objects.inc" />
diff --git a/vcpkg/ports/ngspice/vcpkg.json b/vcpkg/ports/ngspice/vcpkg.json
new file mode 100644
index 0000000..31cfa6f
--- /dev/null
+++ b/vcpkg/ports/ngspice/vcpkg.json
@@ -0,0 +1,23 @@
+{
+ "name": "ngspice",
+ "version": "41",
+ "description": "Ngspice is a mixed-level/mixed-signal electronic circuit simulator. It is a successor of the latest stable release of Berkeley SPICE",
+ "homepage": "http://ngspice.sourceforge.net/",
+ "license": "CC-BY-SA-4.0",
+ "supports": "!(linux | osx | arm | uwp)",
+ "dependencies": [
+ {
+ "name": "vcpkg-msbuild",
+ "host": true,
+ "platform": "windows"
+ }
+ ],
+ "default-features": [
+ "codemodels"
+ ],
+ "features": {
+ "codemodels": {
+ "description": "Adds optional code models for XSPICE, ADMS (verilog integration) and B-/E-/G- sources."
+ }
+ }
+}