FWGS / hlsdk-portable

Portable Half-Life SDK. GoldSource and Xash3D. Crossplatform.
https://xash.su
Other
266 stars 121 forks source link

Возможно ли собрать под Windows XP #452

Closed Artem-coderh closed 3 months ago

Artem-coderh commented 3 months ago

У меня есть Microsoft Visual studio 6, Windows XP Professional x86 SP3.

nekonomicon commented 3 months ago

Да.

Microsoft Visual studio 6

Для этих целей лежат скрипты compile.sh, но для модов их никто не обновлял так как особой надобности уже нет.

ЕМНИП на Windows XP должны работать Visual Studio 2012/2013/2015, а там с использованием waf и cmake никаких проблем не должно быть.

Также можно использовать mingw, но не рекомендуется, потому что GoldSrc не поддерживает декорацию имён gcc.

FreeSlave commented 3 months ago

Для этих целей лежат скрипты compile.sh

compile.bat

Инструкции для сборки с VS6 есть в ридми проекта. Но мы регулярно не проверяем актуальность этого батника. Его надо обновить в связи с недавним добавлением SDL2 инпута для виндовой версии.

mittorn commented 3 months ago

mingw для 32битных сборок может нормально не заработать пока не проставлены аттрибуты выравнивания стека Так же была проблема с aggregate return, которая даже в visual studio могла вызывать проблемы.

А какие проблемы с поддержкой windows xp на современных VS? Я знаю, что exe не запускаются, но ведь hlsdk это dll По идее если отключить неявную вставку TLS на статиках (на XP LoadLibrary не инициализирует TLS релокации), должно работать при статической линковке CRT

a1batross commented 3 months ago

@mittorn

Нет, mingw это совсем дохлая идея. Тут @nekonomicon прав насчёт mingw. Оно может и "заработает", но существующие сохранения не будут работать. Как и последующие, но собранные другим компилятором. Тем более GoldSrc непредсказуемо может отреагировать на такой манглинг в GCC.

В старом ксаше это когда-то работало, так как там не было этого механизма разбора манглинга для кроссплатформенных сейвов. Я его сделал как раз в новом.

a1batross commented 3 months ago

Оказывается было достаточно включить vcs_info.cpp и оно вполне собирается. https://github.com/FWGS/hlsdk-portable/commit/3229067f78ee62097eb59d927fb4c552afed800c

Под Win32 ксашем работает, под голдсорсом не проверял.