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

Reply via email to