On 23.08.2011 10:00, Matthias Melcher wrote:
>
> On 23.08.2011, at 09:39, Albrecht Schlosser wrote:
>
>> Hmm, currently I can't follow what "the new scheme" means exactly,
>
> OK, the old structure was like this:
...
>
> For the new scheme, I decided to break up source code and headers into the 
> same groups as we already did with the libraries. I find this useful because 
> it clearly associates libraries with directories, it reduces the number of 
> files in the directories, and it makes it possible to add and remove 
> individual libraries by the core developers.
>
> So this is the new scheme
>
> ./include/fltk3/        all FLTK3 core library headers
> ./include/fltk3gl/      all FLTK3 OpenGL library headers
> ./include/fltk3images/  all FLTK3 image library headers
> ./include/fltk3jpeg/    all FLTK3 jpeg library headers
> ./include/fltk3zlib/    all FLTK3 zlib library headers
> ./include/fltk/         all FLTK2 compatibility headers
> ./include/FL/           all FLTK1 compatibility headers
> ./src/core/             FLTK core source code
> ./src/gl/               FLTK OpenGL source code
> ./src/images/           ...
> ./src/jpeg/             ...
> ./src/png/              ...
> ./src/zlib/             ...
> ./lib/                  all generated static and dynamic libraries
> ./include/config.h      configuration for autoconf/makefile builds - this 
> will never be installed
> ./ide/*/config.h        configuration IDE builds - this will never be 
> installed

Thanks for the explanation. Looks good, AFAICT.

> I believe that adding a new library (or should we call them "module"?), for 
> example fltk3cairo, is now much easier, as the structure should be obvious.

On the first look it's strange to have two different directories for
each external library (jpeg, png, zlib) for splitting the headers and
the sources. I used to compare (diff) the old and new {jpeg|png|zlib}
distribution tarballs with our sources before updating the libs to a
newer version. This will be less comfortable now, but maybe the install
process is easier this way? What was the reason to split the external
libs this way?

> (I am still undecided about naming the core source files "core". Maybe I 
> should repeat the "fltk3..." naming scheme in the source code directry as 
> well?)

Since all other dirs are "versioned" now, "fltk3" would probably be the
better choice...

Side note: I don't like the "fltk3" naming convention anyway.
Some day in the future we will have fltk4 and fltk5, maybe - my
favourite naming would be that the newest and best FLTK version would
always be "fltk", but I know that this would conflict with FLTK2
compatibility, and so we *had* to choose "fltk3" for now. :-(

>> but I'd say that config.h should _not_ be in the include directory,
>> i.e. it shouldn't be in any directory used for building user code.
>>
>> With make, putting it into the include directory would likely cause
>> it to be "installed".
>
> Yes, I know that there is that risk. We may have to move it again.
>
> Maybe my last commit log explains it a bit more detailed:

Thanks again, I read it after my posting.

And thanks for the ongoing huge work with FLTK 3!

Albrecht

PS: with Ian's correction to makeinclude (adding -I.. three times),
everything except CubeView built now with MinGW. Errors:

Compiling CubeView.cxx...
In file included from CubeView.cxx:28:0:
CubeView.h:44:32: error: expected class-name before '{' token
CubeView.cxx: In constructor 'CubeView::CubeView(int, int, int, int, 
const char*)':
CubeView.cxx:37:15: error: class 'CubeView' does not have any field 
named 'Fl_Box'
CubeView.cxx:59:57: error: 'label' was not declared in this scope
CubeView.cxx:60:11: error: 'FL_ALIGN_WRAP' was not declared in this scope
CubeView.cxx:60:27: error: 'FL_ALIGN_INSIDE' was not declared in this scope
CubeView.cxx:60:42: error: 'align' was not declared in this scope
make[1]: *** [CubeView.o] Error 1
Compiling CubeMain.cxx...
In file included from CubeViewUI.h:12:0,
                  from CubeMain.cxx:30:
CubeView.h:44:32: error: expected class-name before '{' token
make[1]: *** [CubeMain.o] Error 1
Compiling CubeViewUI.cxx...
In file included from CubeViewUI.h:12:0,
                  from CubeViewUI.cxx:3:
CubeView.h:44:32: error: expected class-name before '{' token
CubeViewUI.cxx: In member function 'void 
CubeViewUI::cb_vrot_i(fltk3::Roller*, void*)':
CubeViewUI.cxx:7:7: error: 'class CubeView' has no member named 'redraw'
CubeViewUI.cxx: In member function 'void 
CubeViewUI::cb_ypan_i(fltk3::Slider*, void*)':
CubeViewUI.cxx:15:7: error: 'class CubeView' has no member named 'redraw'
CubeViewUI.cxx: In member function 'void 
CubeViewUI::cb_xpan_i(fltk3::Slider*, void*)':
CubeViewUI.cxx:23:7: error: 'class CubeView' has no member named 'redraw'
CubeViewUI.cxx: In member function 'void 
CubeViewUI::cb_hrot_i(fltk3::Roller*, void*)':
CubeViewUI.cxx:31:7: error: 'class CubeView' has no member named 'redraw'
CubeViewUI.cxx: In member function 'void 
CubeViewUI::cb_zoom_i(fltk3::ValueSlider*, void*)':
CubeViewUI.cxx:39:7: error: 'class CubeView' has no member named 'redraw'
CubeViewUI.cxx: In constructor 'CubeViewUI::CubeViewUI()':
CubeViewUI.cxx:105:17: error: 'class CubeView' has no member named 'box'
CubeViewUI.cxx:106:17: error: 'class CubeView' has no member named 'color'
CubeViewUI.cxx:107:17: error: 'class CubeView' has no member named 
'selection_color'
CubeViewUI.cxx:108:17: error: 'class CubeView' has no member named 
'labeltype'
CubeViewUI.cxx:109:17: error: 'class CubeView' has no member named 
'labelfont'
CubeViewUI.cxx:110:17: error: 'class CubeView' has no member named 
'labelsize'
CubeViewUI.cxx:111:17: error: 'class CubeView' has no member named 
'labelcolor'
CubeViewUI.cxx:112:17: error: 'class CubeView' has no member named 'align'
CubeViewUI.cxx:113:17: error: 'class CubeView' has no member named 'when'
CubeViewUI.cxx:114:50: error: no matching function for call to 
'fltk3::Group::resizable(CubeView*&)'
../include/fltk3/Group.h:126:10: note: candidates are: void 
fltk3::Group::resizable(fltk3::Widget&)
../include/fltk3/Group.h:155:10: note:                 void 
fltk3::Group::resizable(fltk3::Widget*)
../include/fltk3/Group.h:159:20: note:                 fltk3::Widget* 
fltk3::Group::resizable() const
make[1]: *** [CubeViewUI.o] Error 1
_______________________________________________
fltk-dev mailing list
fltk-dev@easysw.com
http://lists.easysw.com/mailman/listinfo/fltk-dev

Reply via email to