Memnarch / Delphinus

An alternative Packagemanager for the Delphi-IDE
Mozilla Public License 2.0
235 stars 64 forks source link

Support for new platforms #44

Closed Pawe1 closed 7 years ago

Pawe1 commented 7 years ago

A little update for this branch. I did a quick smoke test with Android and it seems that this code works :wink:

Displayed OS icons are now a bit reordered.

Pawe1 commented 7 years ago

Oook... I've found a problem with Android platform...

~~Android compiler really don't like when path contains spaces... So much that it don't work 😢 Trying to install package with name containing spaces makes it useless in current Delphinus version~~

So it raises a new question: Should Delphinus sanitize package names in TDNSetupCore.GetInstallDirectoryForPackage method?...

Memnarch commented 7 years ago

AH FINALLY a testsubject for Mobile platforms :D. As i am curious, can you give some more details on the errors?

Pawe1 commented 7 years ago

"Oh, look! Here is an explorer!" he exclaimed to himself when he saw the little prince coming.

:wink:

There is a minor problem with painting space :stuck_out_tongue_closed_eyes: Alternative Luckily this is not a showstopper so I think it could be ignored by now

BTW in registry there are branches

...\Library\Android32
...\Library\iOSDevice32
...\Library\iOSDevice64
...\Library\iOSSimulator
...\Library\Linux64
...\Library\OSX32
...\Library\Win32
...\Library\Win64

Does it mean that "iOS simulator" is 32/64-bit agnostic?... Should we also add "iOSSimulator" as a platform?... I have no idea because I haven't touched any Apple developement using Delphi :roll_eyes:

Memnarch commented 7 years ago

I have never been sure about the IOSSimulator. SHould i add it? Should i automatically add it when IOS32 is supported?(simulator has no 64bit as far as i know)

Pawe1 commented 7 years ago

Problem with spaces still exist - I opened wrong project :blush:

~~I used test package named "Package test" so my destination path is C:\Users\Public\Documents\Embarcadero\Studio\19.0\Comps\Package test~~

~~What happens? [DCC Fatal Error] Main.pas(57): F2613 Unit 'blah.blah' not found.~~

Looks like Delphi just cannot find file and I have no idea why

Memnarch commented 7 years ago

what happens if the path ends with a \ ? And does this really affect the android compiler, only?

EDIT: The same problem could persist, if i make it configurable where the comps-directory is :/ (even if a package has no space).

How does it behave, if you add a searchpath with spaces through the normal IDE-Tools dialog for android?

EDIT2: And are you sure, the copyoperation/searchpath is setup correctly for the delphinus-package? :P

Pawe1 commented 7 years ago

Ok - problem with spaces looks like solved. :stuck_out_tongue_closed_eyes: This was my fault - I had no idea that IDE has to be restarted after touching library / browsing patches

After package installation followed by IDE restart everything seems to work fine

There is another stupid naming question: If there is "Android32" should we call Android "Android" or "Android32"?...

BTW It is impossible to use JDK / Android ADK / NDK installed on path containing non-ASCII chars :dizzy_face: Java FTW...

Memnarch commented 7 years ago

I go with the platformnames of the projectfiles. If it is called Android, i call it Android, if it is called Android32 i call it Android32

Pawe1 commented 7 years ago

uhm

Somethimes the rules change during game :smile: Like "Mac OS X" that became "OS X" and now is "macOS" so project names do not always comply with a reality :dizzy_face:

I can add iOSSimulator into Delphinus if You want but I'm not able to test it...

Memnarch commented 7 years ago

don't add simulator for now

Pawe1 commented 7 years ago

Ok So it looks like that's all for this moment.

If You decide to merge it into master I'll try to ask some more people to publish their packages.

Memnarch commented 7 years ago

please rebase your version, since Mobile-Branch was missing some comitts

Pawe1 commented 7 years ago

Your rebase was unnecessary because I merged back "master" branch into feature branch so nothing was missing :wink: Rebasing pushed branches doesn't seem to be the best idea but ok - I have cherrypicked all of these commits.

Memnarch commented 7 years ago

Thanks, i'll merge this back this evening

Memnarch commented 7 years ago

one little sidenode: ANdroid is not meaned to be Android32 but Android. 32/64 has been used by emba for X86 and X64 Platforms and android is ARM, so i am not sure rn oO

Pawe1 commented 7 years ago

In Windows Registry the Android key is named Android32. Yup... don't ask me why... (You know how consistent is Emba naming...) It was the cause I asked a question about how exactly Android parameter in JSON should be called.

Alternative

BTW - what more we need to merge this branch into master? Except these:

Memnarch commented 7 years ago

1) Then i should name it Android32 everywhere(or is that different in dproj again?) 2) Well if android works, i'd say see what happens in the wild :P 3) For now i'll simply ingore the emulator and see what happens 4) I'll fix the icon issue later. First we need more packages which really make use of them

Pawe1 commented 7 years ago

1 => In .dpk it is called Android (see example) but in Windows Registry Android32... Hell yea...

4 => Nice candidates: Spelt/ZXing.Delphi / grijjy/GrijjyFoundation I have already posted one pull request

BTW - shouldn't Delphinus warn user that changes in browsing/search patches require IDE restart?

Memnarch commented 7 years ago

Well usually changing searchpathes should apply directly. But it seems my hack is missing a call somewhere :P

Memnarch commented 7 years ago

okay mobile is now in master

Pawe1 commented 7 years ago

Wow :grin: Thx!

Memnarch commented 7 years ago

btw i created a dummy pullrequest on your spring4d copy as you should remove your Spring4D copy. I expect sglienke to update his version soon :)

Pawe1 commented 7 years ago

Ok, great :smile:

Pawe1 commented 7 years ago

@Memnarch I'm wondering... Why do IOSDevice32 + IOSDevice64 consts (used in JSON properties) start with capital letter?...

Memnarch commented 7 years ago

Because i don't care much about Apple and stay within PascalNotation :P However they are not cassensitive