Jump to content
angelusb

ICS icsv863 wil not compile under MacOS 64 bit (MACOSX 10.14)

Recommended Posts

I'm working with Delphi 10..3.2 and will install the packet icsv863.zip. Compiling for Win32 goes perfect. But compiling for MacOS 64 bit gives errors . For example  TSystemtime and GetSystemTime are "Undeclared Identifiers".

In the annoucement for this release of ICS it should work under MacOs64.  What's wrong?
Please help.

Share this post


Link to post

Which previous version did you successfully build under MacOs64?  The announcement said MacOS and Win64, not MacOs64. 

 

Angus

 

Share this post


Link to post

Thank you for response.

You are right: the annoucement don't say MacOS 64 bit. That's a shame, because the latest OS versions on the Mac no longer run  32 bit applications.  I never compiled a previous version under MacOs 64 bit. I'm new on FMX  and more new on MacOs. Have only experience with Win32/64.  But now I'm busy for (a non profit organisation)  to build  an application that have to run on Windows and on Macs.  I'm 75 years old and programming is my hobby.  Because there are some troubles with Indy components for FTP. I wanted to try ICS component instead. Hope in next future there will be a MacOS 64 bit version of ICS. 
 

Share this post


Link to post

Quite happy to make ICS compatible with MacOS64, but you need to tell me what errors appear in which units, I don't have any Apple hardware to test.  Or is this a DEFINE issue, with MACOS or POSIX not being declared on MacOS64?

 

Angus

 

Share this post


Link to post

Thank you Angus,it will be great if you will help. I use Delphi 10.3.2 (Community Edition)
I tried to compile the projects from "install" folder 

I suppose I have to choose the package D103InstallVclFmx.groupproj (D103Install has only Win32 as Target Platform and uses VCL)

I try to compile this project (Build configurations Release, Target Platform MacOs 64 bit (OSX64))


Then I get the folowing errors

==========================================================================================================
Checking project dependencies...
Compiling IcsCommonD103Run.dproj (Release, OSX64)
dccosx64 command line for "IcsCommonD103Run.dpk"
  c:\program files (x86)\embarcadero\studio\20.0\bin\dccosx64.exe -$O- --no-config -M -Q -Z -TX.dylib 
...
  D:\Documenten\Embarcadero\Studio\SDKs\MacOSX10.14.sdk\System\Library\PrivateFrameworks -V -VN --description:"Overbyte ICS Common Run-Time Package for 
  Delphi 10.3" -NHC:\Users\Public\Documents\Embarcadero\Studio\20.0\hpp\OSX64 -NO..\Lib\Debug\OSX64\D103  IcsCommonD103Run.dpk   
[dccosx64 Warning] OverbyteIcsUtils.pas(1249): W1073 Combining signed type and unsigned 64-bit type - treated as an unsigned type
[dccosx64 Error] OverbyteIcsUtils.pas(1508): E2003 Undeclared identifier: 'TSystemTime'
[dccosx64 Error] OverbyteIcsUtils.pas(1510): E2003 Undeclared identifier: 'GetSystemTime'
[dccosx64 Error] OverbyteIcsUtils.pas(1512): E2003 Undeclared identifier: 'wHour'
[dccosx64 Error] OverbyteIcsUtils.pas(1512): E2003 Undeclared identifier: 'wSecond'
[dccosx64 Error] OverbyteIcsUtils.pas(1513): E2003 Undeclared identifier: 'wYear'
[dccosx64 Error] OverbyteIcsUtils.pas(1513): E2003 Undeclared identifier: 'wDay'
[dccosx64 Error] OverbyteIcsUtils.pas(1522): E2003 Undeclared identifier: 'TSystemTime'
[dccosx64 Error] OverbyteIcsUtils.pas(1524): E2003 Undeclared identifier: 'wYear'
[dccosx64 Error] OverbyteIcsUtils.pas(1524): E2033 Types of actual and formal var parameters must be identical
[dccosx64 Error] OverbyteIcsUtils.pas(1525): E2003 Undeclared identifier: 'wDay'
[dccosx64 Error] OverbyteIcsUtils.pas(1525): E2033 Types of actual and formal var parameters must be identical
[dccosx64 Error] OverbyteIcsUtils.pas(1525): E2003 Undeclared identifier: 'wSecond'
[dccosx64 Error] OverbyteIcsUtils.pas(1525): E2033 Types of actual and formal var parameters must be identical
[dccosx64 Error] OverbyteIcsUtils.pas(1526): E2003 Undeclared identifier: 'SetSystemTime'
[dccosx64 Error] OverbyteIcsUtils.pas(2337): E1025 Unsupported language feature: 'ASM'
[dccosx64 Error] OverbyteIcsUtils.pas(2337): E2029 ';' expected but 'ASM' found
[dccosx64 Warning] OverbyteIcsUtils.pas(2337): W1011 Text after final 'END.' - ignored by compiler
[dccosx64 Error] OverbyteIcsUtils.pas(392): E2065 Unsatisfied forward or external declaration: 'TIcsFileStreamW.Create'
[dccosx64 Error] OverbyteIcsUtils.pas(393): E2065 Unsatisfied forward or external declaration: 'TIcsFileStreamW.Create'
[dccosx64 Error] OverbyteIcsUtils.pas(394): E2065 Unsatisfied forward or external declaration: 'TIcsFileStreamW.Create'
[dccosx64 Error] OverbyteIcsUtils.pas(395): E2065 Unsatisfied forward or external declaration: 'TIcsFileStreamW.Create'
[dccosx64 Error] OverbyteIcsUtils.pas(396): E2065 Unsatisfied forward or external declaration: 'TIcsFileStreamW.Destroy'
[dccosx64 Error] OverbyteIcsUtils.pas(451): E2065 Unsatisfied forward or external declaration: 'IcsBufferToUnicode'
[dccosx64 Error] OverbyteIcsUtils.pas(454): E2065 Unsatisfied forward or external declaration: 'IcsBufferToUnicode'
[dccosx64 Error] OverbyteIcsUtils.pas(457): E2065 Unsatisfied forward or external declaration: 'IcsGetWideCharCount'
[dccosx64 Error] OverbyteIcsUtils.pas(460): E2065 Unsatisfied forward or external declaration: 'IcsGetWideChars'
[dccosx64 Error] OverbyteIcsUtils.pas(461): E2065 Unsatisfied forward or external declaration: 'StreamWriteString'
[dccosx64 Error] OverbyteIcsUtils.pas(462): E2065 Unsatisfied forward or external declaration: 'StreamWriteString'
[dccosx64 Error] OverbyteIcsUtils.pas(463): E2065 Unsatisfied forward or external declaration: 'StreamWriteString'
[dccosx64 Error] OverbyteIcsUtils.pas(464): E2065 Unsatisfied forward or external declaration: 'StreamWriteString'
[dccosx64 Error] OverbyteIcsUtils.pas(465): E2065 Unsatisfied forward or external declaration: 'StreamWriteString'
[dccosx64 Error] OverbyteIcsUtils.pas(468): E2065 Unsatisfied forward or external declaration: 'IcsAppendStr'
[dccosx64 Error] OverbyteIcsUtils.pas(469): E2065 Unsatisfied forward or external declaration: 'atoi'
[dccosx64 Error] OverbyteIcsUtils.pas(470): E2065 Unsatisfied forward or external declaration: 'atoi'
[dccosx64 Error] OverbyteIcsUtils.pas(472): E2065 Unsatisfied forward or external declaration: 'atoi64'
[dccosx64 Error] OverbyteIcsUtils.pas(473): E2065 Unsatisfied forward or external declaration: 'atoi64'
[dccosx64 Error] OverbyteIcsUtils.pas(475): E2065 Unsatisfied forward or external declaration: 'IcsCalcTickDiff'
[dccosx64 Error] OverbyteIcsUtils.pas(476): E2065 Unsatisfied forward or external declaration: 'StringToUtf8'
[dccosx64 Error] OverbyteIcsUtils.pas(477): E2065 Unsatisfied forward or external declaration: 'StringToUtf8'
[dccosx64 Error] OverbyteIcsUtils.pas(478): E2065 Unsatisfied forward or external declaration: 'Utf8ToStringW'
[dccosx64 Error] OverbyteIcsUtils.pas(479): E2065 Unsatisfied forward or external declaration: 'Utf8ToStringA'
[dccosx64 Error] OverbyteIcsUtils.pas(480): E2065 Unsatisfied forward or external declaration: 'CheckUnicodeToAnsi'
[dccosx64 Error] OverbyteIcsUtils.pas(482): E2065 Unsatisfied forward or external declaration: 'IsUtf8TrailByte'
[dccosx64 Error] OverbyteIcsUtils.pas(483): E2065 Unsatisfied forward or external declaration: 'IsUtf8LeadByte'
[dccosx64 Error] OverbyteIcsUtils.pas(484): E2065 Unsatisfied forward or external declaration: 'IcsUtf8Size'
[dccosx64 Error] OverbyteIcsUtils.pas(488): E2065 Unsatisfied forward or external declaration: 'IsUtf8Valid'
[dccosx64 Error] OverbyteIcsUtils.pas(489): E2065 Unsatisfied forward or external declaration: 'IsUtf8Valid'
[dccosx64 Error] OverbyteIcsUtils.pas(490): E2065 Unsatisfied forward or external declaration: 'CharsetDetect'
[dccosx64 Error] OverbyteIcsUtils.pas(491): E2065 Unsatisfied forward or external declaration: 'CharsetDetect'
[dccosx64 Error] OverbyteIcsUtils.pas(492): E2065 Unsatisfied forward or external declaration: 'IcsCharNextUtf8'
[dccosx64 Error] OverbyteIcsUtils.pas(493): E2065 Unsatisfied forward or external declaration: 'IcsCharPrevUtf8'
[dccosx64 Error] OverbyteIcsUtils.pas(494): E2065 Unsatisfied forward or external declaration: 'ConvertCodepage'
[dccosx64 Error] OverbyteIcsUtils.pas(495): E2065 Unsatisfied forward or external declaration: 'GetBomFromCodePage'
[dccosx64 Error] OverbyteIcsUtils.pas(496): E2065 Unsatisfied forward or external declaration: 'htoin'
[dccosx64 Error] OverbyteIcsUtils.pas(497): E2065 Unsatisfied forward or external declaration: 'htoin'
[dccosx64 Error] OverbyteIcsUtils.pas(498): E2065 Unsatisfied forward or external declaration: 'htoi2'
[dccosx64 Error] OverbyteIcsUtils.pas(499): E2065 Unsatisfied forward or external declaration: 'htoi2'
[dccosx64 Error] OverbyteIcsUtils.pas(500): E2065 Unsatisfied forward or external declaration: 'IcsBufferToHex'
[dccosx64 Error] OverbyteIcsUtils.pas(501): E2065 Unsatisfied forward or external declaration: 'IcsBufferToHex'
[dccosx64 Error] OverbyteIcsUtils.pas(502): E2065 Unsatisfied forward or external declaration: 'IcsBufferToHex'
[dccosx64 Error] OverbyteIcsUtils.pas(503): E2065 Unsatisfied forward or external declaration: 'IcsHexToBin'
[dccosx64 Error] OverbyteIcsUtils.pas(504): E2065 Unsatisfied forward or external declaration: 'IsXDigit'
[dccosx64 Error] OverbyteIcsUtils.pas(505): E2065 Unsatisfied forward or external declaration: 'IsXDigit'
[dccosx64 Error] OverbyteIcsUtils.pas(506): E2065 Unsatisfied forward or external declaration: 'XDigit'
[dccosx64 Error] OverbyteIcsUtils.pas(507): E2065 Unsatisfied forward or external declaration: 'XDigit'
[dccosx64 Error] OverbyteIcsUtils.pas(508): E2065 Unsatisfied forward or external declaration: 'IsCharInSysCharSet'
[dccosx64 Error] OverbyteIcsUtils.pas(509): E2065 Unsatisfied forward or external declaration: 'IsCharInSysCharSet'
[dccosx64 Error] OverbyteIcsUtils.pas(510): E2065 Unsatisfied forward or external declaration: 'IsDigit'
[dccosx64 Error] OverbyteIcsUtils.pas(511): E2065 Unsatisfied forward or external declaration: 'IsDigit'
[dccosx64 Error] OverbyteIcsUtils.pas(512): E2065 Unsatisfied forward or external declaration: 'IsSpace'
[dccosx64 Error] OverbyteIcsUtils.pas(513): E2065 Unsatisfied forward or external declaration: 'IsSpace'
[dccosx64 Error] OverbyteIcsUtils.pas(514): E2065 Unsatisfied forward or external declaration: 'IsCRLF'
[dccosx64 Error] OverbyteIcsUtils.pas(515): E2065 Unsatisfied forward or external declaration: 'IsCRLF'
[dccosx64 Error] OverbyteIcsUtils.pas(516): E2065 Unsatisfied forward or external declaration: 'IsSpaceOrCRLF'
[dccosx64 Error] OverbyteIcsUtils.pas(517): E2065 Unsatisfied forward or external declaration: 'IsSpaceOrCRLF'
[dccosx64 Error] OverbyteIcsUtils.pas(518): E2065 Unsatisfied forward or external declaration: 'IsPathSep'
[dccosx64 Error] OverbyteIcsUtils.pas(519): E2065 Unsatisfied forward or external declaration: 'IsPathSep'
[dccosx64 Error] OverbyteIcsUtils.pas(520): E2065 Unsatisfied forward or external declaration: 'XDigit2'
[dccosx64 Error] OverbyteIcsUtils.pas(521): E2065 Unsatisfied forward or external declaration: 'stpblk'
[dccosx64 Fatal Error] OverbyteIcsUtils.pas(522): E2226 Compilation terminated; too many errors
Failed
Elapsed time: 00:00:00.6
==========================================================================================================
Digging further in the projectgroup I see several packages (for example IcsVclD103Run.bpl) with only the Windows 32-bit Target Platform. 

Hope it helps you to make the project will compile with OSX64.

Share this post


Link to post

And what happens when you build for MacOS?  I think you will get the same errors.  It seems GetSystemTime is Windows only so need some conditional code there, guess no-one has tried to build for MacOS for a few months since that was added.  You can try making those two UTC function dummies removing the real code, I think they are only used for the time client and server.  Sorry, I won't be looking at this immediately.

 

Angus

 

  • Like 1

Share this post


Link to post

Did you try removing the offending Windows only SystemTime functions?  Did ICS then build okay on MacOs64?  I've corrected that problem in master, but need to know if other MacOS errors then occur.

 

Angus

 

Share this post


Link to post

I'm sorry : I run into dozens of errors in the units OverbyteIcsUtils , OverbyteIcsStreams etc. . Not only SystemTime functions. I  did set a compiler directive PUREPASCAL (function IcsSwap16   and others) . Errors for GetComputerNameW  , GetThreadLocale,  etc etc etc.

To many errors. So I don't understand why someone can say the project is to compile for OSX.  I'am sorry. But I did give it up.

Share this post


Link to post
Guest
12 hours ago, angelusb said:

Not only SystemTime functions. I  did set a compiler directive PUREPASCAL (function IcsSwap16   and others) . Errors for GetComputerNameW  , GetThreadLocale,  etc etc etc.

All of those should be controlled by a directive as they are not included when compiling to Android, right ? 

One more thing i just recently got familiar with ICS or the lets say the current one, it did grow big since 7 years ago, @Angus Robertson impressive !

 

Anyway i don't have OSX, but i am sure if Angus have access to one he can make it compile and run in less an hour if not minutes, so If someone have OSX and will to give Agnus a TeamViewer access, please discuss that here or contact Agnus in DM and that of course if Angus agree to do so and confirm it here.

Share this post


Link to post

ICS is a project developed by volunteers and offered free of charge to the community.  Volunteers come and go, and currently there are none helping with C++ and MacOS, so our level of support depends on reports from end users, and we try to react.  We spend our time developing for platforms used by the majority of Delphi users, if those on other platforms don't help, they should not expect support.

 

V8.60 earlier this year added a lot of new components and it seems no MacOS user has tried to build this, thus the errors were not found.  So download V8.59 or earlier which should be okay for MacOS. The last bug specifically fixed against MacOS was in V8.52.   

 

I will fix or workaround GetComputerNameW and GetThreadLocale,  etc etc etc does not really help, there are not many new APIs.  I really don't have the time spend hours on this stuff, I just need to be told what to fix.

 

Angus

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×