Author Topic: How start help develop C::B?  (Read 7022 times)

Offline Borneq

  • Multiple posting newcomer
  • *
  • Posts: 45
How start help develop C::B?
« on: December 10, 2015, 11:05:58 am »
I have succeeded compiling C::B sources it from SVN but it need debug it inside Code::Blocks.
How compile C::B inside C::B, both under Linux and Windows? (under Windows will be easier because I have Wnidows 8.1, VirtualBox and Linux Mint inside VirtualBox)
Where are Todo lists and bugzilla?

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 6077
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: How start help develop C::B?
« Reply #1 on: December 10, 2015, 02:38:09 pm »
I have succeeded compiling C::B sources it from SVN but it need debug it inside Code::Blocks.
How compile C::B inside C::B, both under Linux and Windows? (under Windows will be easier because I have Wnidows 8.1, VirtualBox and Linux Mint inside VirtualBox)
Where are Todo lists and bugzilla?
I'm grad to see this post, thanks, hope you will enjoy the development. In-fact that's the same question I would ask when I would like to contribute to C::B, that's many years ago.  :)
It is really easy to build C::B inside C::B. For example, under windows, you just need to open the codeblocks.cbp file, and hit the build the button to build, I think the details can be found in this wikipage: Installing Code::Blocks from source on Windows - CodeBlocks.
Under Linux, this is quite similar. (though I have never don't that under Linux, so other devs may help)

About Todo and bugzilla. All the bug reports are here: Tickets, also there are old tickets from old berlios site, see: old bugs, old features and old patches.

There are a lot of Todos, such as fully migrate to the wx3.0 library, as currently we are still using the wx 2.8.12 library, the gdb-mi plugin... I think you can choose the interesting part of C::B to start the development.

If you see any problems, don't hesitate to ask in our forum here.
Thank you!
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline Borneq

  • Multiple posting newcomer
  • *
  • Posts: 45
Re: How start help develop C::B?
« Reply #2 on: December 10, 2015, 08:46:51 pm »
I try compile it under Windows 8.1:
I download and install wx version 2.8.x : wxMSW-2.8.12-Setup.exe to C:\wxWidgets-2.8.12
Build in directory : c:\wxWidgets-2.8.12\build\msw\ mingw32-make.exe -f makefile.gcc
options: SHARED=1 and next SHARED=0, UNICODE=1 BUILD=release
- I must comment in statbox.cpp wxUxThemeEngine::Get()->GetThemeFont because errors
I have get sources from SVN : svn://svn.code.sf.net/p/codeblocks/code/trunk
set global variables:
  cb_release_type = -g
  wx =
    base = c:\wxWidgets-2.8.12
    include = c:\wxWidgets-2.8.12\include
    lib = c:\wxWidgets-2.8.12\lib
(directory CBroot\src\build_tools\autorevision is ignored by git - it is ok?)
- open CodeBlocks.workspace
- is choosed first project Code::Blocks wx2.8.x
- Build
- Changed #include "wx/setup.h" to #include "wx/univ/setup.h"

ERROR: ld.exe : cannot find -lwxmsw28u
there are many libs:
libwxmsw28u_adv.a
libwxmsw28u_aui.a
libwxmsw28u_core.a
...
but not libwxmsw28u.a
I must add all 16 libraries to project?

About Todos:
How is planned migration to wx3.0 library? What is gdb-mi plugin? what difference from present debug plugin?

Best regards!

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9723
Re: How start help develop C::B?
« Reply #3 on: December 10, 2015, 08:51:44 pm »
Build in directory : c:\wxWidgets-2.8.12\build\msw\ mingw32-make.exe -f makefile.gcc
options: SHARED=1 and next SHARED=0, UNICODE=1 BUILD=release
Would you mind to read exactly what is written on the page ollydbg pointed you to?

Quote
set path=c:\mingw\bin;c:\mingw\mingw32\bin
mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1  clean
mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1

Notice that you didn't build the monolithic version, therefore the lib is missing.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline Borneq

  • Multiple posting newcomer
  • *
  • Posts: 45
Re: How start help develop C::B?
« Reply #4 on: December 11, 2015, 01:43:02 am »
I have compiled wxWidgets with MONOLITHIC=1
I using TDM-MinGW package instead MinGW.
I placed zip.exe to directory in PATH
and wait for build...

SUCCESS!
and run new C::B as debug process from base C::B

If I try wxWidgets-3.0.2 :
sdk\wxpropgrid\include\wx\propgrid\propdev.h|18|error: aggregate 'WXDLLIMPEXP_PG_FWD wxArrayEditorDialog' has incomplete type and cannot be defined|

Modular design (plugins) facilitates find interesting code place.

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7785
    • My Best Post
Re: How start help develop C::B?
« Reply #5 on: December 11, 2015, 02:45:41 am »
What I quoted makes no sense; what did you do to result in the error?

The most likely thing you did wrong is to use an Code::Blocks wxWidgets 28 project and try to link against wxWidgets 3.0.

Tim S.

If I try wxWidgets-3.0.2 :
sdk\wxpropgrid\include\wx\propgrid\propdev.h|18|error: aggregate 'WXDLLIMPEXP_PG_FWD wxArrayEditorDialog' has incomplete type and cannot be defined|
C Programmer working to learn more about C++ and Git.
On Windows 10 64 bit and Windows 11 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 6077
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: How start help develop C::B?
« Reply #6 on: December 11, 2015, 03:48:22 am »
@Borneq, you should use: CodeBlocks_wx30.cbp to build C::B if you want to link against wx 3.0.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.