Code::Blocks Forums

Developer forums (C::B DEVELOPMENT STRICTLY!) => Development => Topic started by: Micah on August 14, 2005, 10:36:11 am

Title: Use a modified version of Scintilla?
Post by: Micah on August 14, 2005, 10:36:11 am
I recently added a feature to Scintilla to fold code on the line above the brace so the following:
Code
-while(foo)
{
bar;
}
will fold into:
Code
+while(foo)
instead of:
Code
while(foo)
+{

I would like this feature to be available to myself while using Code::Blocks, but I was unable to figure out how to include my own version of Scintilla when compiling Code::Blocks. Can anyone offer me any pointers on how to do this?
Title: Re: Use a modified version of Scintilla?
Post by: Urxae on August 14, 2005, 10:52:05 am
I think you'll have to change STC (the wxWidgets binding of Scintilla, %WXDIR%/contrib/stc I think) to use your version of Scintilla and recompile it, then compile Code::Blocks with that library. Don't forget to compile wxWidgets itself first if you haven't done so yet, though.
Title: Re: Use a modified version of Scintilla?
Post by: rickg22 on August 14, 2005, 10:53:06 am
Maybe we could use the wxScintilla class (a derivative of wxStyledTextCtrl, google for it). Just a question.

Can it be configured with a parameter or something?
Title: Re: Use a modified version of Scintilla?
Post by: Micah on August 14, 2005, 10:00:54 pm
What configure parameters do I need to pass to compile wxWidgets for Code::Blocks?  Just --enabled-shared and everything else as default?
Title: Re: Use a modified version of Scintilla?
Post by: David Perfors on August 14, 2005, 10:32:01 pm
see the wiki ;)
Title: Re: Use a modified version of Scintilla?
Post by: thomas on August 15, 2005, 12:32:23 am
see the wiki ;)
Hahaha... almost falling off my chair :)
I spent 3 hours trying to compile wx this afternoon using the wiki.

Funnily, I already did so a couple of weeks ago, and it went just fine. Today it keeps failing with "unexpected end of file" - same machine, same parameters, freshly unzipped sources.

Now tell me a computer is a deterministic machine ;)
Title: Re: Use a modified version of Scintilla?
Post by: rickg22 on August 15, 2005, 01:13:50 am
Anyway in case you're wondering... the scintilla in wxWidgets is composed of two parts: Scintilla, and wxStyledTextCtrl, which is an encapsulation of most (if not all) the scintilla methods.

Maybe you could do a derivative of wxStyledTextCtrl instead of having to recompile scintilla...
Title: Re: Use a modified version of Scintilla?
Post by: rickg22 on August 15, 2005, 01:19:56 am
I spent 3 hours trying to compile wx this afternoon using the wiki.

Hey - why not make a list of errors you're getting?

I can compile wx242 using the wiki (in both Windows AND Linux) and had no problems at all. Anyway Thomas, the wiki could as well use your experiences compiling ;-)
Title: Re: Use a modified version of Scintilla?
Post by: thomas on August 15, 2005, 01:17:51 pm
Hey - why not make a list of errors you're getting?
Doubt that will be of any help, as it is quite weird, but lets see :)

This is the thing I did a couple of weeks ago,
the exact thing I did yesterday,
and the exact same thing I did 20 minutes ago:
Code
C:\>cd C:\wxWidgets-2.6.1\build\msw

C:\wxWidgets-2.6.1\build\msw>set path=c:\mingw\bin;c:\mingw\mingw32\bin

C:\wxWidgets-2.6.1\build\msw>mingw32-make -v
GNU Make 3.80
Copyright (C) 2002  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

C:\wxWidgets-2.6.1\build\msw>mingw32-make -f makefile.gcc clean
if exist gcc_mswd\*.o del gcc_mswd\*.o
[200 more lines of output...]

C:\wxWidgets-2.6.1\build\msw>mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0 VENDOR=cb
A few weeks ago, it worked fine. Yesterday, it failed with a message like "unexpected end of file" after some 30-40 lines of output. I tried newer and older versions of the bintools, also desperately tried using msys make instead, no success in either case, so eventually I gave up.
Today, to reproduce the error messages for this post, I did the very same thing -- it compiled just fine (except for the usual 20,000 warnings about incompatible types and type definition attributes in the implementation, but I guess that is just normal for wxWidgets...).
In every case, I copied the commands from the WiKi and pasted them into the cmd window. So how is copy and paste on sunday different from copy and paste on monday, lol. This is beyond me :)
Title: Re: Use a modified version of Scintilla?
Post by: Urxae on August 15, 2005, 05:02:35 pm
A few weeks ago, it worked fine. Yesterday, it failed with a message like "unexpected end of file" after some 30-40 lines of output. I tried newer and older versions of the bintools, also desperately tried using msys make instead, no success in either case, so eventually I gave up.
Today, to reproduce the error messages for this post, I did the very same thing -- it compiled just fine (except for the usual 20,000 warnings about incompatible types and type definition attributes in the implementation, but I guess that is just normal for wxWidgets...).
In every case, I copied the commands from the WiKi and pasted them into the cmd window. So how is copy and paste on sunday different from copy and paste on monday, lol. This is beyond me :)
Did you happen to use a different PATH setting? I'd tried a few times to compile wx without success, until I reduced my PATH to the bare essentials. Turns out it didn't work if the MSYS bin directory was in there :? (though just putting if before the MinGW bin dir may work too).

Though if CB didn't require STC I'd have had it running much sooner: wx itself compiled fine from within MSYS with the configure script and make as per the wx *nix install instructions, but I couldn't get it to compile STC. Maybe I missed some configure parameter...
Title: Re: Use a modified version of Scintilla?
Post by: thomas on August 15, 2005, 05:12:24 pm
Always my first step:
Code
set path=c:\mingw\bin;c:\mingw\mingw32\bin
Title: Re: Use a modified version of Scintilla?
Post by: rickg22 on August 15, 2005, 06:39:16 pm
makefile.gcc? :shock: Shouldn't that be Makefile.g95?
Title: Re: Use a modified version of Scintilla?
Post by: AkiraDev on August 15, 2005, 08:57:00 pm
I got the same issue a while ago, and my solution was to dump (uninstall) MSys all together, and only use MinGW for compiling in the command prompt. MSys and MinGW don't mix perfectly, unlike what one would expect. Also, make sure that you are using Mingw32-Make 3.80.

rickg22: Yes, it's correct, it IS makefile.gcc for MinGW32. makefile.g95 is an old makefile for Cygwin, I think.
Title: Re: Use a modified version of Scintilla?
Post by: Urxae on August 15, 2005, 11:14:32 pm
makefile.gcc? :shock: Shouldn't that be Makefile.g95?
rickg22: Yes, it's correct, it IS makefile.gcc for MinGW32. makefile.g95 is an old makefile for Cygwin, I think.
Actually, it depends on what exactly you're trying to compile. For wxWindows 2.4.2, it's makefile.g95, but for wxWidgets 2.6.1 it's makefile.gcc (assuming MinGW). They changed the name of the makefile as well as the name of the library itself. :roll:

Note that AkiraDevs statement is technically 100% correct: it is makefile.gcc (as thomas is compiling 2.6.1) and makefile.g95 is an old makefile for both Cygwin and MinGW ;).
Title: Re: Use a modified version of Scintilla?
Post by: mandrav on August 19, 2005, 08:17:50 am
Code
C:\wxWidgets-2.6.1\build\msw>mingw32-make -f makefile.gcc clean
if exist gcc_mswd\*.o del gcc_mswd\*.o
[200 more lines of output...]

C:\wxWidgets-2.6.1\build\msw>mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0 VENDOR=cb

You do know that you should be using the same options for "make clean" too, don't you?
Try this instead of the simple "make -f makefile.gcc clean":
Code
C:\wxWidgets-2.6.1\build\msw>mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0 VENDOR=cb clean
(note the "clean" at EOL).

HTH,
Yiannis.