On 20.01.2011 19:30, Greg Ercolano wrote: > Following up here, because right now the STR system is down. > (I'll try to remember to paste this into the STR once it's back up.) > > Albrecht Schlosser wrote: >> Link: http://www.fltk.org/str.php?L2521 >> Version: 1.3.0 >> [..] >> Meanwhile we also need to update the #define's in the *library* projects >> (not test/*, not jpeg/zlib/png, and not fluid) to define FL_LIBRARY. > > Just checking: there seems to be an inconsistency; > you say not to define FL_LIBRARY in jpeg/zlib/png's, > yet the unix shell command you ran does seem to be changing them..? > >> $ for f in `ls -1 fltk*.dsp|grep -v dll`; do echo $f;sed -i -e >> 's/WIN32;/FL_LIBRARY;WIN32;/g' $f;done >> fltk.dsp >> fltk_forms.dsp >> fltk_gl.dsp >> fltk_images.dsp >> fltk_jpeg.dsp <-- JPEG >> fltk_png.dsp <-- PNG >> fltk_zlib.dsp <-- ZLIB > > Should we /not/ do those?
No, we shouldn't you're right. I was probably transposing(?) it from VC2008, where the projects have different names (jpeg, libpng, and zlib). Sorry for the confusion. > BTW, sorry; I haven't been following the FL_LIBRARY thread closely.. FYI: We looked for a way not to expose FLTK's internals (class Fl_X etc.) and found that some FLTK projects define FL_LIBRARY when compiling the library files (together with FL_DLL), and so we decided to use this. Unfortunately FL_LIBRARY had only been defined in the DLL projects, but now we do also need it in the 'fltk' project, as well as all other fltk library project files (fltk_images, fltk_gl, fltk_forms). The bundled libs (jpeg, png, zlib) don't need it since they don't use FLTK's internals. The "executable" projects (fluid and test/*) must not define it, because that would generate wrong bindings for the dll's (see FL_EXPORT in FL/Fl_Export.H). >> this for the VisualC2008 and 2010 projects, and it is easy to do with a >> text editor: change 'WIN32;' to 'FL_LIBRARY;WIN32;', where applicable >> (this is probably correct everywhere, if you search for exact case and the >> trailing ';'). > > OK, so in the case of the VS6 files, there are actually raw CL commands, > so it looks like I should change: > > - # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" .. > + # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "FL_LIBRARY" /D "NDEBUG" .. > ^^^^^^^^^^^^^^^ Sorry again, you're right, I think that I edited the files *after* conversion into the VisualC2008 format. What you wrote above is correct. >> It's great that you can reproduce it and set the dependencies directly >> with VC6; I can only hand-edit the files, and I don't know how to change >> the dependencies this way, > > Me neither -- I'm just hand editing. > Brian made the dependency changes IIRC. Okay, but if you have VC6 installed, you ought to be able to open the project and look at the dependencies. This is something that can be done well in the GUI (at least in VC2008/10). In VC2008 you do a right-click on a project, e.g fltk, and select "Project Dependencies..." from the context menu. Then you can check (or uncheck) each dependency. You can check the resulting "Build Order" with the corresponding tab. When you're done with one project, you can select another project /in/ the dependencies window. That's nice and efficient. >> Everything worked, except the dll builds. Maybe something is wrong with >> the output directories, see [2]. > > Did the 'Debug' build of the DLL's work, but the 'Release' didn't? > I think that's what Brian was mentioning (in the STR). In my case both didn't work, but I used the old VC6 project w/o Brian's changes. I'd like to try it now, but I can't access the file right now, as you know. :-( Okay, since I can't access Brian's files, let's talk about dependencies. Probably you know all this, but that's what I did: Notation is: project: depends on... (-- means no dependencies) Listing is in build order from my converted VC6 project, w/o the dll projects: fltk_zlib: -- fltk_png: fltk_zlib fltk_jpeg: -- fltk: fltk_jpeg, fltk_png fltk_forms: fltk fltk_images: fltk, fltk_jpeg, fltk_png fltk_gl: fltk Fluid: fltk, fltk_forms, fltk_images I don't know whether Fluid's dependencies are all "true", but they make sure that all the libs are built before Fluid. The *dll projects depend on their corresponding dll versions. All other test programs depend on the libs, as it should be obvious. Albrecht _______________________________________________ fltk-bugs mailing list [email protected] http://lists.easysw.com/mailman/listinfo/fltk-bugs
