Alexey-T / CudaText

Cross-platform text editor, written in Free Pascal
Mozilla Public License 2.0
2.54k stars 174 forks source link

Build CudaText from source #4586

Closed ghost closed 2 years ago

ghost commented 2 years ago

What's next? Following this guide (https://wiki.freepascal.org/CudaText#How_to_compile_CudaText), I have working binary under bin. My question is this binary will work full featured the same as the zip distribution or not? Because there is only the binary there, no other files I usually see go together with CudaText on a zip distribution. If it's not, how to make a zip distribution. Thank you.

Alexey-T commented 2 years ago

My question is this binary will work full featured the same as the zip distribution or not?

yes. if you put it near the data files.

i compile Cud so binary goes into dir 'app' (see in github) near data files.

ghost commented 2 years ago

My question is this binary will work full featured the same as the zip distribution or not?

yes. if you put it near the data files.

i compile Cud so binary goes into dir 'app' (see in github) near data files.

So do not use the binary under bin but use the binary on CudaText_up/src/CudaText/app?

On more question, the -ws flag seems to be not implemented isn't it? Through out the script, I see no usage of it. I tried to pass -ws qt5 but it doesn't work, the build failed quickly. I want qt5 based not gtk2.

Alexey-T commented 2 years ago

but use the binary on CudaText_up/src/CudaText/app?

seems yes.

I tried to pass -ws qt5 but it doesn't work, the build failed quickly.

what error?

ghost commented 2 years ago

what error?

So much details were printed, I can only skim Fatal: (10022) Can't find unit AllLCLIntfUnits used by LCL

Update: I'm not using fpcupdeluxe but install from the deb for Linux directly from lazarus.

Alexey-T commented 2 years ago

this means some Laz paths are not configured ok. not app error.

ghost commented 2 years ago

this means some Laz paths are not configured ok. not app error.

I don't think so. I think the script doesn't implement -ws flag yet. The ws value has no usage through out the script other than for setting output dir name. I tried to build Lazarus itself (from Lazarus) with Qt5 and it worked.

Alexey-T commented 2 years ago

my XP. I run cudaup compiling. it failed with 1 error in ATSynedit:

/home/user/cuda/cudatext_up/src/ATSynEdit/atsynedit/atsynedit.pas(8671,9) Error: (5000) Identifier not found "IM_Context_Set_Cursor_Pos"

The src near the line 8671 tells:

        IM_Context_Set_Cursor_Pos(Caret.CoordX,Caret.CoordY+TextCharSize.Y);
        // if symbol IM_Context_Set_Cursor_Pos cannot be compiled, you need to open IDE dialog
        // "Tools / Configure 'Build Lazarus'", and there enable the define: WITH_GTK2_IM;
        // then recompile the IDE.  

so do it.

Alexey-T commented 2 years ago

I made the ATSynedit fix for that error. now it must be OK, test.

Alexey-T commented 2 years ago

--ws key works. same as -w.

 ./cudaup.sh -l /home/user/fpcupdeluxe2/fpcupdeluxe/lazarus -m -w qt5
Alexey-T commented 2 years ago

I had to add this info to wiki in 'how to compile cudatext' part,

'''GTK2 error on ATSynEdit compiling regarding IME.'''

To fix this error, edit the file atsynedit/atsynedit_package.lpk and remove this block there:

      <Other>
        <CustomOptions Value="-dGTK2_IME_CODE"/>
        <OtherDefines Count="1">
          <Define0 Value="GTK2_IME_CODE"/>
        </OtherDefines>
      </Other>