Lazarus 3 and Pas2JS missing lazarus / 76-Pas2JS ---------------------------------------------------------------------- zendrael · 2024-01-07 21:44 Hi! Lazarus 3 was released with already built-in options to build pas2js projects but no pas2js compiler is shipped within it. As it requires 2.2.1 (for projects like PWA), where can I get pre- built binaries of pas2js 2.2.1 instead of compiling it from sources? Thank you in advance. ---------------------------------------------------------------------- TRon · 2024-01-07 22:08 Quote from: zendrael on January 07, 2024, 10:44:58 pmLazarus 3 was released with already built-in options to build pas2js projects but no pas2js compiler is shipped within it. pas2js is 'shipped' with Free Pascal commandline compiler. QuoteAs it requires 2.2.1 (for projects like PWA), where can I get pre-built binaries of pas2js 2.2.1 instead of compiling it from sources? I was unable to find precompiled binaries (downloads but snapshot is older). FPC 3.2.2 contains an even older version. FPC trunk contains pas2js 3.2.? and you would need to compile that yourself from source (a full FPC build (make) will create it for you and is located in the bin directory on a successful build). I have no idea if FPC distribution packages contain pas2js (by default) because I always build the compiler/IDE from source. ---------------------------------------------------------------------- zendrael · 2024-01-07 22:16 Yeah, I need the precompiled ones as no matter what I do, I don't get it properly compiled, maybe missing something for sure. I also found that ftp://ftpmaster.freepascal.org/fpc/contrib/pas2js/snapshot maybe has the most recent ones, but every time I try to access, it asks for a user and password... Any ideas? ---------------------------------------------------------------------- TRon · 2024-01-08 04:57 Quote from: zendrael on January 07, 2024, 11:16:03 pmYeah, I need the precompiled ones as no matter what I do, I don't get it properly compiled, maybe missing something for sure. How are you compiling/building pas2js then and on/for which platform ? As said, pas2js compiler is part of the FPC project and FPC can be build by invoking make. See also installing the Free Pascal compiler (subsection installing from source for your selected platform). Alternatively (and in case you did not do so already) you can verify your compilation/setup with the instructions on the pas2js subgroup project. Though I haven't verified the instructions from there. QuoteI also found that ftp://ftpmaster.freepascal.org/fpc/contrib/pas2js/snapshot maybe has the most recent ones, but every time I try to access, it asks for a user and password... That will point to the same location that I linked to (and the snapshot is out of date) ---------------------------------------------------------------------- teos · 2024-01-09 16:07 I have download Lazarus in the last weeks to learn that as beginner, I have to install pas2js in Lazarus. When I did so, I seems that only bootstrap alike components are actively developed, involved with writing code as you would with HTML and Javascript. Excuse me if this is offtopic but I get the impression that Pas2Js is not interesting for the Lazarus community or am I wrong? ---------------------------------------------------------------------- Thaddy · 2024-01-09 17:39 Exactly where do you experience problems? Pas2Js is well maintained and also comparatively new. For beginners it is not really easy to setup correctly. Again, well maintained and by some of the core fpc developers. So, yes, you are wrong. ---------------------------------------------------------------------- teos · 2024-01-09 21:44 Hi Thaddy, In older versions of Lazarus, pas2js was with the distribution. I have to know where the compiler is, what the packages are that are with the distribution, where to put them and then it looks as if I still have not everything to install a set of components in Lazarus. Composer is not helpfull at all. That just creates a bunch of files but I learned multiple times that you're lost if something is not very clear. The developer who is putting Composer dependencies up, is the experienced user, the developer who has to install -with a very subtile document- new and unknown sources/environment is left to himself. If I use the last Lazarus before 3.0, I have the designpackage. When I install that, create a new project and try start the debugger, I get a AV because the IDE thinks that firefox is not a valid application. Without debugging all works fine. Next isseu: New webproject with widgets. Drop a stringgrid on a new webform and you get a blank box. Add colums and try to run it. Doesn't work: columnwidths and other settings are not supported. Fixed row in a TStringgrid is drawn too low: the first row is blank. TDrawgrid is not implemented at all. Most of the time when I drop or delete a component from jsGUI on my form, the component is not added to the source (A component that I drop on the form editor is not added to the pas file) or other way around when I delete one, it is not removed from the pas file. The last Github repository that I found is the same code. The last new widgets that I see are component and are used to build Bootstrap GUI. What I don't understand: You can add classes. You can derive Bootstrap components from standard VCL objects/classes and style them with HTML class property. But that way a developer is not bound to the Bootstrap classes. But bottom line for my question: I see old code in Github and I have not found recent versions. I hope there are. I am looking forward to develop a new application for Windows, the web, Android, Linux and iOS with Lazarus. Would it be an idea to have a ready install of Lazarus 3.0 with pas2js onboard to at least get a start? Like I learned playing accordion: I started not by learning music notes but by playing some music and learned reading sheet music on the go. ---------------------------------------------------------------------- Thaddy · 2024-01-10 11:15 I did the following to test your issues: 1) With a properly installed FPC+ Lazarus - with fpcupdeluxe -, startup fpcupdeluxe. 2) Go to the modules tab 3) select pas2js-rtl 4) select install module, this can take a looong time, be patient, be VERY patient on slow hardware!!!!!! Just learn to be patient.... Up to 15 minutes....on slow hardware like my old AMD two core. 5) select pas2js-ws 6) select install module, again be patient, very patient. By now you should have the patience I have for my wife and kids: endless [edit] I am well over an hour in now for the old AMD, Pi is nearly finished.PATIENCE. When finished you can select pas2js as target and use the pas2js widgets for design. Actually, I am compiling for Raspberry Pi 4 too and that seems much faster, the compile cycle takes more cores. Starting up Raspberry Pi 5 later. The process amounts to a humongous amount of re-compiling Lazarus, but it is hopefully a one time operation on fresh installs. [edit] succeeded on both the slowboat AMD as on the Pi4, Now starting RPi5.... succeeded too. I only installed nodejs from https://nodejs.org to make local applets. Do not forget to tick the box for install tools too. You need to add the path to nodejs.exe to the application or set the path globally. This should do the trick. Everything works out of the box. Let me know if there are still issues. ---------------------------------------------------------------------- teos · 2024-01-10 14:22 Dankjewel Thaddy, You don't mention which Lazarus and which pas2js versions you installed. That might be better to make things reproduceable. I have de-installed and installed Lazarus prior to every effort to install pas2js. But what I did not know is fpcupdeluxe. That is a new option. Fine with me, I guess that only will make things easier. But I will do a clean install and see what I run into and I post my findings with some screenshots to explain what I see. Best regards, Teo ---------------------------------------------------------------------- Thaddy · 2024-01-10 14:33 On both Raspbery Pi's, I used 3.2.2 and Laz trunk 3.99. On Windows 11, I used trunk and Laz trunk. All succeeded. Actually the versions stable should be OK too because I use them on my default install. For this test I clean roomed. ---------------------------------------------------------------------- teos · 2024-01-10 19:47 I found fpcupdeluxe and installed Freepascal and Lazarus with the tool. (The only way to be able to install fhe packages you installed afterwards.) Installation went fine, I have a very recent laptop. So I installed pas2js-rtl and after that pas2js-ws in only a few minutes. fcpupdeluxe has installed lazarus and a shortcut that I should use. So I do. When I start Lazarus, I can indeed select a Web GUI application. But when I do, I get "missing packages", "The following package failed to load: WCL". When I find WCL.lpk and open it, It won't compile because of "Dialogs.pas" procedure ShowMessageFmt(const AMessage: string; const AArguments: array of JSValue); begin   ShowMessage(Format(AMessage, AArguments)); end;  The error is: dalogs.pas(507,32) Error: Incompatible type for arg no. 2: Got "open array", expected "array of const" Okay.. Showmessage without format will do for now. The package compiles and is enabled in my newly created project. To repeat my test: I created a new project and dropped a WStringgrid on a wform. I can't start the debugger (button is not enabled) but the project is compiled and I see a stringgrid when I load the project html file in the browser. Clearly there are enhancements. Nice. I have to do that myself, Lazarus is not opening my browser. The Stringgrid is drawn correctly so that is a plus. But it has none of the events that are available in the VCL variant. But my code "WStringgrid1. cells[1,1] := 'hoi, hier' is not visible until I click in the grid to give it focus. None of the events of the VCL grid are implemented (at least not designtime) so no drawcell etc. But for a starter: Run FPCUpDeluxe, follow the steps from Thierry and you can at least start and get impressed. ---------------------------------------------------------------------- Thaddy · 2024-01-10 20:36 The WCL issue is strange, because on all my 3 test computers I have a nice WCL tab in lazarus and the components work. Frankly I just tested the basics. pas2js has  dependencies, did you really, honestly, check the box I referred to? (tools) Essential info is - platform - os version - browser default Report back if it still does not work. I would suggest to test against nodejs first. Ik ben toch met pensioen en heb tijd zat. ---------------------------------------------------------------------- PascalDragon · 2024-01-12 23:00 Quote from: teos on January 10, 2024, 08:47:27 pmBut when I do, I get "missing packages", "The following package failed to load: WCL". When I find WCL.lpk and open it, It won't compile because of "Dialogs.pas" procedure ShowMessageFmt(const AMessage: string; const AArguments: array of JSValue); begin   ShowMessage(Format(AMessage, AArguments)); end;  The error is: dalogs.pas(507,32) Error: Incompatible type for arg no. 2: Got "open array", expected "array of const" That is now fixed. Quote from: teos on January 10, 2024, 08:47:27 pmI have to do that myself, Lazarus is not opening my browser. Lazarus is supposed to be able to do that, but I haven't yet managed to get that working myself either... Quote from: teos on January 10, 2024, 08:47:27 pmThe Stringgrid is drawn correctly so that is a plus. But it has none of the events that are available in the VCL variant. But my code "WStringgrid1. cells[1,1] := 'hoi, hier' is not visible until I click in the grid to give it focus. Please provide an example. If I put the following code in the OnCreate handler of the form I get the content without any issues: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure TWForm1.FormCreate(Sender: TObject);var  r, c: LongInt;begin  for r := WStringGrid1.FixedRows to WStringGrid1.RowCount - 1 do    for c := WStringGrid1.FixedCols to WStringGrid1.ColCount - 1 do      WStringGrid1.Cells[c, r] := IntToStr(r * WStringGrid1.ColCount + c);end; Quote from: teos on January 10, 2024, 08:47:27 pmNone of the events of the VCL grid are implemented (at least not designtime) so no drawcell etc. Currently the TCustomStringGrid is a direct descendant of TCustomGrid, because I hadn't any need for more yetmore often than not drawing is not required for the grid, thus having it work without is a good first step Thus all the draw related events are not implemented and only the most important events. If you're missing specific things, then please report bugs on the WCL project. ---------------------------------------------------------------------- teos · 2024-01-13 22:12 I test very simple: Create a new project, drop a wStringgrid and a wbutton on a wform. In the onclick of the button I have "WStringGrid1.cells[1,1] := 'hoi hier'. The cell is white untill I click on the Grid. The other isse: add a column by using the "columns" property editor and set the width. You can leave that as is, when you open or start the project, you get the error "Error reading TColumn.Width: unknown property: Width". What cell painting and drag and drop makes possible: Create a simple planner. The paint event allows to draw "events" in the correct cells, draw "merged" cells and drag and drop those events. Am I correct that I can edit grids.pas by opening the file in Lazarus, add my changes and recompile both the designtime package and running build all to build the pas2js files? Is there any documentation on how to do this? I'm asking because I consider to help out on these components. But there is a loooooot to be done.. ---------------------------------------------------------------------- PascalDragon · 2024-01-14 21:49 Quote from: teos on January 13, 2024, 11:12:41 pmI test very simple: Create a new project, drop a wStringgrid and a wbutton on a wform. In the onclick of the button I have "WStringGrid1.cells[1,1] := 'hoi hier'. The cell is white untill I click on the Grid. Ah, the button was the missing piece! I was now able to reproduce it and have implemented a fix (that is not optimal yet, but does the job for now). Quote from: teos on January 13, 2024, 11:12:41 pmThe other isse: add a column by using the "columns" property editor and set the width. You can leave that as is, when you open or start the project, you get the error "Error reading TColumn.Width: unknown property: Width". That is an issue with how the components are integrated in the IDE as the grid uses the same column class as the LCL and thus all properties of the LCL are listed instead of only those supported by the WCL. So please be sure to only change properties of the columns that are supported by TGridColumn of the WCL. Width is not yet among the supported properties. I'm trying to work on a fix now, but it isn't that easy... Quote from: teos on January 13, 2024, 11:12:41 pmWhat cell painting and drag and drop makes possible: Create a simple planner. The paint event allows to draw "events" in the correct cells, draw "merged" cells and drag and drop those events. It needs to be implemented in a way that a canvas isn't required if one doesn't use that functionality and since I didn't require it myself, I didn't implement it. Quote from: teos on January 13, 2024, 11:12:41 pmAm I correct that I can edit grids.pas by opening the file in Lazarus, add my changes and recompile both the designtime package and running build all to build the pas2js files? Is there any documentation on how to do this? You only need to rebuild the designtime package (and thus the IDE) if you changed something that needs to be visible at design time in the IDE (e.g. when adding a new published property). Quote from: teos on January 13, 2024, 11:12:41 pmI'm asking because I consider to help out on these components. But there is a loooooot to be done.. Of course there's a lot to be done, after all a UI framework like the LCL isn't an easy one. ---------------------------------------------------------------------- teos · 2024-01-15 10:06 @Pascaldragon, if you can, my posts and the responses from Thaddy are off topic, is it an idea to move this to a new thread, from where Thaddy replied so there is more info about installing Pas2JS and the little things that I stumble into? I understand/know that if you start drawing on the canvas, the entire grid becomes an image. And maybe I shouldn't try to custom draw in the stringgrid in the first place. On the other hand, If a stringgrid is a table or ad combination of DIV's, there is a background CSS style. And I can imagine that adding a div with styling will come close to the VCL canvas.rectangle. ---------------------------------------------------------------------- krolikbest · 2024-01-15 14:07 Hi, @teos, I also considered using WCL, but then switched to using html and js elements painting them on canvas. And so far I'm satisfied with this approach. The best thing is to have some guidance open with js and you go with coding There what I did (pure pas2js) https://www.youtube.com/watch?v=eo62_1uqN1w ---------------------------------------------------------------------- teos · 2024-01-15 21:31 For me: I would stay as close to the VCL as possible and keep the option open to use the same controls in Windows/Linux, Web and mobile. And as I explained, styling basic elements has all kinds of options. But I understand that on the web having a web grid with pagination is better than a dbgrid that loads all data at once.. ---------------------------------------------------------------------- teos · 2024-01-15 21:34 Quote from: zendrael on January 07, 2024, 10:44:58 pmHi! Lazarus 3 was released with already built-in options to build pas2js projects but no pas2js compiler is shipped within it. As it requires 2.2.1 (for projects like PWA), where can I get pre- built binaries of pas2js 2.2.1 instead of compiling it from sources? Thank you in advance. As Thaddy explained, if you use fpupdeluxe to install everything, you also have the current pas2js state. ---------------------------------------------------------------------- teos · 2024-01-16 19:02 If I start a new webbrowser project, I get a form named "Pas2JS Browser project options" and an error "Simple Web Server" Wrong compileserver.exe: file not found see tools/options/environment/simple web server/simpleserver. I have 1 compileserver.exe under fpupdeluxe and that is C:\fpcupdeluxe\fpc\bin\x86_64-win64\compileserver.exe when I select that one, I get another errror: simpleserver does not support --version, maybe this is an old version? So I have 2 projects and 1 executable that is old. I wonder what is the correct one and why the executable is not created or updated. c:\fpcupdeluxe\fpc\bin\x86_64-win64\compileserver.exe c:\fpcupdeluxe\ccr\pas2js-rtl\compiler\utils\pas2js\compileserver.lpi c:\fpcupdeluxe\fpcsrc\utils\pas2js\compileserver.lpi c:\fpcupdeluxe\ccr\pas2js-rtl\compiler\utils\pas2js\compileserver.pp Besides this: I guess this also has something to do with the project not starting in the browser.. I have no clue what is happening and to which project I should report this. ---------------------------------------------------------------------- af0815 · 2024-01-16 20:19 Quote from: teos on January 16, 2024, 08:02:19 pm I get another errror: simpleserver does not support --version, maybe this is an old version? BTW: The error now is about simpleserver not compileserver ---------------------------------------------------------------------- teos · 2024-01-17 08:27 Quote from: af0815 on January 16, 2024, 09:19:04 pmQuote from: teos on January 16, 2024, 08:02:19 pm I get another errror: simpleserver does not support --version, maybe this is an old version? BTW: The error now is about simpleserver not compileserver That is correct. Simpleserver is not in my installatation and I don't recognize in fpcupdeluxse what to install to get it. ---------------------------------------------------------------------- kveroneau · 2024-02-09 22:00 Today I was thinking of putting together a YouTube video showing people how to get up and running with Lazarus and Pas2js on Windows.  I primarily use Linux, and have been using FreePascal/Lazarus and Pas2Js with little issue.  My flow for setting this up on Linux was simple, download latest fpc source distrib from freepascal.org, download latest binary for Linux amd64, and then download the latest version of the Lazarus source code.  Install the binary FPC into my home directory, extract the sources for both FPC and Lazarus, then proceed to compile Lazarus as per usual.  I've heard of fpcup and now fpcudeluxe, but felt it was perfectly fine being installed as I've been doing through the last couple years. The pas2js I grabbed was a binary distribution of it from downloads.freepascal.org, which seems to be down right now, making it incredibly difficult to download the last binary release of it.  As a result, I did some research and concluded that I should try using fpcupdeluxe to get it up and running on a Windows box for this YouTube video...  If I wasn't already into FreePascal and Lazarus and was a brand-new developer coming to FreePascal/Lazarus/pas2js, I don't think I would be having the best experience, at least when compared to competing languages and frameworks.  I'd imagine most developers new to something would visit the home pages, probably FreePascal.org first, and grab a binary download of the compiler for their operating system of choice and be off to the races learning, at first blissfully unaware that Lazarus exists.  Now, I'm not trying to hate on any design decisions here, just trying to provide some constructive feedback to hopefully bring in more interest into the language.  The first top half of the main freepascal.org website doesn't really mention the Lazarus IDE, unless there is a new "News" post about a latest release.  It does a good job at marketing it's amazing cross-platform abilities, but without Lazarus, it really only feels like half of the language, and many new users might completely miss out on it's benefits and stick with VSCode.  My main point here, is that most new developers to FreePascal are not going to get the best first experience, and if they lack the patience to get past this initial hurdle, it will only make less developers willing to even give FreePascal a chance to shine in their toolkit.  A new developer will have absolutely no idea about tools like fpcupdeluxe, as they aren't featured on the main home page as a "Featured Community Project" of sorts.  A lot of FreePascal community members have contributed a lot of projects throughout the years that directly relate to the FreePascal compiler, and otherwise make the compiler easier to use.  These days, a lot of modern developers expect a lot from a language out of the box, and having a good way to showcase that FreePascal does also have those features and demoing them on the website as other languages do might help FreePascal grow more.  Personally I think a more modernized home page, perhaps made using pas2js technology which could then also be a showcase of the potential developers can get from the language.  From what I am seeing coming out of pas2js, both open source and commercial, I have incredibly high hopes for ObjectPascal as a language in the future.  If the community can create discussions around a cool concept that is seamless in ObjectPascal but otherwise complicated in most other mainstream languages, it could spark interest in ObjectPascal.  One of the killer features I believe really stands out in ObjectPascal which is severely lacking elsewhere is the super advanced Component feature, and how easy it is to create new Lazarus components which can then be placed into a DataModule or Form.  One feature I think that really makes this sand-out more is that Lazarus provides a remarkable balance between having to write too much non-sense code, and being able to visually design components without needing any code.  A great example is a small database application, in Lazarus one can be made with almost zero lines of code, if you don't want auto-resizing and other whistles, but that's the thing, to have a fully functional database application with Lazarus, actually requires zero code, and that's incredible.  It would be cool if one could do absolutely everything with components, making it possible for almost anybody, even your grandmother to build Lazarus apps with no programming knowledge required.  I feel that the component system should be marketed a bit more.  I don't want this to turn into a contender for the world record of the longest paragraph that should have been split, so I'll finish it here. Perhaps the maintainers of FreePascal.org could say hold a community contest of sorts where community members with either pas2js experience, or otherwise web design experience can submit how they'd envision a modern FreePascal.org home page.  It'd be great for community engagement, and might be an interesting way to see how some of us might market this remarkable language to other developers, if we had the chance to. I know this post went a bit off track of what this original topic was about, but I'd rather look at the root cause of a problem and try to fix it from there, and I can definitely see any new developer to FreePascal.org having a bad first experience, and we should find a way to address it.  If fpcudeluxe was mentioned as a "recommended community method of installation", then that'd at least be something for new developers to get their toes wet.  As it stands, most new developers won't even know of this tool until they search or join the forums when they start to have questions, which is more "reactive" then "proactive" in my opinion. ---------------------------------------------------------------------- rca · 2024-06-22 15:48 I have Windows 11 64 bit, Lazarus 3.4, FPC 3.2.3 (fixes) and I am installing "pas2js-rtl" with fpcupdeluxe, but it doesn't, it shows the following message: Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i ./fpmake.exe compile --os=win64 --cpu=x86_64 -o -dx86_64 --compiler=C: /Users/rca/Downloads/Laz34FPCfix/fpc/bin/x86_64-win64/fpc.exe -buStart compiling package pas2js for target x86_64-win64.Warning: Source file "pas2js.pp" from package pas2js not found for x86_64-win64The installer encountered the following error:Could not compile target pas2js from package pas2js fpcupdeluxe: ERROR: Pas2js Installer (BuildModule: pas2js-rtl): make.exe returned error code 2Details: .  ERROR: Fpcupdeluxe fatal error !Sequencer (pas2js-rtl): Failure running fpcupdeluxe: error executing sequence pas2js-rtlSequencer (Only): Failure running fpcupdeluxe: error executing sequence Only I have already tried with FPC 3.2.2 and trunk, but it doesn't work either. Furthermore, I have done it manually without fpcupdeluxe, following the instructions of: https://gitlab.com/freepascal.org/fpc/pas2js#building-on-windows Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i set PATH=C: \Users\rca\Downloads\Laz34FPCfix\fpc\bin\x86_64-win64;%PATH%make clean all  But I get almost the same error.. Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i ./fpmake.exe clean --os=win64 --cpu=x86_64 -o -dx86_64 --compiler=C:/U sers/rca/Downloads/Laz34FPCfix/fpc/bin/x86_64-win64/ppcx64.exe -buWarning: Removed non empty directory "bin\x86_64-win64"./fpmake.exe compile --os=win64 --cpu=x86_64 -o -dx86_64 --compiler=C:/Users/rca/Do wnloads/Laz34FPCfix/fpc/bin/x86_64-win64/ppcx64.exe -buStart compiling package pas2js for target x86_64-win64.Warning: Source file "pas2js.pp" from package pas2js not found for x86_64-win64The installer encountered the following error:Could not compile target pas2js from package pas2jsmake: *** [all] Error 1 What I can do? I appreciate the help. ---------------------------------------------------------------------- rca · 2024-06-29 04:55 I managed to correct the pas2js_rtl installation error, in case anyone has the same issue: Reading the building pas2js section: https://gitlab.com/freepascal.org/fpc/pas2js#building-pas2js "The makefile expects the sources of FPC to be present under the compiler directory. You can copy/clone the FPC sources there or set enviroment variable FPCDIR. Note that a symlink to the FPC sources will not work, as the linker confuses some relative paths." In the pas2js source code, in fpmake.pp: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   FPCSrcDir:=GetEnvironmentVariable('FPCDIR');  if FPCSrcDir<>'' then  FPCSrcDir:=IncludeTrailingPathDelimiter(ExpandFileName(FPCSrcDir));  if FPCSrcDir='' then    FPCSrcDir:=IncludeTrailingPathDelimiter(GetCur rentDir)+'compiler'+PathDelim; So, initially in Windows manually create the FPCDIR environment variable, in my case it is "C:/Users/rca/Downloads/Laz34FPCfix/fpcsrc" and that's it! And then I modified the source code of fpcupdeluxe, so that it does it automatically. I have created a pull request: https://github.com/LongDirtyAnimAlf/fpcupdeluxe/pull/696