Mail Archives: geda-user/2018/07/23/14:25:37
On Mon, 23 Jul 2018, karl AT aspodata DOT se wrote:
> Igor2:
> ...
>> Sounds like the "project file" problem.
> ...
>
> Whats the use for a "project file", isn't it sufficient to use the top
> level sch file ?
If you think in gschem-only, and don't want to save arbitrary per-project
config settings, then top level sch is probably enough. In a sense a top
level sch is a geda/gaf-only project file that (as far as I understood)
does not allowarbitrary config settings but allows referecing the other
sheets of the project.
However, users seem to need more. Practice showed that even in the simple
gschem-pcb relation the top level sch was not enough. That's why gsch2pcb
grew its own project file format. But then that was not read by pcb. So if
you wanted to configure your footprint lib, you had to configure it in pcb
and then in gsch2pcb. And of course, the symbol lib for gschem in a third
file.
Now what if you want a different footprint lib and symbol lib in different
projects? What if you want to provide a self-contained tarball with local
libs, without embedding everything? And what if you want to set other,
project-specific configuration, such as export output jobs (cam) for
pcb-rnd?
With classic geda it's normally user config and then affects all your
projects, or it's somehow saved in schematics or board file (e.g. pcb's
import schematic's sch file names). The project concept is missing, while
poeple very often want to share and collaborate on projects, not
individual files.
When I figured this and introduced optional project files in pcb-rnd, as
an extra it brought some code and UI simplification: we don't have
different config for pcb-rnd and gsch2pcb-rnd any more and the plan is
that genxproj would work from the same project file as well. The project
file format is designed in a way that any tool can easily extend it by its
own subtree without interfering with other tools.
In theory there could be a separate project per tool file for the same
project, but I don't think that would be easy for the user. In practice
users often work this around with Makefiles or shell scripts, but I am not
sure all tools support all possible configuration setting and
multi-file-opens on command line. Then if you want to parse such a generic
language with a project manager just (e.g. genxproj or xgsch2pcb) to
figure the file names and settings, you'll also have hard time.
Anyway, pcb-rnd, gsch2pcb-rnd already support it, later on genxproj and
cschem will all support the same format. Whoever wants to join and use
this format has my full support. Who doesn't like the idea of having
project files doesn't need to use it: it's all totally optional. And of
course, any developer is free to invent yet another project file format
only his tool supports (but I don't think majority of users would love the
idea of having 3..4 project files instead of 1).
Regards,
Igor2
- Raw text -