| Re: [platform-cvs-dev] Setting up shared multiplatform developmentenvironment |
|
Pawel,
You’re quite right – cvsignore isn’t suitable in my
case. I need different versions of some files downloaded into a project
depending on platform, not to ignore the files. One would think that this is a
quite common problem in all multiplatform projects including, as you write,
Eclipse itself.
I understand your description of how things are
setup in the development of Eclipse itself. You have some projects that are
relevant to some platforms only and then you manually select these projects when
working with (on) those platforms. I do this too – I use a lot of JNI and every
JNI C project has an accompanying Java project which exposes that functionality
using Java class(es), more or less in 1:1 relation to original native calls.
These projects are platform specific and are downloaded manually into Eclipse as
needed. Above that I have platform independent abstraction layers in Java
consisting of interface definitions, factory methods, and a set of
implementations of these interfaces against above low level platform dependent
Java classes. I do this in order to minimize C/C++ programming and work in Java
as much as possible.
However, my original question was about something
else. Here are 2 examples. A JNI C project needs different tool chain and
different build settings depending on actual platform even if its C-code itself
is fully portable. This means that you need different versions of .cproject
file. All other source files are platform independent and therefore you don’t
want separate projects for each and every platform in this case. Another
example is build/run time classpath in a Java project which varies between
platforms, which requires different .classpath files. All other files are
platform independent. Again, you don’t want separate projects for each platform
only because classpath changes. Then there are e.g. the .def files (needed and
referred to only on win32), C++ files with inline assembly code, etc.,
etc.
I think CVS itself has already all the
functionality required. You can accomplish all this by manually and carefully
setting up things in CVS and then equally manually and carefully
downloading/updating/committing them to/from Eclipse. What we don’t have in
Eclipse is a way to automate that and make it fool-proof and developer friendly.
I would say we need a way to _configure_ a project with appropriate versions
(branches) of various files and then refer to such a configuration by a name.
Most of the files will be from HEAD (or whatever your “current head” is), some
of the files will be from platform dependent branches.
Perhaps this is something that Eclipse/CVS project
could take a closer look into.
Thanks/Mikael
|