Files
nethack/sys/windows/vs/NetHack/NetHack.vcxproj
nhmall 6234e96b57 Change Windows startup - take 2
remove the safeproc pseudo-windowport routines from
almost a decade ago.

A very early pass is made through the config file,
seeking out just the interface-related OPTIONS=windowport
and OPTIONS=soundlib and ignoring all other options in the
config file during that early pass, so the windowport
can be activated without the NetHack core initialization
in place that some of the other rcfile OPTIONS require.

Bundles the existing rcfile processing code into rcfile().

New functions to control which rcfile options will be
disregarded in the early config file pass, and which will be
processed:

    set_all_options_disregarded();
    set_all_options_heeded();
    disregard_this_option(opt_xx);
    heed_this_option(opt_xx);

Windows calls rcfile_interface_options(), which is
a bundling of a series of function calls to achieve
the desired result.

    void
    rcfile_interface_options(void)
    {
        allopt_array_init();
        set_all_options_disregarded();
        heed_this_option(opt_windowtype);
        heed_this_option(opt_soundlib);
        rcfile();
        set_all_options_heeded();
        disregard_this_option(opt_windowtype);
        disregard_this_option(opt_soundlib);
    }
2026-04-05 13:11:14 -04:00

333 lines
16 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\config.props" />
<Import Project="..\dirs.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="..\default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="..\NetHackProperties.props" />
<Import Project="..\console.props" />
<Import Project="..\common.props" />
<Import Project="..\files.props" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>NetHack</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<PropertyGroup>
<OutDir>$(BinDir)</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="Exists('$(PDCURSES)')">
<ClCompile>
<AdditionalIncludeDirectories>$(PDCURSES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>CURSES_GRAPHICS;PDC_NCMOUSE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(ToolsDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>PDCurses.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="Exists('$(FMODINCDIR)\fmod.h') And Exists('$(FMODLIBLIB)') And Exists('$(FMODLIBDLL)')">
<ClCompile>
<AdditionalIncludeDirectories>$(FMODINCDIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>SND_LIB_FMOD;USER_SOUNDS;SND_SOUNDEFFECTS_AUTOMAP;RCWAV;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(FMODLIBDIR);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(FMODLIBLIB);%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalOptions>/Gs /Oi- /w44774 /w45262 %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings Condition="'$(Platform)'=='ARM64'">4100;4244;4245;4310;4706;4820;4324</DisableSpecificWarnings>
<DisableSpecificWarnings Condition="'$(Platform)'!='ARM64'">4244;4245;4310;4706;4820;4324</DisableSpecificWarnings>
<Optimization>Disabled</Optimization>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>$(WinWin32Dir);$(IncDir);$(SysWindDir);$(SysShareDir);$(WinShareDir);$(LuaDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32CON;NO_TILE_C;DLB;SND_LIB_WINDSOUND;USER_SOUNDS;SND_SOUNDEFFECTS_AUTOMAP;_LIB;HAS_STDINT_H;HAS_INTTYPES_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard_C>stdclatest</LanguageStandard_C>
</ClCompile>
<Link>
<AdditionalDependencies>hacklib.lib;lualib.lib;kernel32.lib;dbghelp.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;winmm.lib;Winmm.lib;UserEnv.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>$(SndWavDir);$(SysWindDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)allmain.c" />
<ClCompile Include="$(SrcDir)alloc.c" />
<ClCompile Include="$(SrcDir)apply.c" />
<ClCompile Include="$(SrcDir)artifact.c" />
<ClCompile Include="$(SrcDir)attrib.c" />
<ClCompile Include="$(SrcDir)ball.c" />
<ClCompile Include="$(SrcDir)bones.c" />
<ClCompile Include="$(SrcDir)botl.c" />
<ClCompile Include="$(SrcDir)calendar.c" />
<ClCompile Include="$(SrcDir)cfgfiles.c" />
<ClCompile Include="$(SrcDir)cmd.c" />
<ClCompile Include="$(SrcDir)coloratt.c" />
<ClCompile Include="$(SrcDir)dbridge.c" />
<ClCompile Include="$(SrcDir)date.c" />
<ClCompile Include="$(SrcDir)decl.c" />
<ClCompile Include="$(SrcDir)detect.c" />
<ClCompile Include="$(SrcDir)dig.c" />
<ClCompile Include="$(SrcDir)display.c" />
<ClCompile Include="$(SrcDir)dlb.c" />
<ClCompile Include="$(SrcDir)do.c" />
<ClCompile Include="$(SrcDir)dog.c" />
<ClCompile Include="$(SrcDir)dogmove.c" />
<ClCompile Include="$(SrcDir)dokick.c" />
<ClCompile Include="$(SrcDir)dothrow.c" />
<ClCompile Include="$(SrcDir)do_name.c" />
<ClCompile Include="$(SrcDir)do_wear.c" />
<ClCompile Include="$(SrcDir)drawing.c" />
<ClCompile Include="$(SrcDir)dungeon.c" />
<ClCompile Include="$(SrcDir)earlyarg.c" />
<ClCompile Include="$(SrcDir)eat.c" />
<ClCompile Include="$(SrcDir)end.c" />
<ClCompile Include="$(SrcDir)engrave.c" />
<ClCompile Include="$(SrcDir)exper.c" />
<ClCompile Include="$(SrcDir)explode.c" />
<ClCompile Include="$(SrcDir)extralev.c" />
<ClCompile Include="$(SrcDir)files.c" />
<ClCompile Include="$(SrcDir)fountain.c" />
<ClCompile Include="$(SrcDir)getpos.c" />
<ClCompile Include="$(SrcDir)glyphs.c" />
<ClCompile Include="$(SrcDir)hack.c" />
<ClCompile Include="$(SrcDir)insight.c" />
<ClCompile Include="$(SrcDir)iactions.c" />
<ClCompile Include="$(SrcDir)invent.c" />
<ClCompile Include="$(SrcDir)isaac64.c" />
<ClCompile Include="$(SrcDir)light.c" />
<ClCompile Include="$(SrcDir)lock.c" />
<ClCompile Include="$(SrcDir)mail.c" />
<ClCompile Include="$(SrcDir)makemon.c" />
<ClCompile Include="$(SrcDir)mcastu.c" />
<ClCompile Include="$(SrcDir)mdlib.c" />
<ClCompile Include="$(SrcDir)mhitm.c" />
<ClCompile Include="$(SrcDir)mhitu.c" />
<ClCompile Include="$(SrcDir)minion.c" />
<ClCompile Include="$(SrcDir)mklev.c" />
<ClCompile Include="$(SrcDir)mkmap.c" />
<ClCompile Include="$(SrcDir)mkmaze.c" />
<ClCompile Include="$(SrcDir)mkobj.c" />
<ClCompile Include="$(SrcDir)mkroom.c" />
<ClCompile Include="$(SrcDir)mon.c" />
<ClCompile Include="$(SrcDir)mondata.c" />
<ClCompile Include="$(SrcDir)monmove.c" />
<ClCompile Include="$(SrcDir)monst.c" />
<ClCompile Include="$(SrcDir)mplayer.c" />
<ClCompile Include="$(SrcDir)mthrowu.c" />
<ClCompile Include="$(SrcDir)muse.c" />
<ClCompile Include="$(SrcDir)music.c" />
<ClCompile Include="$(SrcDir)nhlobj.c" />
<ClCompile Include="$(SrcDir)nhlsel.c" />
<ClCompile Include="$(SrcDir)nhlua.c" />
<ClCompile Include="$(SrcDir)objects.c" />
<ClCompile Include="$(SrcDir)objnam.c" />
<ClCompile Include="$(SrcDir)options.c" />
<ClCompile Include="$(SrcDir)o_init.c" />
<ClCompile Include="$(SrcDir)pager.c" />
<ClCompile Include="$(SrcDir)pickup.c" />
<ClCompile Include="$(SrcDir)pline.c" />
<ClCompile Include="$(SrcDir)polyself.c" />
<ClCompile Include="$(SrcDir)potion.c" />
<ClCompile Include="$(SrcDir)pray.c" />
<ClCompile Include="$(SrcDir)priest.c" />
<ClCompile Include="$(SrcDir)quest.c" />
<ClCompile Include="$(SrcDir)questpgr.c" />
<ClCompile Include="$(SrcDir)read.c" />
<ClCompile Include="$(SrcDir)rect.c" />
<ClCompile Include="$(SrcDir)region.c" />
<ClCompile Include="$(SrcDir)report.c" />
<ClCompile Include="$(SrcDir)restore.c" />
<ClCompile Include="$(SrcDir)rip.c" />
<ClCompile Include="$(SrcDir)rnd.c" />
<ClCompile Include="$(SrcDir)role.c" />
<ClCompile Include="$(SrcDir)rumors.c" />
<ClCompile Include="$(SrcDir)save.c" />
<ClCompile Include="$(SrcDir)selvar.c" />
<ClCompile Include="$(SrcDir)sfstruct.c" />
<ClCompile Include="$(SrcDir)shk.c" />
<ClCompile Include="$(SrcDir)shknam.c" />
<ClCompile Include="$(SrcDir)sit.c" />
<ClCompile Include="$(SrcDir)sounds.c" />
<ClCompile Include="$(SrcDir)spell.c" />
<ClCompile Include="$(SrcDir)sp_lev.c" />
<ClCompile Include="$(SrcDir)stairs.c" />
<ClCompile Include="$(SrcDir)steal.c" />
<ClCompile Include="$(SrcDir)steed.c" />
<ClCompile Include="$(SrcDir)strutil.c" />
<ClCompile Include="$(SrcDir)symbols.c" />
<ClCompile Include="$(SrcDir)sys.c" />
<ClCompile Include="$(SrcDir)teleport.c" />
<ClCompile Include="$(SrcDir)timeout.c" />
<ClCompile Include="$(SrcDir)topten.c" />
<ClCompile Include="$(SrcDir)track.c" />
<ClCompile Include="$(SrcDir)trap.c" />
<ClCompile Include="$(SrcDir)uhitm.c" />
<ClCompile Include="$(SrcDir)u_init.c" />
<ClCompile Include="$(SrcDir)utf8map.c" />
<ClCompile Include="$(SrcDir)vault.c" />
<ClCompile Include="$(SrcDir)version.c" />
<ClCompile Include="$(SrcDir)vision.c" />
<ClCompile Include="$(SrcDir)weapon.c" />
<ClCompile Include="$(SrcDir)were.c" />
<ClCompile Include="$(SrcDir)wield.c" />
<ClCompile Include="$(SrcDir)windows.c" />
<ClCompile Include="$(SrcDir)wizard.c" />
<ClCompile Include="$(SrcDir)wizcmds.c" />
<ClCompile Include="$(SrcDir)worm.c" />
<ClCompile Include="$(SrcDir)worn.c" />
<ClCompile Include="$(SrcDir)write.c" />
<ClCompile Include="$(SrcDir)zap.c" />
<ClCompile Include="$(SysShareDir)cppregex.cpp" />
<ClCompile Include="$(SysShareDir)random.c" />
<ClCompile Include="$(SysWindDir)consoletty.c" />
<ClCompile Include="$(SysWindDir)windmain.c" />
<ClCompile Include="$(SysWindDir)windsys.c" />
<ClCompile Include="$(SndWindDir)windsound.c" />
<ClCompile Include="$(WinTtyDir)getline.c" />
<ClCompile Include="$(WinTtyDir)topl.c" />
<ClCompile Include="$(WinTtyDir)wintty.c" />
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)cursdial.c" />
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)cursinit.c" />
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)cursinvt.c" />
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)cursmain.c" />
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)cursmesg.c" />
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)cursmisc.c" />
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)cursstat.c" />
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)curswins.c" />
<ClCompile Condition="Exists('$(FMODINCDIR)\fmod.h') And Exists('$(FMODLIBLIB)') And Exists('$(FMODLIBDLL)')" Include="$(FMODSRC)" />
<ClCompile Include="$(SrcDir)sfbase.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(IncDir)align.h" />
<ClInclude Include="$(IncDir)artifact.h" />
<ClInclude Include="$(IncDir)artilist.h" />
<ClInclude Include="$(IncDir)attrib.h" />
<ClInclude Include="$(IncDir)botl.h" />
<ClInclude Include="$(IncDir)color.h" />
<ClInclude Include="$(IncDir)config.h" />
<ClInclude Include="$(IncDir)config1.h" />
<ClInclude Include="$(IncDir)context.h" />
<ClInclude Include="$(IncDir)coord.h" />
<ClInclude Include="$(IncDir)cstd.h" />
<ClInclude Include="$(IncDir)decl.h" />
<ClInclude Include="$(IncDir)defsym.h" />
<ClInclude Include="$(IncDir)display.h" />
<ClInclude Include="$(IncDir)dlb.h" />
<ClInclude Include="$(IncDir)dungeon.h" />
<ClInclude Include="$(IncDir)engrave.h" />
<ClInclude Include="$(IncDir)extern.h" />
<ClInclude Include="$(IncDir)flag.h" />
<ClInclude Include="$(IncDir)func_tab.h" />
<ClInclude Include="$(IncDir)global.h" />
<ClInclude Include="$(IncDir)hacklib.h" />
<ClInclude Include="$(IncDir)hack.h" />
<ClInclude Include="$(IncDir)isaac64.h" />
<ClInclude Include="$(IncDir)lint.h" />
<ClInclude Include="$(IncDir)load_img.h" />
<ClInclude Include="$(IncDir)mcastu.h" />
<ClInclude Include="$(IncDir)mextra.h" />
<ClInclude Include="$(IncDir)mfndpos.h" />
<ClInclude Include="$(IncDir)mkroom.h" />
<ClInclude Include="$(IncDir)monattk.h" />
<ClInclude Include="$(IncDir)mondata.h" />
<ClInclude Include="$(IncDir)monflag.h" />
<ClInclude Include="$(IncDir)monsters.h" />
<ClInclude Include="$(IncDir)monst.h" />
<ClInclude Include="$(IncDir)nhlua.h" />
<ClInclude Include="$(IncDir)windconf.h" />
<ClInclude Include="$(IncDir)obj.h" />
<ClInclude Include="$(IncDir)objclass.h" />
<ClInclude Include="$(IncDir)objects.h" />
<ClInclude Include="$(IncDir)patchlevel.h" />
<ClInclude Include="$(IncDir)permonst.h" />
<ClInclude Include="$(IncDir)prop.h" />
<ClInclude Include="$(IncDir)quest.h" />
<ClInclude Include="$(IncDir)rect.h" />
<ClInclude Include="$(IncDir)region.h" />
<ClInclude Include="$(IncDir)rm.h" />
<ClInclude Include="$(IncDir)skills.h" />
<ClInclude Include="$(IncDir)sndprocs.h" />
<ClInclude Include="$(IncDir)seffects.h" />
<ClInclude Include="$(IncDir)selvar.h" />
<ClInclude Include="$(IncDir)spell.h" />
<ClInclude Include="$(IncDir)sp_lev.h" />
<ClInclude Include="$(IncDir)stairs.h" />
<ClInclude Include="$(IncDir)sym.h" />
<ClInclude Include="$(IncDir)timeout.h" />
<ClInclude Include="$(IncDir)tradstdc.h" />
<ClInclude Include="$(IncDir)trap.h" />
<ClInclude Include="$(IncDir)vision.h" />
<ClInclude Include="$(IncDir)weight.h" />
<ClInclude Include="$(IncDir)winprocs.h" />
<ClInclude Include="$(IncDir)wintty.h" />
<ClInclude Include="$(IncDir)wintype.h" />
<ClInclude Include="$(IncDir)you.h" />
<ClInclude Include="$(IncDir)youprop.h" />
<ClInclude Include="$(WinWin32Dir)nhresource.h" />
<ClInclude Include="$(WinCursDir)cursdial.h" />
<ClInclude Include="$(WinCursDir)cursinit.h" />
<ClInclude Include="$(WinCursDir)cursinvt.h" />
<ClInclude Include="$(WinCursDir)cursmesg.h" />
<ClInclude Include="$(WinCursDir)cursmisc.h" />
<ClInclude Include="$(WinCursDir)cursstat.h" />
<ClInclude Include="$(WinCursDir)curswins.h" />
<ClInclude Include="$(IncDir)sfprocs.h" />
<ClInclude Include="$(IncDir)savefile.h" />
<ClInclude Include="$(IncDir)sfmacros.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="$(WinWin32Dir)NetHack.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="$(WinWin32Dir)nethack.ico" />
</ItemGroup>
<ItemGroup>
<None Include="cpp.hint" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Target Name="AfterBuild">
<MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
</Target>
<Target Name="AfterClean">
<MSBuild Projects="afternethack.proj" Targets="Clean" Properties="Configuration=$(Configuration)" />
</Target>
<Target Name="AfterRebuild">
<MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
</Target>
</Project>