From 9e0ec288a7392c4e32bc9d374101a754b648caf6 Mon Sep 17 00:00:00 2001 From: LongDirtyAnimAlf Date: Wed, 23 Nov 2016 19:22:27 +0100 Subject: [PATCH] Some more features and bug-fixes. --- chimp.png | Bin 0 -> 5455 bytes extrasettings.lfm | 283 ++++++++++++++++++++++++---------------- extrasettings.pas | 52 ++------ fpclazup.lpi | 14 +- fpcup.ini | 15 ++- fpcupdeluxe.lpi | 92 ++++++------- fpcupdeluxe.res | Bin 144316 -> 144328 bytes fpcupdeluxemainform.lfm | 12 +- fpcupdeluxemainform.pas | 81 ++++++++---- installerfpc.pas | 56 +++----- installerlazarus.pas | 10 ++ m_any_to_darwin386.pas | 76 ++++------- m_any_to_darwinx64.pas | 69 +++++----- revision.inc | 2 +- 14 files changed, 395 insertions(+), 367 deletions(-) create mode 100644 chimp.png diff --git a/chimp.png b/chimp.png new file mode 100644 index 0000000000000000000000000000000000000000..05acd9b1ebda15ed0a1764b750ec605cd50401ac GIT binary patch literal 5455 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 literal 0 HcmV?d00001 diff --git a/extrasettings.lfm b/extrasettings.lfm index a21c3b4a..e4a8199b 100644 --- a/extrasettings.lfm +++ b/extrasettings.lfm @@ -1,10 +1,10 @@ object Form2: TForm2 - Left = 434 - Height = 511 - Top = 185 + Left = 654 + Height = 515 + Top = 150 Width = 708 Caption = 'Advanced settings' - ClientHeight = 511 + ClientHeight = 515 ClientWidth = 708 OnCreate = FormCreate OnDestroy = FormDestroy @@ -13,7 +13,7 @@ object Form2: TForm2 object BitBtn1: TBitBtn Left = 504 Height = 31 - Top = 468 + Top = 472 Width = 89 Anchors = [akRight, akBottom] Default = True @@ -25,7 +25,7 @@ object Form2: TForm2 object BitBtn2: TBitBtn Left = 605 Height = 31 - Top = 468 + Top = 472 Width = 89 Anchors = [akRight, akBottom] Cancel = True @@ -36,97 +36,135 @@ object Form2: TForm2 end object GroupBox1: TGroupBox Left = 8 - Height = 168 + Height = 128 Top = 8 Width = 686 Anchors = [akTop, akLeft, akRight] Caption = 'Proxy settings' - ClientHeight = 148 + ClientHeight = 108 ClientWidth = 682 TabOrder = 2 object Label1: TLabel - Left = 8 + AnchorSideLeft.Control = GroupBox1 + AnchorSideTop.Control = GroupBox1 + Left = 4 Height = 15 - Top = 16 + Top = 4 Width = 89 + BorderSpacing.Left = 4 + BorderSpacing.Top = 4 Caption = 'HTTP proxy URL:' ParentColor = False end object EditHTTPProxyHost: TEdit - Left = 8 + AnchorSideLeft.Control = GroupBox1 + AnchorSideTop.Control = Label1 + AnchorSideTop.Side = asrBottom + AnchorSideBottom.Control = Label1 + Left = 4 Height = 23 - Top = 40 - Width = 532 + Top = 23 + Width = 536 Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 4 + BorderSpacing.Top = 4 TabOrder = 0 end object Label2: TLabel + AnchorSideLeft.Control = EditHTTPProxyHost + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = Label1 Left = 548 Height = 15 - Top = 16 + Top = 4 Width = 90 - Anchors = [akTop, akRight] + BorderSpacing.Left = 8 Caption = 'HTTP proxy port:' ParentColor = False end object EditHTTPProxyPort: TEdit + AnchorSideLeft.Control = EditHTTPProxyHost + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = EditHTTPProxyHost Left = 548 Height = 23 - Top = 40 + Top = 23 Width = 120 - Anchors = [akTop, akRight] + BorderSpacing.Left = 8 NumbersOnly = True TabOrder = 1 end object Label3: TLabel - Left = 8 + AnchorSideLeft.Control = GroupBox1 + AnchorSideTop.Control = EditHTTPProxyHost + AnchorSideTop.Side = asrBottom + Left = 4 Height = 15 - Top = 80 + Top = 58 Width = 120 + BorderSpacing.Left = 4 + BorderSpacing.Top = 12 Caption = 'HTTP proxy username:' ParentColor = False end object EditHTTPProxyUser: TEdit - Left = 8 + AnchorSideLeft.Control = GroupBox1 + AnchorSideTop.Control = Label3 + AnchorSideTop.Side = asrBottom + Left = 4 Height = 23 - Top = 104 + Top = 77 Width = 152 + BorderSpacing.Left = 4 + BorderSpacing.Top = 4 TabOrder = 2 end object Label4: TLabel - Left = 184 + AnchorSideLeft.Control = EditHTTPProxyUser + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = Label3 + Left = 176 Height = 15 - Top = 80 + Top = 58 Width = 118 + BorderSpacing.Left = 20 Caption = 'HTTP proxy password:' ParentColor = False end object EditHTTPProxyPassword: TEdit - Left = 184 + AnchorSideLeft.Control = EditHTTPProxyUser + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = EditHTTPProxyUser + Left = 176 Height = 23 - Top = 104 + Top = 77 Width = 152 + BorderSpacing.Left = 20 EchoMode = emPassword PasswordChar = '*' TabOrder = 3 end end object GroupBox2: TGroupBox - Left = 11 - Height = 126 - Top = 186 + Left = 8 + Height = 176 + Top = 144 Width = 430 Anchors = [akTop, akLeft, akRight] Caption = 'Miscellaneous settings' - ClientHeight = 106 + ClientHeight = 156 ClientWidth = 426 TabOrder = 3 object CheckRepo: TCheckBox - Left = 5 + AnchorSideLeft.Control = GroupBox2 + AnchorSideTop.Control = GroupBox2 + Left = 4 Height = 19 Hint = 'Download whole repository, or only latest files' - Top = 8 + Top = 4 Width = 221 + BorderSpacing.Left = 4 + BorderSpacing.Top = 4 Caption = 'Get FPC/Laz repositories (default=yes)' Checked = True ParentShowHint = False @@ -135,66 +173,104 @@ object Form2: TForm2 TabOrder = 0 end object CheckPackageRepo: TCheckBox - Left = 5 + AnchorSideLeft.Control = GroupBox2 + AnchorSideTop.Control = CheckRepo + AnchorSideTop.Side = asrBottom + Left = 4 Height = 19 Hint = 'Download whole repository, or only latest files' - Top = 36 + Top = 29 Width = 219 + BorderSpacing.Left = 4 + BorderSpacing.Top = 6 Caption = 'Get package repositories (default=no)' ParentShowHint = False ShowHint = True TabOrder = 1 end object CheckIncludeLCL: TCheckBox - Left = 5 + AnchorSideLeft.Control = GroupBox2 + AnchorSideTop.Control = CheckPackageRepo + AnchorSideTop.Side = asrBottom + Left = 4 Height = 19 Hint = 'Download whole repository, or only latest files' - Top = 64 + Top = 54 Width = 260 + BorderSpacing.Left = 4 + BorderSpacing.Top = 6 Caption = 'Include LCL with cross-compiler (default=no)' ParentShowHint = False ShowHint = True TabOrder = 2 end object CheckUpdateOnly: TCheckBox - Left = 248 + AnchorSideLeft.Control = GroupBox2 + AnchorSideTop.Control = CheckIncludeLCL + AnchorSideTop.Side = asrBottom + Left = 4 Height = 19 Hint = 'Download whole repository, or only latest files' - Top = 8 + Top = 79 Width = 129 - Caption = 'FPC/Laz update only' + BorderSpacing.Left = 4 + BorderSpacing.Top = 6 + Caption = 'FPC/Laz rebuild only' ParentShowHint = False ShowHint = True TabOrder = 3 end - object CheckIncludeFPCIDE1: TCheckBox - Left = 248 + object CheckIncludeFPCIDE: TCheckBox + AnchorSideLeft.Control = GroupBox2 + AnchorSideTop.Control = CheckUpdateOnly + AnchorSideTop.Side = asrBottom + Left = 4 Height = 19 Hint = 'Download whole repository, or only latest files' - Top = 36 + Top = 104 Width = 173 + BorderSpacing.Left = 4 + BorderSpacing.Top = 6 Caption = 'Include FPC IDE (default=no)' Enabled = False ParentShowHint = False ShowHint = True TabOrder = 4 end + object CheckIncludeHelp: TCheckBox + AnchorSideLeft.Control = GroupBox2 + AnchorSideTop.Control = CheckIncludeFPCIDE + AnchorSideTop.Side = asrBottom + Left = 4 + Height = 19 + Hint = 'Download whole repository, or only latest files' + Top = 129 + Width = 160 + BorderSpacing.Left = 4 + BorderSpacing.Top = 6 + Caption = 'Include Help (default=yes)' + Checked = True + ParentShowHint = False + ShowHint = True + State = cbChecked + TabOrder = 5 + end end object GroupBox3: TGroupBox Left = 457 - Height = 126 - Top = 186 + Height = 120 + Top = 144 Width = 237 Anchors = [akTop, akRight] Caption = 'NewPascal' - ClientHeight = 106 + ClientHeight = 100 ClientWidth = 233 Enabled = False TabOrder = 4 object RadioGroupNPFPCbranch: TRadioGroup Left = 8 - Height = 96 - Top = 8 + Height = 94 + Top = 0 Width = 104 AutoFill = True Caption = 'NP branch' @@ -205,7 +281,7 @@ object Form2: TForm2 ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 - ClientHeight = 76 + ClientHeight = 74 ClientWidth = 100 ItemIndex = 2 Items.Strings = ( @@ -217,8 +293,8 @@ object Form2: TForm2 end object RadioGroupNPLazarusbranch: TRadioGroup Left = 120 - Height = 96 - Top = 8 + Height = 94 + Top = 0 Width = 104 AutoFill = True Caption = 'Lazarus branch' @@ -229,7 +305,7 @@ object Form2: TForm2 ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 - ClientHeight = 76 + ClientHeight = 74 ClientWidth = 100 ItemIndex = 2 Items.Strings = ( @@ -243,38 +319,51 @@ object Form2: TForm2 object GroupBox4: TGroupBox Left = 8 Height = 179 - Top = 320 + Top = 328 Width = 272 Caption = 'Binutils and library location' ClientHeight = 159 ClientWidth = 268 TabOrder = 5 object ComboBoxOS: TComboBox - Left = 128 + AnchorSideLeft.Control = ComboBoxCPU + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ComboBoxCPU + Left = 124 Height = 23 Top = 8 Width = 136 + BorderSpacing.Left = 8 ItemHeight = 15 OnChange = ComboBoxCPUOSChange TabOrder = 0 Text = 'Select OS' end object ComboBoxCPU: TComboBox - Left = 8 + AnchorSideLeft.Control = GroupBox4 + AnchorSideTop.Control = GroupBox4 + Left = 4 Height = 23 Top = 8 Width = 112 + BorderSpacing.Left = 4 + BorderSpacing.Top = 8 ItemHeight = 15 OnChange = ComboBoxCPUOSChange TabOrder = 1 Text = 'Select CPU' end object RadioGroup3: TRadioGroup - Left = 8 + AnchorSideLeft.Control = GroupBox4 + AnchorSideTop.Control = ComboBoxCPU + AnchorSideTop.Side = asrBottom + Left = 4 Height = 50 Top = 38 Width = 256 AutoFill = True + BorderSpacing.Left = 4 + BorderSpacing.Top = 7 Caption = 'Search options' ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize @@ -297,38 +386,56 @@ object Form2: TForm2 TabOrder = 2 end object EditLibLocation: TEdit - Left = 10 + AnchorSideLeft.Control = GroupBox4 + AnchorSideTop.Control = RadioGroup3 + AnchorSideTop.Side = asrBottom + Left = 4 Height = 23 - Top = 97 + Top = 98 Width = 182 + BorderSpacing.Left = 4 + BorderSpacing.Top = 10 Enabled = False ReadOnly = True TabOrder = 3 end object EditBinLocation: TEdit - Left = 10 + AnchorSideLeft.Control = GroupBox4 + AnchorSideTop.Control = EditLibLocation + AnchorSideTop.Side = asrBottom + Left = 4 Height = 23 - Top = 128 + Top = 127 Width = 182 + BorderSpacing.Left = 4 + BorderSpacing.Top = 6 Enabled = False ReadOnly = True TabOrder = 4 end object btnSelectLibDir: TButton - Left = 198 + AnchorSideLeft.Control = EditLibLocation + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = EditLibLocation + Left = 194 Height = 23 - Top = 97 + Top = 98 Width = 66 + BorderSpacing.Left = 8 Caption = 'Libraries' Enabled = False OnClick = OnDirectorySelect TabOrder = 5 end object btnSelectBinDir: TButton - Left = 198 + AnchorSideLeft.Control = EditBinLocation + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = EditBinLocation + Left = 194 Height = 23 - Top = 128 + Top = 127 Width = 66 + BorderSpacing.Left = 8 Caption = 'Tools' Enabled = False OnClick = OnDirectorySelect @@ -338,9 +445,9 @@ object Form2: TForm2 object GroupBoxFPCLazBranchRevision: TGroupBox Left = 296 Height = 128 - Top = 320 + Top = 328 Width = 250 - Caption = 'FPC and Lazarus branch and revision' + Caption = 'FPC/Laz branch and revision' ClientHeight = 108 ClientWidth = 246 Enabled = False @@ -406,53 +513,9 @@ object Form2: TForm2 TabOrder = 3 end end - object GroupBox5: TGroupBox - Left = 560 - Height = 128 - Top = 320 - Width = 128 - Caption = 'osxcross' - ClientHeight = 108 - ClientWidth = 124 - TabOrder = 7 - object btnOSXCross: TButton - Left = 11 - Height = 20 - Top = 32 - Width = 105 - Caption = 'OSXCross' - OnClick = OSXCrossSelect - TabOrder = 0 - end - object EditOSXCrossLocation: TEdit - Left = 12 - Height = 23 - Top = 8 - Width = 103 - ReadOnly = True - TabOrder = 1 - end - object EditCygwinLocation: TEdit - Left = 11 - Height = 23 - Top = 56 - Width = 103 - ReadOnly = True - TabOrder = 2 - end - object btnCygwin: TButton - Left = 10 - Height = 20 - Top = 80 - Width = 105 - Caption = 'Cygwin' - OnClick = OSXCrossSelect - TabOrder = 3 - end - end object SelectDirectoryDialog1: TSelectDirectoryDialog Options = [ofPathMustExist, ofFileMustExist, ofEnableSizing, ofViewDetail] - Left = 254 - Top = 24 + left = 254 + top = 24 end end diff --git a/extrasettings.pas b/extrasettings.pas index 61e3a204..cb2a8586 100644 --- a/extrasettings.pas +++ b/extrasettings.pas @@ -30,19 +30,16 @@ TCrossUtil = record TForm2 = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; - btnCygwin: TButton; btnSelectLibDir: TButton; btnSelectBinDir: TButton; - btnOSXCross: TButton; - CheckIncludeFPCIDE1: TCheckBox; + CheckIncludeFPCIDE: TCheckBox; + CheckIncludeHelp: TCheckBox; CheckIncludeLCL: TCheckBox; CheckUpdateOnly: TCheckBox; CheckRepo: TCheckBox; CheckPackageRepo: TCheckBox; ComboBoxOS: TComboBox; ComboBoxCPU: TComboBox; - EditOSXCrossLocation: TEdit; - EditCygwinLocation: TEdit; EditFPCbranch: TEdit; EditFPCrevision: TEdit; EditLazarusbranch: TEdit; @@ -57,7 +54,6 @@ TForm2 = class(TForm) EditHTTPProxyPort: TEdit; EditHTTPProxyUser: TEdit; EditHTTPProxyPassword: TEdit; - GroupBox5: TGroupBox; GroupBoxFPCLazBranchRevision: TGroupBox; Label1: TLabel; Label2: TLabel; @@ -71,7 +67,6 @@ TForm2 = class(TForm) RadioGroupNPLazarusbranch: TRadioGroup; RadioGroup3: TRadioGroup; SelectDirectoryDialog1: TSelectDirectoryDialog; - procedure OSXCrossSelect(Sender: TObject); procedure ComboBoxCPUOSChange(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); @@ -83,12 +78,11 @@ TForm2 = class(TForm) function GetPackageRepo:boolean; function GetUpdateOnly:boolean; function GetIncludeLCL:boolean; + function GetIncludeHelp:boolean; function GetHTTPProxyHost:string; function GetHTTPProxyPort:integer; function GetHTTPProxyUser:string; function GetHTTPProxyPass:string; - function GetCygwinLocation:string; - function GetOSXCrossLocation:string; public function GetLibraryDirectory(aCPU,aOS:string):string; function GetToolsDirectory(aCPU,aOS:string):string; @@ -99,15 +93,12 @@ TForm2 = class(TForm) property UpdateOnly:boolean read GetUpdateOnly; property IncludeLCL:boolean read GetIncludeLCL; + property IncludeHelp:boolean read GetIncludeHelp; property HTTPProxyHost:string read GetHTTPProxyHost; property HTTPProxyPort:integer read GetHTTPProxyPort; property HTTPProxyUser:string read GetHTTPProxyUser; property HTTPProxyPass:string read GetHTTPProxyPass; - - property CygwinLocation:string read GetCygwinLocation; - property OSXCrossLocation:string read GetOSXCrossLocation; - end; var @@ -166,6 +157,7 @@ procedure TForm2.FormCreate(Sender: TObject); try CheckRepo.Checked:=ReadBool('General','GetRepo',True); CheckPackageRepo.Checked:=ReadBool('General','GetPackageRepo',False); + CheckIncludeHelp.Checked:=ReadBool('General','IncludeHelp',True); CheckIncludeLCL.Checked:=ReadBool('Cross','IncludeLCL',False); @@ -174,9 +166,6 @@ procedure TForm2.FormCreate(Sender: TObject); EditHTTPProxyUser.Text:=ReadString('ProxySettings','HTTPProxyUser',''); EditHTTPProxyPassword.Text:=ReadString('ProxySettings','HTTPProxyPass',''); - EditOSXCrossLocation.Text:=ReadString('OSXCross','OSXCrossLocation',''); - EditCygwinLocation.Text:=ReadString('OSXCross','CygwinLocation',''); - for OS := Low(TOS) to High(TOS) do begin for CPU := Low(TCPU) to High(TCPU) do @@ -209,17 +198,6 @@ procedure TForm2.ComboBoxCPUOSChange(Sender: TObject); end; end; -procedure TForm2.OSXCrossSelect(Sender: TObject); -begin - if Sender=btnOSXCross then SelectDirectoryDialog1.InitialDir:=EditOSXCrossLocation.Text; - if Sender=btnCygwin then SelectDirectoryDialog1.InitialDir:=EditCygwinLocation.Text; - if SelectDirectoryDialog1.Execute then - begin - if Sender=btnOSXCross then EditOSXCrossLocation.Text:=SelectDirectoryDialog1.FileName; - if Sender=btnCygwin then EditCygwinLocation.Text:=SelectDirectoryDialog1.FileName; - end; -end; - procedure TForm2.FormDestroy(Sender: TObject); var CPU:TCPU; @@ -230,6 +208,7 @@ procedure TForm2.FormDestroy(Sender: TObject); try WriteBool('General','GetRepo',CheckRepo.Checked); WriteBool('General','GetPackageRepo',CheckPackageRepo.Checked); + WriteBool('General','IncludeHelp',CheckIncludeHelp.Checked); WriteBool('Cross','IncludeLCL',CheckIncludeLCL.Checked); @@ -238,9 +217,6 @@ procedure TForm2.FormDestroy(Sender: TObject); WriteString('ProxySettings','HTTPProxyUser',EditHTTPProxyUser.Text); WriteString('ProxySettings','HTTPProxyPass',EditHTTPProxyPassword.Text); - WriteString('OSXCross','OSXCrossLocation',EditOSXCrossLocation.Text); - WriteString('OSXCross','CygwinLocation',EditCygwinLocation.Text); - for OS := Low(TOS) to High(TOS) do begin for CPU := Low(TCPU) to High(TCPU) do @@ -342,6 +318,11 @@ function TForm2.GetIncludeLCL:boolean; result:=CheckIncludeLCL.Checked; end; +function TForm2.GetIncludeHelp:boolean; +begin + result:=CheckIncludeHelp.Checked; +end; + function TForm2.GetHTTPProxyHost:string; begin result:=EditHTTPProxyHost.Text; @@ -362,16 +343,5 @@ function TForm2.GetHTTPProxyPass:string; result:=EditHTTPProxyPassword.Text; end; -function TForm2.GetCygwinLocation:string; -begin - result:=EditCygwinLocation.Text; -end; - -function TForm2.GetOSXCrossLocation:string; -begin - result:=EditOSXCrossLocation.Text; -end; - - end. diff --git a/fpclazup.lpi b/fpclazup.lpi index 594b2ae9..4e39a592 100644 --- a/fpclazup.lpi +++ b/fpclazup.lpi @@ -36,7 +36,7 @@ - + @@ -89,7 +89,7 @@ end;"/> - + @@ -124,7 +124,7 @@ end;"/> - + @@ -160,7 +160,7 @@ end;"/> - + @@ -199,7 +199,7 @@ end;"/> - + @@ -238,7 +238,7 @@ end;"/> - + @@ -497,7 +497,7 @@ end;"/> - + diff --git a/fpcup.ini b/fpcup.ini index 453ea8d4..547a6c2a 100755 --- a/fpcup.ini +++ b/fpcup.ini @@ -19,7 +19,7 @@ ; ... and you can define your own, like below: [fpcupinfo] -inifileversion=1.0.0.4 +inifileversion=1.0.0.5 [ALIASfpcURL] default=http://svn.freepascal.org/svn/fpc/tags/release_3_0_0 @@ -284,7 +284,7 @@ SVNURL=svn://svn.code.sf.net/p/lazarus-ccr/svn ;AddPackage23=$(Installdir)\components\chelper\chelper.lpk <<<<<<<<<< fpcup problem ;lclextensions is needed by vtv ;trunk version of lclextensions is needed by trunk vtv -AddPackage24=$(Installdir)\components\lclextensions\lclextensions_package.lpk +; AddPackage24=$(Installdir)\components\lclextensions\lclextensions_package.lpk AddPackage25=$(Installdir)\components\cmdline\cmdbox.lpk AddPackage26=$(Installdir)\components\colorpalette\lazcolorpalette.lpk ; At this moment, epiktimer does not compile, due to illegal characters in the lpk-files. @@ -385,7 +385,8 @@ UnInstall=rm -Rf $(Installdir) Name=virtualtreeview Description="Virtual Treeview 4.8" Installdir=$(fpcdir)/../ccr/$(name) -Requires=lclextensions +; Requires=lclextensions +Requires=luipack Enabled=0 SVNURL=svn://svn.code.sf.net/p/lazarus-ccr/svn/components/virtualtreeview-new AddPackage=$(Installdir)/branches/4.8/virtualtreeview_package.lpk @@ -397,14 +398,13 @@ UnInstall=rm -Rf $(Installdir) ; some room for extra (separate) lazarus-ccr modules [FPCUpModule18] -Name=luipacknew +Name=luipack Description="Extensive library and control set for Lazarus." Installdir=$(fpcdir)/../ccr/$(name) Enabled=0 -Requires=lclextensions GitURL=https://github.com/blikblum/luipack ArchiveURL=https://github.com/blikblum/luipack/archive/master.zip -; AddPackage1=$(Installdir)/lclextensions/lclextensions_package.lpk +AddPackage=$(Installdir)/lclextensions/lclextensions_package.lpk ; sqlite3 is needed for luicomponents !! ; AddPackage2=$(Installdir)/luicomponents/luicomponents.lpk ; AddPackage3=$(Installdir)/luicontrols/luicontrols.lpk @@ -415,7 +415,8 @@ UnInstall=rm -Rf $(Installdir) Name=virtualtreeviewnew Description="New Virtual Treeview" Installdir=$(fpcdir)/../ccr/$(name) -Requires=lclextensions +; Requires=lclextensions +Requires=luipack Enabled=0 ; vtv trunk needs lclextensions trunk GITURL=https://github.com/blikblum/VirtualTreeView-Lazarus diff --git a/fpcupdeluxe.lpi b/fpcupdeluxe.lpi index 7cfec3ab..7bbf71f1 100644 --- a/fpcupdeluxe.lpi +++ b/fpcupdeluxe.lpi @@ -21,35 +21,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -86,8 +58,8 @@ - - + + @@ -95,7 +67,7 @@ - + @@ -119,8 +91,8 @@ - - + + @@ -152,6 +124,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -237,7 +237,7 @@ - + @@ -250,8 +250,8 @@ - - + + @@ -265,7 +265,7 @@ - + @@ -278,8 +278,8 @@ - - + + @@ -293,7 +293,7 @@ - + @@ -306,8 +306,8 @@ - - + + @@ -321,7 +321,7 @@ - + @@ -334,8 +334,8 @@ - - + + diff --git a/fpcupdeluxe.res b/fpcupdeluxe.res index 21a422c57e9293487767557820228bfcef29eb31..f2af2bf3c82fb3780f98e286cae1cffb0da7f564 100644 GIT binary patch delta 126 zcmdn&^SQZr5f delta 152 zcmX@{oMX>(jtxiH7`Jae$|lLeXtMb}myE^czfRI(VnL~erI|&k#kM)gIjI#Tsd>ej z`FX{YFFtnP+!^_qkvT85d~!{60WNhD*2zq+Kgl_nKgMTrT`SMzc|`(~-6ME6H^!7Q Q;?UEq5Vu_+j&a3R0PdqcsQ>@~ diff --git a/fpcupdeluxemainform.lfm b/fpcupdeluxemainform.lfm index cf8a597a..b36f33eb 100644 --- a/fpcupdeluxemainform.lfm +++ b/fpcupdeluxemainform.lfm @@ -1,7 +1,7 @@ object Form1: TForm1 - Left = 342 + Left = 408 Height = 644 - Top = 170 + Top = 97 Width = 1046 Anchors = [] Caption = 'Form1' @@ -1991,12 +1991,12 @@ object Form1: TForm1 end object SelectDirectoryDialog1: TSelectDirectoryDialog Options = [ofHideReadOnly, ofPathMustExist, ofNoNetworkButton, ofEnableSizing, ofViewDetail] - Left = 72 - Top = 72 + left = 72 + top = 72 end object MainMenu1: TMainMenu - Left = 72 - Top = 128 + left = 72 + top = 128 object MenuItem1: TMenuItem Caption = 'About' OnClick = MenuItem1Click diff --git a/fpcupdeluxemainform.pas b/fpcupdeluxemainform.pas index 8d78a3d0..b7ee812c 100644 --- a/fpcupdeluxemainform.pas +++ b/fpcupdeluxemainform.pas @@ -107,7 +107,7 @@ implementation Const DELUXEFILENAME='fpcupdeluxe.ini'; FPCUPGITREPO='https://github.com/LongDirtyAnimAlf/Reiniero-fpcup'; - FPCUPDELUXEVERSION='0.99c'; + FPCUPDELUXEVERSION='0.99e'; resourcestring CrossGCCMsg = @@ -301,11 +301,36 @@ function ExistWordInString(aString:pchar;aSearchString:string;aSearchOptions: TS begin s:=SynEdit1.Lines[Line-1]; + // github error + if (ExistWordInString(PChar(s),'429 too many requests',[soDown])) then + begin + FG := clRed; //Text Color + BG := clNavy; //BackGround + Special := True; //Must be true + // add help into summary memo + Memo1.Lines.Append('GitHub blocked us due to too many download requests.'); + Memo1.Lines.Append('This will last for an hour, so please wait and be patient.'); + Memo1.Lines.Append('After this period, please re-run fpcupdeluxe.'); + end; + + // svn connection error + if (ExistWordInString(PChar(s),'unable to connect to a repository at url',[soDown])) then + begin + FG := clRed; //Text Color + BG := clNavy; //BackGround + Special := True; //Must be true + // add help into summary memo + Memo1.Lines.Append('SVN could not connect to the desired repository. URL:'); + Memo1.Lines.Append(FPCupManager.FPCURL); + Memo1.Lines.Append('Please check your connection. Or run the command to try yourself:'); + Memo1.Lines.Append(SynEdit1.Lines[Line-2]); + end; + if ExistWordInString(PChar(s),'svn: e',[soDown]) then begin - FG := clFuchsia; //Text Color - BG := clBlack; //BackGround - Special := True; //Must be true + FG := clFuchsia; + BG := clBlack; + Special := True; end; if ExistWordInString(PChar(s),'Executing :',[soWholeWord,soDown]) then @@ -380,16 +405,6 @@ function ExistWordInString(aString:pchar;aSearchString:string;aSearchOptions: TS end; end; - // github error - if (ExistWordInString(PChar(s),'429 Too Many Requests',[])) then - begin - FG := clRed; - BG := clNavy; - Special := True; - // add help into summary memo - Memo1.Lines.Append('Github blocked us due to too many download requests. This will last for an hour, so please wait and be patient. After this period, please re-run fpcupdeluxe.'); - end; - // diskspace error if (ExistWordInString(PChar(s),'Stream write error',[])) then begin @@ -397,7 +412,8 @@ function ExistWordInString(aString:pchar;aSearchString:string;aSearchOptions: TS BG := clNavy; Special := True; // add help into summary memo - Memo1.Lines.Append('There is not enough diskspace to finish this operation. Please free some space and re-run fpcupdeluxe.'); + Memo1.Lines.Append('There is not enough diskspace to finish this operation.'); + Memo1.Lines.Append('Please free some space and re-run fpcupdeluxe.'); end; @@ -410,7 +426,6 @@ procedure TForm1.QuickBtnClick(Sender: TObject); Revision,Branch:string; begin DisEnable(Sender,False); - Application.ProcessMessages; try PrepareRun; @@ -429,7 +444,7 @@ procedure TForm1.QuickBtnClick(Sender: TObject); s:='Going to install NewPascal'; FPCURL:='newpascal'; LazarusURL:='newpascal'; - Revision:='69e7216e7be1f42045a70a6f1c453f685da8b84b'; + //Revision:='69e7216e7be1f42045a70a6f1c453f685da8b84b'; Branch:='release'; //FPCupManager.IncludeModules:='mORMotFPC,zeos'; end; @@ -493,6 +508,11 @@ procedure TForm1.QuickBtnClick(Sender: TObject); FPCupManager.FPCURL:=FPCURL; FPCupManager.LazarusURL:=LazarusURL; + if NOT Form2.IncludeHelp then + begin + FPCupManager.SkipModules:='helpfpc,helplazarus'; + end; + AddMessage(s+'.'); sStatus:=s; @@ -505,6 +525,8 @@ procedure TForm1.QuickBtnClick(Sender: TObject); end; procedure TForm1.Button1Click(Sender: TObject); +var + FModuleList: TStringList; begin if (ListBox1.ItemIndex=-1) or (ListBox2.ItemIndex=-1) then begin @@ -512,12 +534,22 @@ procedure TForm1.Button1Click(Sender: TObject); exit; end; DisEnable(Sender,False); - Application.ProcessMessages; try PrepareRun; AddMessage('Going to install/update FPC and Lazarus with given options.'); sStatus:='Going to install/update FPC and Lazarus.'; - if Form2.UpdateOnly then FPCupManager.OnlyModules:='FPCCleanAndBuildOnly,LazCleanAndBuildOnly'; + if Form2.UpdateOnly then + begin + FPCupManager.OnlyModules:='FPCCleanAndBuildOnly,LazCleanAndBuildOnly'; + FModuleList:=TStringList.Create; + try + GetModuleEnabledList(FModuleList); + // also include enabled modules (packages) when rebuilding Lazarus + if FModuleList.Count>0 then FPCupManager.OnlyModules:=FPCupManager.OnlyModules+','+FModuleList.CommaText; + finally + FModuleList.Free; + end; + end; RealRun; finally DisEnable(Sender,True); @@ -530,7 +562,6 @@ procedure TForm1.Button2Click(Sender: TObject); modules:string; begin DisEnable(Sender,False); - Application.ProcessMessages; try PrepareRun; @@ -637,7 +668,6 @@ procedure TForm1.Button5Click(Sender: TObject); end; DisEnable(Sender,False); - Application.ProcessMessages; try if (FPCupManager.CrossCPU_Target='arm') then @@ -796,13 +826,17 @@ procedure TForm1.Button6Click(Sender: TObject); exit; end; DisEnable(Sender,False); - Application.ProcessMessages; try PrepareRun; FPCupManager.OnlyModules:='fpc'; FPCupManager.LazarusURL:='skip'; + if NOT Form2.IncludeHelp then + begin + FPCupManager.SkipModules:='helpfpc'; + end; + sStatus:='Going to install/update FPC only.'; RealRun; @@ -1015,7 +1049,8 @@ function TForm1.RealRun:boolean; AddMessage(''); Application.ProcessMessages; - sleep(2000); + + sleep(1000); try result:=FPCupManager.Run; diff --git a/installerfpc.pas b/installerfpc.pas index 2880ae0c..084e8c2a 100755 --- a/installerfpc.pas +++ b/installerfpc.pas @@ -416,7 +416,6 @@ function TFPCCrossInstaller.BuildModuleCustom(ModuleName: string): boolean; CrossInstaller.SetCrossOpt(CrossOPT); //pass on user-requested cross compile options - // set bin and libdirs !! if (CrossToolsDirectory='FPCUP_AUTO') then CrossInstaller.SearchModeUsed:=smFPCUPOnly else if (CrossToolsDirectory='FPCUP_FULLAUTO') then CrossInstaller.SearchModeUsed:=smAuto @@ -425,7 +424,7 @@ function TFPCCrossInstaller.BuildModuleCustom(ModuleName: string): boolean; begin if Length(CrossToolsDirectory)=0 then result:=CrossInstaller.GetBinUtils(FBaseDirectory) - else result:=CrossInstaller.GetBinUtils(CrossLibraryDirectory); + else result:=CrossInstaller.GetBinUtils(CrossToolsDirectory); end; if not result then infoln('Failed to get crossbinutils', etError); @@ -462,16 +461,6 @@ function TFPCCrossInstaller.BuildModuleCustom(ModuleName: string): boolean; if CrossInstaller.BinUtilsPathInPath then SetPath(IncludeTrailingPathDelimiter(CrossInstaller.BinUtilsPath),false,true); - {$ifdef MSWINDOWS} - if (CrossInstaller.TargetOS='darwin') then - begin - // make use of osxcross !! - SetPath('c:\cygwin\bin;C:\cygwin\opt\osxcross\target\bin',false,true); - //FMakeDir:='c:\cygwin\bin'; - //FMake:=''; - end; - {$endif} - ProcessEx.Executable := Make; ProcessEx.CurrentDirectory:=ExcludeTrailingPathDelimiter(FBaseDirectory); ProcessEx.Parameters.Clear; @@ -511,12 +500,12 @@ function TFPCCrossInstaller.BuildModuleCustom(ModuleName: string): boolean; end; if CrossInstaller.LibsPath<>''then begin - Options:=Options+' -Xd -Fl'+CrossInstaller.LibsPath; + Options:=Options+' -Xd'; + Options:=Options+' -Fl'+ExcludeTrailingPathDelimiter(CrossInstaller.LibsPath); if Pos('osxcross',CrossInstaller.LibsPath)>0 then begin - //Options:=Options+' -Fl'+IncludeTrailingPathDelimiter(CrossInstaller.LibsPath)+'system'; + Options:=Options+' -Fl'+IncludeTrailingPathDelimiter(CrossInstaller.LibsPath)+'system'; end; - //Options:=Options+' -Xr'+CrossInstaller.LibsPath; end; if (CrossInstaller.TargetOS='android') then @@ -539,16 +528,11 @@ function TFPCCrossInstaller.BuildModuleCustom(ModuleName: string): boolean; end; if CrossOptions<>'' then ProcessEx.Parameters.Add(CrossOptions); - // suppress hints - ProcessEx.Parameters.Add('OPT=-vi-n-h- '+Options); - //ProcessEx.Parameters.Add('OPT="-vw -vl -vx -vd -vi-n-h- '+Options+'"'); - { - ProcessEx.Parameters.Add('OPT=-vh- '+Options); - ProcessEx.Parameters.Add('--warn-undefined-variables'); - ProcessEx.Parameters.Add('--debug'); - ProcessEx.Parameters.Add('-p'); - } + // suppress hints and add all other options + Options:=StringReplace(Options,' ',' ',[rfReplaceAll]); + Options:=Trim(Options); + ProcessEx.Parameters.Add('OPT=-vi-n-h- '+Options); try if CrossOptions='' then @@ -710,9 +694,7 @@ function TFPCCrossInstaller.BuildModuleCustom(ModuleName: string): boolean; finally // Return path to previous state - if (CrossInstaller.BinUtilsPathInPath) - {$ifdef MSWINDOWS}OR (CrossInstaller.TargetOS='darwin') {$endif} - then + if (CrossInstaller.BinUtilsPathInPath) then begin SetPath(OldPath,false,false); end; @@ -776,12 +758,13 @@ function TFPCNativeInstaller.BuildModuleCustom(ModuleName: string): boolean; if FBootstrapCompilerOverrideVersionCheck then ProcessEx.Parameters.Add('OVERRIDEVERSIONCHECK=1'); + s:='-vi-n-h- '+FCompilerOptions; + s:=StringReplace(s,' ',' ',[rfReplaceAll]); + s:=Trim(s); {$IFDEF UNIX} - s:='-Sg -vi-n-h-'; - {$ELSE} - s:='-vi-n-h-'; + s:='-Sg '+s; {$ENDIF} - ProcessEx.Parameters.Add('OPT='+s+' '+FCompilerOptions); + ProcessEx.Parameters.Add('OPT='+s); ProcessEx.Parameters.Add('all'); ProcessEx.Parameters.Add('install'); infoln('Running make all install for FPC:',etInfo); @@ -1662,26 +1645,25 @@ function TFPCInstaller.InitModule(aBootstrapVersion:string):boolean; {$ENDIF MSWINDOWS} FBinPath:=IncludeTrailingPathDelimiter(FBaseDirectory)+'bin'+DirectorySeparator+GetFPCTarget(true); {$IFDEF MSWINDOWS} + if Length(FSVNDirectory)>0 + then s:=ExcludeTrailingPathDelimiter(FSVNDirectory)+PathSeparator + else s:=''; // Try to ignore existing make.exe, fpc.exe by setting our own path: // add fpc/utils to solve data2inc not found by fpcmkcfg - SetPath( - ExcludeTrailingPathDelimiter(FSVNDirectory)+PathSeparator+ + SetPath(s+ FBinPath+PathSeparator+ {compiler for current architecture} IncludeTrailingPathDelimiter(FBaseDirectory)+'bin'+PathSeparator+ {e.g. fpdoc, fpcres} IncludeTrailingPathDelimiter(FBaseDirectory)+'utils'+PathSeparator+ FMakeDir+PathSeparator+ FBootstrapCompilerDirectory, {any missing utilities etc; put these last} - false,false); + true,false); {$ENDIF MSWINDOWS} {$IFDEF UNIX} //add fpc/utils to solve data2inc not found by fpcmkcfg SetPath(FBinPath+PathSeparator+ - {$IFDEF DARWIN} // pwd is located in /bin ... the makefile needs it !! // tools are located in /usr/bin ... the makefile needs it !! - // don't ask, but this is needed when fpcupdeluxe runs out of an .app package ... quirk solved this way .. ;-) '/bin'+PathSeparator+'/usr/bin'+PathSeparator+ - {$ENDIF} IncludeTrailingPathDelimiter(FBaseDirectory)+'bin'+PathSeparator+ {e.g. fpdoc, fpcres} IncludeTrailingPathDelimiter(FBaseDirectory)+'utils', true,false); diff --git a/installerlazarus.pas b/installerlazarus.pas index c0d373f0..633a754c 100755 --- a/installerlazarus.pas +++ b/installerlazarus.pas @@ -273,6 +273,8 @@ function TLazarusCrossInstaller.BuildModuleCustom(ModuleName: string): boolean; Options := Options + ' -XP' + CrossInstaller.BinUtilsPrefix; ProcessEx.Parameters.Add('BINUTILSPREFIX=' + CrossInstaller.BinUtilsPrefix); end; + Options:=StringReplace(Options,' ',' ',[rfReplaceAll]); + Options:=Trim(Options); ProcessEx.Parameters.Add('OPT=-vi-n-h- ' + Options); // Since April 2012, LCL requires lazutils which requires registration // http://wiki.lazarus.freepascal.org/Getting_Lazarus#Make_targets @@ -396,9 +398,17 @@ function TLazarusNativeInstaller.BuildModuleCustom(ModuleName: string): boolean; } // replace -g by -gw if encountered: http://lists.lazarus.freepascal.org/pipermail/lazarus/2015-September/094238.html sCmpOpt:=StringReplace(FCompilerOptions,'-g ','-gw ',[]); + + sCmpOpt:=StringReplace(sCmpOpt,' ',' ',[rfReplaceAll]); + sCmpOpt:=Trim(sCmpOpt); ProcessEx.Parameters.Add('OPT=-vi-n-h- ' + sCmpOpt); case UpperCase(ModuleName) of + 'IDE': + begin + ProcessEx.Parameters.Add('-C ide idepkg'); + infoln(ModuleName + ': running make -C ide idepkg:', etInfo); + end; 'LAZARUS': begin ProcessEx.Parameters.Add('all'); diff --git a/m_any_to_darwin386.pas b/m_any_to_darwin386.pas index c61718d1..2bd3647e 100644 --- a/m_any_to_darwin386.pas +++ b/m_any_to_darwin386.pas @@ -70,19 +70,13 @@ function Tany_darwin386.GetLibs(Basepath:string): boolean; result:=FLibsFound; if result then exit; - {$ifdef MSWINDOWS} - if Pos('osxcross',FBinUtilsPath)>0 then - begin - result:=true; - if Pos('darwin13',FBinUtilsPrefix)>0 then FLibsPath:='C:\cygwin\opt\osxcross\target\SDK\MacOSX10.9.sdk\usr\lib'; - if Pos('darwin14',FBinUtilsPrefix)>0 then FLibsPath:='C:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk\usr\lib'; - end; - {$endif} - // begin simple: check presence of library file in basedir if not result then result:=SearchLibrary(Basepath,LibName); + if not result then + result:=SearchLibrary(IncludeTrailingPathDelimiter(Basepath)+'usr'+DirectorySeparator+'lib',LibName); + // first search local paths based on libbraries provided for or adviced by fpc itself if not result then result:=SimpleSearchLibrary(BasePath,DirName); @@ -102,24 +96,22 @@ function Tany_darwin386.GetLibs(Basepath:string): boolean; if result then begin FLibsFound:=True; - //todo: check if -XR is needed for fpc root dir Prepend to all linker search paths FFPCCFGSnippet:=FFPCCFGSnippet+LineEnding+ '-Fl'+IncludeTrailingPathDelimiter(FLibsPath); if Pos('osxcross',FLibsPath)>0 then begin FFPCCFGSnippet:=FFPCCFGSnippet+LineEnding+ '-Fl'+IncludeTrailingPathDelimiter(FLibsPath)+'system\'+LineEnding+ - '-k-FC:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk\System\Library\Frameworks'+LineEnding+ - '-k-FC:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk\System\Library\PrivateFrameworks'+LineEnding+ - '-k-FC:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk\System\Library\Frameworks\ApplicationServices.framework\Frameworks'+LineEnding+ - '-k-FC:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk\System\Library\Frameworks\CoreServices.framework\Frameworks'+LineEnding+ - '-k-FC:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk\System\Library\Frameworks\Carbon.framework\Frameworks'+LineEnding+ - '-k-framework AppKit'+LineEnding+ - '-k-framework Foundation'+LineEnding+ - '-k-framework CoreFoundation'+LineEnding+ - '-k-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:C:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk\System\Library\Frameworks\OpenGL.framework\Versions\A\Libraries\libGL.dylib'+LineEnding+ - '-k-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib:C:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk\System\Library\Frameworks\OpenGL.framework\Versions\A\Libraries\libGLU.dylib'+LineEnding+ - '-XRC:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk\'; + '-k-framework'+LineEnding+ + '-kAppKit'+LineEnding+ + '-k-framework'+LineEnding+ + '-kFoundation'+LineEnding+ + '-k-framework'+LineEnding+ + '-kCoreFoundation'+LineEnding+ + //'-k-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:C:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk\System\Library\Frameworks\OpenGL.framework\Versions\A\Libraries\libGL.dylib'+LineEnding+ + //'-k-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib:C:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk\System\Library\Frameworks\OpenGL.framework\Versions\A\Libraries\libGLU.dylib'+LineEnding+ + // -XRx is needed for fpc : prepend to all linker search paths + '-XRC:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk'; end; FFPCCFGSnippet:=FFPCCFGSnippet+LineEnding+ '-Xr/usr/lib';//+LineEnding+ {buildfaq 3.3.1: makes the linker create the binary so that it searches in the specified directory on the target system for libraries} @@ -150,50 +142,34 @@ function Tany_darwin386.GetBinUtils(Basepath:string): boolean; if not result then result:=SimpleSearchBinUtil(BasePath,DirName,AsFile); - {$ifdef MSWINDOWS} // Also allow for (cross)binutils from https://github.com/tpoechtrager/osxcross - - // version 10.10 + // version 10.10 = v14 + {$IFDEF MSWINDOWS} if IsWindows64 - then BinPrefixTry:='x86_64-apple-darwin14-' - else BinPrefixTry:='i386-apple-darwin14-'; + then BinPrefixTry:='x86_64' + else BinPrefixTry:='i386'; + {$else} + BinPrefixTry:=lowercase({$i %FPCTARGETCPU%}); + {$endif} + BinPrefixTry:=BinPrefixTry+'-apple-darwin'; if not result then begin - AsFile:=BinPrefixTry+'as'+GetExeExt; + AsFile:=BinPrefixTry+'14-'+'as'+GetExeExt; result:=SearchBinUtil(BasePath,AsFile); if not result then result:=SimpleSearchBinUtil(BasePath,DirName,AsFile); - if result then FBinUtilsPrefix:=BinPrefixTry; + if result then FBinUtilsPrefix:=BinPrefixTry+'14-'; end; + // version 10.9 = v13 if not result then begin - AsFile:=BinPrefixTry+'as'+GetExeExt; - result:=SearchBinUtil('C:\cygwin\opt\osxcross\target\bin\',AsFile); - if result then FBinUtilsPrefix:=BinPrefixTry; - end; - - // version 10.9 - if IsWindows64 - then BinPrefixTry:='x86_64-apple-darwin13-' - else BinPrefixTry:='i386-apple-darwin13-'; - - if not result then - begin - AsFile:=BinPrefixTry+'as'+GetExeExt; + AsFile:=BinPrefixTry+'13-'+'as'+GetExeExt; result:=SearchBinUtil(BasePath,AsFile); if not result then result:=SimpleSearchBinUtil(BasePath,DirName,AsFile); - if result then FBinUtilsPrefix:=BinPrefixTry; + if result then FBinUtilsPrefix:=BinPrefixTry+'13-'; end; - if not result then - begin - AsFile:=BinPrefixTry+'as'+GetExeExt; - result:=SearchBinUtil('C:\cygwin\opt\osxcross\target\bin\',AsFile); - if result then FBinUtilsPrefix:=BinPrefixTry; - end; - {$endif} - SearchBinUtilsInfo(result); if result then diff --git a/m_any_to_darwinx64.pas b/m_any_to_darwinx64.pas index 0242cf09..9fd6faf5 100644 --- a/m_any_to_darwinx64.pas +++ b/m_any_to_darwinx64.pas @@ -70,19 +70,13 @@ function Tany_darwinx64.GetLibs(Basepath:string): boolean; result:=FLibsFound; if result then exit; - {$ifdef MSWINDOWS} - if Pos('osxcross',FBinUtilsPath)>0 then - begin - result:=true; - if Pos('darwin13',FBinUtilsPrefix)>0 then FLibsPath:='C:\cygwin\opt\osxcross\target\SDK\MacOSX10.9.sdk\usr\lib'; - if Pos('darwin14',FBinUtilsPrefix)>0 then FLibsPath:='C:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk\usr\lib'; - end; - {$endif} - // begin simple: check presence of library file in basedir if not result then result:=SearchLibrary(Basepath,LibName); + if not result then + result:=SearchLibrary(IncludeTrailingPathDelimiter(Basepath)+'usr'+DirectorySeparator+'lib',LibName); + // first search local paths based on libbraries provided for or adviced by fpc itself if not result then result:=SimpleSearchLibrary(BasePath,DirName); @@ -98,15 +92,26 @@ function Tany_darwinx64.GetLibs(Basepath:string): boolean; end; SearchLibraryInfo(result); + if result then begin - //todo: check if -XR is needed for fpc root dir Prepend to all linker search paths + FLibsFound:=True; FFPCCFGSnippet:=FFPCCFGSnippet+LineEnding+ '-Fl'+IncludeTrailingPathDelimiter(FLibsPath); if Pos('osxcross',FLibsPath)>0 then begin FFPCCFGSnippet:=FFPCCFGSnippet+LineEnding+ - '-Fl'+IncludeTrailingPathDelimiter(FLibsPath)+'system\'; + '-Fl'+IncludeTrailingPathDelimiter(FLibsPath)+'system\'+LineEnding+ + '-k-framework'+LineEnding+ + '-kAppKit'+LineEnding+ + '-k-framework'+LineEnding+ + '-kFoundation'+LineEnding+ + '-k-framework'+LineEnding+ + '-kCoreFoundation'+LineEnding+ + //'-k-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:C:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk\System\Library\Frameworks\OpenGL.framework\Versions\A\Libraries\libGL.dylib'+LineEnding+ + //'-k-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib:C:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk\System\Library\Frameworks\OpenGL.framework\Versions\A\Libraries\libGLU.dylib'+LineEnding+ + // -XRx is needed for fpc : prepend to all linker search paths + '-XRC:\cygwin\opt\osxcross\target\SDK\MacOSX10.10.sdk'; end; FFPCCFGSnippet:=FFPCCFGSnippet+LineEnding+ '-Xr/usr/lib';//+LineEnding+ {buildfaq 3.3.1: makes the linker create the binary so that it searches in the specified directory on the target system for libraries} @@ -137,49 +142,34 @@ function Tany_darwinx64.GetBinUtils(Basepath:string): boolean; if not result then result:=SimpleSearchBinUtil(BasePath,DirName,AsFile); - {$ifdef MSWINDOWS} // Also allow for (cross)binutils from https://github.com/tpoechtrager/osxcross - // version 10.10 + // version 10.10 = v14 + {$IFDEF MSWINDOWS} if IsWindows64 - then BinPrefixTry:='x86_64-apple-darwin14-' - else BinPrefixTry:='i386-apple-darwin14-'; + then BinPrefixTry:='x86_64' + else BinPrefixTry:='i386'; + {$else} + BinPrefixTry:=lowercase({$i %FPCTARGETCPU%}); + {$endif} + BinPrefixTry:=BinPrefixTry+'-apple-darwin'; if not result then begin - AsFile:=BinPrefixTry+'as'+GetExeExt; + AsFile:=BinPrefixTry+'14-'+'as'+GetExeExt; result:=SearchBinUtil(BasePath,AsFile); if not result then result:=SimpleSearchBinUtil(BasePath,DirName,AsFile); - if result then FBinUtilsPrefix:=BinPrefixTry; + if result then FBinUtilsPrefix:=BinPrefixTry+'14-'; end; + // version 10.9 = v13 if not result then begin - AsFile:=BinPrefixTry+'as'+GetExeExt; - result:=SearchBinUtil('C:\cygwin\opt\osxcross\target\bin\',AsFile); - if result then FBinUtilsPrefix:=BinPrefixTry; - end; - - // version 10.9 - if IsWindows64 - then BinPrefixTry:='x86_64-apple-darwin13-' - else BinPrefixTry:='i386-apple-darwin13-'; - - if not result then - begin - AsFile:=BinPrefixTry+'as'+GetExeExt; + AsFile:=BinPrefixTry+'13-'+'as'+GetExeExt; result:=SearchBinUtil(BasePath,AsFile); if not result then result:=SimpleSearchBinUtil(BasePath,DirName,AsFile); - if result then FBinUtilsPrefix:=BinPrefixTry; + if result then FBinUtilsPrefix:=BinPrefixTry+'13-'; end; - if not result then - begin - AsFile:=BinPrefixTry+'as'+GetExeExt; - result:=SearchBinUtil('C:\cygwin\opt\osxcross\target\bin\',AsFile); - if result then FBinUtilsPrefix:=BinPrefixTry; - end; - {$endif} - SearchBinUtilsInfo(result); if result then @@ -189,6 +179,7 @@ function Tany_darwinx64.GetBinUtils(Basepath:string): boolean; FFPCCFGSnippet:=FFPCCFGSnippet+LineEnding+ '-FD'+IncludeTrailingPathDelimiter(FBinUtilsPath)+LineEnding+ {search this directory for compiler utilities} //'-Xr/usr/lib';//+LineEnding+ {buildfaq 3.3.1: makes the linker create the binary so that it searches in the specified directory on the target system for libraries} + '-XX'+LineEnding+ '-XP'+FBinUtilsPrefix+LineEnding {Prepend the binutils names}; end; end; diff --git a/revision.inc b/revision.inc index b29b783c..977e877e 100644 --- a/revision.inc +++ b/revision.inc @@ -1 +1 @@ -const {%H-}RevisionStr='005';{%H-}versiondate='20161115'; +const {%H-}RevisionStr='007';{%H-}versiondate='20161122';