Added build capability switches in the shared Windows props file so optional components are only enabled when their prerequisites exist:

Python3Enabled (python executable + import lib + cffi)
   PerlEnabled (perl executable + perl runtime DLL + gendef.exe)
   InstallerEnabled (Inno Setup iscc.exe).
Updated the Python plugin project to compile only when Python3Enabled is true, and otherwise emit a clear skip message instead of failing prebuild/import steps.
Updated the Perl plugin project similarly to gate build steps on PerlEnabled and print a skip message when prerequisites are missing.
Updated the installer project so it only uses C++ targets when InstallerEnabled is true, with a fallback skip message when Inno Setup is unavailable.
This commit is contained in:
2026-02-13 20:14:39 -07:00
parent bb70bcb4e3
commit a86dc5ae85
4 changed files with 27 additions and 12 deletions

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v142</PlatformToolset>
@@ -49,5 +49,8 @@ $(IsccPath) /dPROJECTDIR="$(ProjectDir)" /dAPPARCH="$(Platform)" "$(ZoiteChatBin
<None Include="wizardsmallimage.bmp" />
<None Include="zoitechat.iss" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" Condition="'$(InstallerEnabled)'=='true'" />
<Target Name="Build" Condition="'$(InstallerEnabled)'!='true'">
<Message Text="Inno Setup (iscc.exe) not found; skipping installer build." Importance="high" />
</Target>
</Project>

View File

@@ -29,6 +29,12 @@
<Python3Path>$(YourPython3Path)\$(PlatformName)</Python3Path>
<Python3Lib>python314</Python3Lib>
<Python3Output>hcpython3</Python3Output>
<Python3Enabled Condition="Exists('$(Python3Path)\\python.exe') and Exists('$(Python3Path)\\libs\\$(Python3Lib).lib') and Exists('$(Python3Path)\\Lib\\site-packages\\cffi')">true</Python3Enabled>
<Python3Enabled Condition="'$(Python3Enabled)'==''">false</Python3Enabled>
<PerlEnabled Condition="Exists('$(PerlPath)\\bin\\perl.exe') and Exists('$(PerlPath)\\bin\\$(PerlLib).dll') and Exists('$(GendefPath)\\gendef.exe')">true</PerlEnabled>
<PerlEnabled Condition="'$(PerlEnabled)'==''">false</PerlEnabled>
<InstallerEnabled Condition="Exists($(IsccPath))">true</InstallerEnabled>
<InstallerEnabled Condition="'$(InstallerEnabled)'==''">false</InstallerEnabled>
<LuaInclude>$(DepsRoot)\include\luajit-2.1;$(DepsRoot)\include\lua;$(DepsRoot)\include\lua5.1;$(DepsRoot)\include\lua54;$(DepsRoot)\include\lua5.4;$(DepsRoot)\include\lua-5.4;$(SolutionDir)..\plugins\lua\luajit\src;$(SolutionDir)..\plugins\lua\luajit\src\jit</LuaInclude>
<LuaOutput>hclua</LuaOutput>
<LuaEnabled Condition="Exists('$(DepsRoot)\\include\\lua.h')">true</LuaEnabled>