Hi!

 

I'd like to know, how the Visual Studio project files are generated and
maintained.

I'm having a hard time coping with them, especially when they get updated.

(I don't have direct access to the SVN repository, I need top export the
project and copy it over to my development machine)

 

I always do:

1. switch the runtime DLL linkage from "static" to "dynamic"

2. create distinct names for the 32/64bit and release/debug output files

3. adapt the names of other output files(.lib, .pdb) as well, to match the
corresponding DLL

4. disable OpenMP, since I only work with the standard edition of Visual
Studio

5. enable some more optimizations in Release builds

6. Adapt client.cpp to load the right DLLs for the right builds.

 

Also, the current file structure is a bit weird from my point of view.

Are there any linux/unix/mac requirements that make the current structure
necessary?

 

I'm used to the following convention

 

Equalizer/

            eq/                   // header files

                        base/

                        client/

                        server/

                        etc.

            src/                  // source file

                        base/

                        client/

                        server/

                        etc..

            lib/                   (for executables this is often named
bin/)

                        EqualizerClient.dll

                        EqualizerClient.lib

                        EqualizerClientD.dll

                        EqualizerClientD.lib

                        EqualizerClient_x64.dll

                        EqualizerClient_x64.lib

                        EqualizerClientD_x64.dll

                        EqualizerClientD_x64.lib

                        etc.

            build/                            // obj files will go here

                        win32/                          // platform

                                   Release/           // configuration

                                   Build/

                        X64/

                                   Release/

                                   Build/

            examples/         // example projects and config files go here

            doc/                 // documentation

 

 

Redistribution will the just leave out the src and build directory and
your're done. By clearly separating debug/release and platform in the DLL
name, I can easily switch between them and all version happily live besides
each other.

Special needs for redistribution can be placed into an extra  "deploy"
script which copies the redistributable files into the right place and zips
them. I find the prebuilt-event attached to _each_ single headerfile
cumbersome and error prone. Let deployment be e separate step, independent
of development.

Another suggestion is to unify EqualizerClient.dll and EqualizerServer.dll
into one. Both depend on each other anyway. And the code-responsibility of
both is sufficiently separated by namespaces.

One DLL less is one project file less, which means easier maintenance and
easier redistribution.

 

How's your opinion? Are there any Linux/Unix peculiarities I'm not aware of?

 

 

Thanks,

 

Mathias

 

 

_______________________________________________
eq-dev mailing list
[email protected]
http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com

Reply via email to