You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openoffice.apache.org by Tal Daniel <ta...@gmail.com> on 2013/10/04 18:20:12 UTC

[Mac] Development environment

I'm desperate for some mentoring regarding setting up the dev environment.
on the Mac. Herbert, can you direct me at the right direction, such as
which IDE, what project settings, do you build a module externally, etc.

Notes:
I'm used to Eclipse; does Xcode have any benefits?

Currently I'm oriented towards fixing BiDi parts (/sw?
com.core.suncom.sun.star.text.XText? ... started reading the dev guide),
but maybe later I could help with the Mac OSX10.6 branch too.

Thanks,
Tal

Re: [Mac] Development environment

Posted by Herbert Duerr <hd...@apache.org>.
Hi Tal,

On 05.10.2013 18:46, Tal Daniel wrote:
> On Sat, Oct 5, 2013 at 10:41 AM, Herbert Duerr <hd...@apache.org> wrote:
>> [...]
>> I'm not sure I understand the question. Do you mean how to build a
>> third-party module such as main/icu?
>
> Yes, e.g, when you're done editing a cxx file, you enter the folder of that
> module, build it, then back to instsetoo_native, and build --all?

For the edit/debug cycle better copy the resulting *dylib file into the 
OpenOffice installation. E.g. if you are in main/editeng and your AOO 
installation is in /Applications/OpenOffice then run
	cp -r ../solver/*/unxmacxi.pro/lib/libediteng.dylib \
		/Applications/OpenOffice.app/Contents/MacOS/
to replace the existing libediteng.dylib there. You probably have to run
	chmod +w /Applications/OpenOffice.app/Contents/MacOS/*dylib*
first.

Please note that AOO still uses two different build systems. The older 
"dmake" system and the newer "gnumake" system. Consolidating them is 
another field with plenty of work opportunities. The dylib results of 
the "gnumake" system are in solver whereas the unstripped results of the 
"dmake" system are in the modules themselves. E.g. the libraries for the 
Calc application (in the main/sd folder) are created as
	main/sd/unxmacxi.pro/lib/lib*dylib
To get them into the application copy them over as above.

For debugging I suggest to build with the "debug=1" flag.

> [...]
> Wow, nice references... thanks! I've tried to edit some code today, in
> editeng/source/editeng/impedit2.cxx, but nothing had an effect on the final
> app, after I installed it. Strange. I'll try the other locations you
> referred me to, later on this week.

Please see my answer above: You need to copy the changed libraries into 
the application directory.

> BTW, do files with different indexes target different OS/platforms? i.e.
> impedit.cxx, impedit[2-4].cxx

No. In the long heritage of the AOO/OOo codebase there was a time, when 
editors with >64 KByte or >32 KLines support were apparently not that 
common, so big source files had to be split up. Splitting these huge 
files wasn't a bad idea anyway so they are still split. This is also 
good when one looks up a files history in the revision control systems.

By the way, in AOO/OOo's codebase the file names following the 8.3 
naming convention often have a history of more than 20 years.

Have fun,
Herbert

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org


Re: [Mac] Development environment

Posted by Tal Daniel <ta...@gmail.com>.
On Sat, Oct 5, 2013 at 10:41 AM, Herbert Duerr <hd...@apache.org> wrote:

> Hi Tal,
>
> Tal Daniel wrote:
> > I'm desperate for some mentoring regarding setting up the dev
> environment.
> > on the Mac. Herbert, can you direct me at the right direction, such as
> > which IDE, what project settings,...
>

>
I wrote a helper
> script to make AOO debugging with LLDB more convenient. Please see
>    main/solenv/inc/lldb4aoo.py
>
> To use it run lldb and enter
>         command script import path-to-script/lldb4aoo.py
> or add that line to lldb's configuration file
>         ~/.lldbinit
> It mostly helps to view AOO's strings. As the ecosystem of OOo's string
> classes was not one of its strong points this helper is quite useful.
>

Thanks, I'll try that, when I get the hang of Xcode, I have no experience
dev in Xcode yet.



> > do you build a module externally, etc.
>
> I'm not sure I understand the question. Do you mean how to build a
> third-party module such as main/icu?
>

Yes, e.g, when you're done editing a cxx file, you enter the folder of that
module, build it, then back to instsetoo_native, and build --all?



> > Notes:
> > I'm used to Eclipse; does Xcode have any benefits?
>
> XCode integrates with LLDB and has some additional tools, e.g. for
> profiling. But maybe there are extensions for Eclipse to do this too.
>
> > Currently I'm oriented towards fixing BiDi parts (/sw?
> > com.core.suncom.sun.star.text.XText? ... started reading the dev guide),
>
> This is an API from the UNO framework. From a BiDi perspective it just
> exposes the functionality provided by ICU's BiDi algorithm [1]. In AOO's
> core BiDi is used in Writer (main/sw/source/core/text), EditEngine
> (main/editeng/source/editeng/) and Vcl (mostly
> main/vcl/source/gdi/outdev3.cxx 's OutputDevice::ImplLayout method), so
> if there are BiDi problems you'll probably find the answer in their code.
>
> [1] http://userguide.icu-project.org/transforms/bidi


Wow, nice references... thanks! I've tried to edit some code today, in
editeng/source/editeng/impedit2.cxx, but nothing had an effect on the final
app, after I installed it. Strange. I'll try the other locations you
referred me to, later on this week.

BTW, do files with different indexes target different OS/platforms? i.e.
impedit.cxx, impedit[2-4].cxx


[...]

Before I forget it: For AOO set the tab-space to four (although I
> personally would prefer ts=8 indentation, but the existing AOO codebase
> assumes ts=4).
>
>
Tab space 4 is my Xcode's default. thanks.

Re: [Mac] Development environment

Posted by Herbert Duerr <hd...@apache.org>.
Hi Tal,

Tal Daniel wrote:
> I'm desperate for some mentoring regarding setting up the dev environment.
> on the Mac. Herbert, can you direct me at the right direction, such as
> which IDE, what project settings,

The AOO build system is unfortunately not yet ready for a full IDE
integration. On this list there were already some good ideas on how to
improve the build system and we'll hopefully find time to work on it
again. As I personally work on multiple platforms their common
denominator, the command line, is my favorite IDE ;-)

With the rejuvente01 branch I started using XCode again, also because of
its debugger interface that uses LLDB in the backend. I wrote a helper
script to make AOO debugging with LLDB more convenient. Please see
   main/solenv/inc/lldb4aoo.py

To use it run lldb and enter
	command script import path-to-script/lldb4aoo.py
or add that line to lldb's configuration file
	~/.lldbinit
It mostly helps to view AOO's strings. As the ecosystem of OOo's string
classes was not one of its strong points this helper is quite useful.

> do you build a module externally, etc.

I'm not sure I understand the question. Do you mean how to build a
third-party module such as main/icu?

> Notes:
> I'm used to Eclipse; does Xcode have any benefits?

XCode integrates with LLDB and has some additional tools, e.g. for
profiling. But maybe there are extensions for Eclipse to do this too.

> Currently I'm oriented towards fixing BiDi parts (/sw?
> com.core.suncom.sun.star.text.XText? ... started reading the dev guide),

This is an API from the UNO framework. From a BiDi perspective it just
exposes the functionality provided by ICU's BiDi algorithm [1]. In AOO's
core BiDi is used in Writer (main/sw/source/core/text), EditEngine
(main/editeng/source/editeng/) and Vcl (mostly
main/vcl/source/gdi/outdev3.cxx 's OutputDevice::ImplLayout method), so
if there are BiDi problems you'll probably find the answer in their code.

[1] http://userguide.icu-project.org/transforms/bidi

> but maybe later I could help with the Mac OSX10.6 branch too.

As you see our nice project has plenty of work/fun opportunities all
over the place.

Before I forget it: For AOO set the tab-space to four (although I
personally would prefer ts=8 indentation, but the existing AOO codebase
assumes ts=4).

Herbert

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org