Pages: 1 2
[#] Re: Сборка INSTEAD для WinRT
Antokolos(syscall,12) — Peter
2017-10-06 17:53:55


Да, конечно.
Я на его базе ещё дополню немного, может, будет проще и в этих изменениях разобраться. Ну или в отдельной ветке пустим, посмотрим, как пойдёт.

[#] Re: Сборка INSTEAD для WinRT
Peter(syscall,1) — Antokolos
2017-10-07 09:05:19


> Да, конечно.
Пушнул патч.

[#] Re: Сборка INSTEAD для WinRT
Antokolos(syscall,12) — Peter
2017-10-12 08:32:34


Вот тут вот новая ветка winrt, основанная на этом патче
https://github.com/Antokolos/instead/tree/winrt
Самый последний коммит там (_USE_UNPACK support) посвящён дополнениям для того, чтобы можно было собрать с флагом _USE_UNPACK

[#] Re: Сборка INSTEAD для WinRT
Peter(syscall,1) — Antokolos
2017-10-12 08:56:30


> Самый последний коммит там (_USE_UNPACK support) посвящён дополнениям для того, чтобы можно было собрать с флагом _USE_UNPACK

Понял, буду смотреть.

[#] Re: Сборка INSTEAD для WinRT
Peter(syscall,1) — Antokolos
2017-10-22 08:54:33


Ты тут?

Я тут все таки пытаюсь разгрести сборку INSTEAD. Нужно, чтоб ты проверил следующую версию в git.

Описываю суть изменений.

1) системные include находятся ТОЛЬКО в src/instead/system.h ВСЕ условные СИСТЕМНЫЕ включения должны быть ТАМ, кроме специфичных инклюдов в архитектурных файлах (windows.c и так далее)
2) В файлах ios.h, s60.h и так далее (если они нужны!) описываются только НЕ СИСТЕМНЫЕ отличия. Для примера смотри ios.h. winrt.h и wince.h удалены
3) Я не понимаю такую конструкцию:

#ifdef _MSC_VER
#include "unistd.h"
#define PATH_MAX MAX_PATH
#else

Дело в том, что инклюды с "" (в отличие от <>) это инклюды НЕ СИСТЕМНЫХ файлов. Я не понимаю, как ты собрал src/instead/* если в system.h есть инклюде <dirent.h> безусловный, а в windows.c он под ifdef да еще и в "". Так что чтоб не путаться я это удалил и пробуем еще раз, если можно.

4) никаких больше PATH_MAX, единственное место где он есть это system.h который включается через externals.h


Что нужно? Внести изменения ТОЛЬКО в system.h для того, чтобы сборка прошла успешно для всех наших целей.

Поможешь?

P.S. я проверил сборки: windows, s60, wince и unix/linux -- они работают

После того как мы наведем порядок на этом уровне, можно будет снова пытаться как то сливать изменения

[#] Re: Сборка INSTEAD для WinRT
Antokolos(syscall,12) — Peter
2017-10-22 11:27:46


Да, конечно, тут. Буду пробовать, спасибо!

[#] Re: Сборка INSTEAD для WinRT
Antokolos(syscall,12) — Peter
2017-10-22 14:41:58


Итак:
1) Сделал git clone https://github.com/instead-hub/instead в пустую папку
2) Скопировал туда папки VisualC и VisualC-WinRT из https://github.com/Antokolos/instead/tree/winrt
3) Открыл свой проект
4) В файле windows.c пришлось сделать изменение
#ifndef _MSC_VER
#include <dir.h>
#endif
ибо файл dir.h он не находит
5) В файле https://github.com/Antokolos/instead/blob/winrt/VisualC-WinRT/src/uwp.h пришлось сделать изменение -- убрал #ifdef _UWP в третьей строчке, т.к. теперь я использую его вместо удалённого winrt.h.
6) Соответственно, в файле https://github.com/Antokolos/instead/blob/winrt/VisualC-WinRT/src/SDL2_winrt.cpp убрал использование winrt.h и всегда использую winrt.h
7) Убрал использование _USE_UNPACK у себя в проекте, т.к. этот код ещё не смёржен.
8) Приложение как для WinRT, так и для UWP собралось, туториал запустился.

[#] Re: Сборка INSTEAD для WinRT
Antokolos(syscall,12) — Antokolos
2017-10-22 14:43:41


P.S. извиняюсь, не перечитал то, что написал :(
6) Соответственно, в файле https://github.com/Antokolos/instead/blob/winrt /VisualC-WinRT/src/SDL2_winrt.cpp убрал использование winrt.h и всегда использую uwp.h

[#] Re: Сборка INSTEAD для WinRT
Peter(syscall,1) — Antokolos
2017-10-22 15:30:56


Отлично. Вечером пофикшу мелочи и снова буду думать про дальнейшие мержи.
Идет процесс не быстро так как много навалилось работы. :(

[#] Re: Сборка INSTEAD для WinRT
Antokolos(syscall,12) — Peter
2017-10-22 16:40:24


Здорово, да можно сильно не торопиться :)
Больше всего меня тревожит, что не все игры работают.
Скорее всего, дело в относительных путях, ибо мне даже при распаковке пришлось в одном месте хачить, чтобы всегда абсолютные пути передавались.
Это т.к. https://docs.microsoft.com/en-us/cpp/cppcx/crt-functions-not-supported-in-universal-windows-platform-apps
_chdir _wchdir _getcwd _getdcwd _wgetcwd _wgetdcwd The concept of a working directory doesn't apply to Windows 8.x Store apps. Use full paths instead.

[#] Re: Сборка INSTEAD для WinRT
Peter(syscall,1) — Antokolos
2017-10-22 16:52:57


> Скорее всего, дело в относительных путях,
wince версия полностью избавлена от относительных путей.
Собственно инстед от них избавлен начиная с wince версии.
Все chdir/getdir - реализованы внутри и всегда работают с абсолютными путями (по кр мере в wince)
Именно поэтому берется argv[0] в начале, чтоб найти абсолютный путь.
Ты можешь даже в UNIX версии заменить в src/util.c реализацию setdir и прочих - и будет все на абсолютных путях.

Так что я считаю надо доотладить.

Все api по работе с дирами находится в src/util.c

[#] Re: Сборка INSTEAD для WinRT
Peter(syscall,1) — Antokolos
2017-10-22 17:01:06


Да и Android с абсолютными путями работает.
Можешь глянуть ветку #ifndef ANDROID в util.c
Только для UNIX сборки используются chdir, getcwd а в остальных - формируются полные пути и просто идет работа по ним.

Pages: 1 2