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