Procházet zdrojové kódy

Significant MacOS X progress

Compilable and working Wallet project + working Miner for MacOS X.  General multiplatform update for projects and updates for headers.
maciej-izak před 7 roky
rodič
revize
7b3d523c84

+ 45 - 0
PascalCoinWallet.app/Contents/Info.plist

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>English</string>
+  <key>CFBundleExecutable</key>
+  <string>PascalCoinWallet</string>
+  <key>CFBundleName</key>
+  <string>PascalCoin Wallet</string>
+  <key>CFBundleIdentifier</key>
+  <string>com.company.PascalCoinWallet</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundlePackageType</key>
+  <string>APPL</string>
+  <key>CFBundleSignature</key>
+  <string>Pasc</string>
+  <key>CFBundleShortVersionString</key>
+  <string>0.1</string>
+  <key>CFBundleVersion</key>
+  <string>1</string>
+  <key>CSResourcesFileMapped</key>
+  <true/>
+  <key>CFBundleDocumentTypes</key>
+  <array>
+    <dict>
+      <key>CFBundleTypeRole</key>
+      <string>Viewer</string>
+      <key>CFBundleTypeExtensions</key>
+      <array>
+        <string>*</string>
+      </array>
+      <key>CFBundleTypeOSTypes</key>
+      <array>
+        <string>fold</string>
+        <string>disk</string>
+        <string>****</string>
+      </array>
+    </dict>
+  </array>
+  <key>NSHighResolutionCapable</key>
+  <true/>
+</dict>
+</plist>

+ 1 - 0
PascalCoinWallet.app/Contents/MacOS/PascalCoinWallet

@@ -0,0 +1 @@
+../../../PascalCoinWallet

+ 1 - 0
PascalCoinWallet.app/Contents/PkgInfo

@@ -0,0 +1 @@
+APPL????

+ 4 - 1
PascalCoinWallet.dpr

@@ -1,9 +1,12 @@
 program PascalCoinWallet;
 
 {$mode delphi}
+{$DEFINE UseCThreads}
 
 uses
-  {$IFDEF LINUX}cthreads,{$ENDIF}
+  {$IFDEF UNIX}{$IFDEF UseCThreads}
+  cthreads,
+  {$ENDIF}{$ENDIF}
   Interfaces,
   sysutils,
   UOpenSSL,

+ 0 - 1
PascalCoinWallet.lpi

@@ -12,7 +12,6 @@
       <SessionStorage Value="InProjectDir"/>
       <MainUnit Value="0"/>
       <Title Value="PascalCoin Wallet"/>
-      <UseAppBundle Value="False"/>
       <ResourceType Value="res"/>
       <Icon Value="0"/>
     </General>

+ 5 - 4
Units/Forms/UFRMLogs.pas

@@ -31,7 +31,7 @@ type
     pnlTopLogs: TPanel;
     procedure FormCreate(Sender: TObject);
     procedure FormDestroy(Sender: TObject);
-    procedure OnNewLog(logtype : TLogType; Time : TDateTime; ThreadID : Cardinal; Const sender, logtext : AnsiString);
+    procedure OnNewLog(logtype : TLogType; Time : TDateTime; ThreadID : TThreadID; Const sender, logtext : AnsiString);
   private
     { private declarations }
   public
@@ -58,11 +58,11 @@ begin
   TUserInterface.Log.OnNewLog := nil;
 end;
 
-procedure TFRMLogs.OnNewLog(logtype: TLogType; Time : TDateTime; ThreadID : Cardinal; const sender,logtext: AnsiString);
+procedure TFRMLogs.OnNewLog(logtype: TLogType; Time : TDateTime; ThreadID : TThreadID; const sender,logtext: AnsiString);
 Var s : AnsiString;
 begin
   if (logtype=ltdebug) And (Not cbShowDebugLogs.Checked) then exit;
-  if ThreadID=MainThreadID then s := ' MAIN:' else s:=' TID:';
+  if ThreadID=MainThreadID then s := 'MAIN:' else s:='TID:';
   if MemoLogs.Lines.Count>300 then begin
     // Limit max lines in logs...
     memoLogs.Lines.BeginUpdate;
@@ -72,7 +72,8 @@ begin
       memoLogs.Lines.EndUpdate;
     end;
   end;
-  memoLogs.Lines.Add(formatDateTime('dd/mm/yyyy hh:nn:ss.zzz',Time)+s+IntToHex(ThreadID,8)+' ['+CT_LogType[Logtype]+'] <'+sender+'> '+logtext);
+  memoLogs.Lines.Add('%s %s %p [%s] <%s> %s',
+    [FormatDateTime('dd/mm/yyyy hh:nn:ss.zzz',Time), s, ThreadID, CT_LogType[Logtype], sender, logtext]);
 end;
 
 end.

+ 1 - 1
Units/Forms/UFRMNodes.pas

@@ -220,7 +220,7 @@ begin
     strings.BeginUpdate;
     Try
       strings.Clear;
-      strings.Add('BlackList Updated: '+DateTimeToStr(now)+' by TID:'+IntToHex(TThread.CurrentThread.ThreadID,8));
+      strings.Add('BlackList Updated: %s by TID: %p', [DateTimeToStr(now), TThread.CurrentThread.ThreadID]);
       j := 0; n:=0;
       for i := 0 to l.Count - 1 do begin
         P := l[i];

+ 4 - 0
Units/Forms/UUserInterface.pas

@@ -189,12 +189,16 @@ begin
 
     FTrayIcon := TTrayIcon.Create(FMainForm);
     FTrayIcon.OnDblClick := OnTrayIconDblClick;
+    {$IFNDEF LCLCarbon}
     FTrayIcon.Visible := true;
+    {$ENDIF}
     FTrayIcon.Hint := FMainForm.Caption;
     FTrayIcon.BalloonTitle := 'Restoring the window.';
     FTrayIcon.BalloonHint := 'Double click the system tray icon to restore Pascal Coin';
     FTrayIcon.BalloonFlags := bfInfo;
+    {$IFNDEF LCLCarbon}
     FTrayIcon.Show;
+    {$ENDIF}
     FTimerUpdateStatus := TTimer.Create(FMainForm);
     FTimerUpdateStatus.Enabled := false;
     FDisplayedStartupSyncDialog:=false;

+ 11 - 0
Units/PascalCoin/UOpenSSL.pas

@@ -28,10 +28,21 @@ Uses UOpenSSLdef;
 
 var
 {$IFDEF UNIX}
+  {$IF not (Defined(LINUX) or Defined(DARWIN))}
+    {$ERROR 'unsupported target'}
+  {$IFEND}
   {$IFDEF OpenSSL10}
+  {$IFDEF LINUX}
   SSL_C_LIB : AnsiString = './libcrypto.so.1.0.0';
   {$ELSE}
+  SSL_C_LIB : AnsiString = './libcrypto.1.0.0.dylib';
+  {$ENDIF}
+  {$ELSE}
+  {$IFDEF LINUX}
   SSL_C_LIB : AnsiString = './libcrypto.so.1.1';
+  {$ELSE}
+  SSL_C_LIB : AnsiString = './libcrypto.1.1.dylib';
+  {$ENDIF}
   {$ENDIF}
 {$ELSE}
   // Windows + Lazarus uses a OpenSSL v1.0 32 or 64 bits

+ 3 - 3
Units/Utils/UFolderHelper.pas

@@ -48,17 +48,17 @@ Type TFileVersionInfo = record
 implementation
 
 uses
-  {$IFnDEF LINUX}
+  {$IF not (Defined(LINUX) or Defined(DARWIN))}
   Windows,
   {$DEFINE FILEVERSIONINFO}
-  {$ENDIF}
+  {$IFEND}
   SysUtils;
 
 {$I .\..\PascalCoin\config.inc}
 
 class function TFolderHelper.GetAppDataFolder: string;
 begin
-  {$IFDEF LINUX}
+  {$IFDEF UNIX}
   Result :=GetEnvironmentVariable('HOME');
   {$ELSE}
   Result :=GetEnvironmentVariable('APPDATA');