kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #18473
Best way to set up a canonical library path ?
Hi,
So while developing and setting up a new system, it is not really
clear to me how to set up all the paths. Right now I can't seem to
find a simple way, only something that feels a bit too complicated.
1) Installing libraries
(I do _not_ use the git-plugin but rather prefer local installation)
To get a fresh setup of libraries, I am running scripts/library-repos-install.sh
I am doing that with a custom path (WORKING_TREE=/usr/local/share/kicad)
under $WORKING_DIR, it creates library-repos, under which it unpacks
$WORKING_TREE/library-repos/kicad-library
with schematic symbols and 3d packages
and unpacks all pretty directories in there as well:
$WORKING_TREE/library-repos/*.pretty
so far so good.
2) setting the environment variables
Now running a freshly compiled KiCad does of course not find the
libraries. In fact, without any environment variables present, it
apparently assumes these:
KIGITHUB=https://github.com/KiCad
KISYS3DMOD=/usr/local/modules/packages3d
KISYSMOD=/usr/local/modules
(which it writes to ~/.config/kicad/kcad_common). This seems to be
bogus to me; I can imagine that it extracts that from the compile
PREFIX somehow, but I'd expect it to append a share/kicad or something
to it.
After copying the fp-lib-table and setting the enviroment variable as
suggested in the script
cp $WORKING_TREES/library-repos/kicad-library/template/fp-lib-table.for-pretty
~/.config/kicad/fp-lib-table
export KISYSMOD=$WORKING_TREES/library-repos
.. eeschema still does not find the libraries.
for that, I have found that I can set KICAD to that directory
export KICAD=$WORKING_TREES/library-repos/kicad-library
Now, 3D viewing _still_ does not work. Yet another environment
variable has to be set
export KISYS3DMOD=$WORKING_TREES/library-repos/kicad-library/modules/packages3d
3) Findings
Kicad only works with the libraries with a little of manual-work.
Three environment variables have to be set to get going. Given
WORKING_TREES as the chosen location in the install script, these are
the environment variables:
export KICAD=$WORKING_TREES/library-repos/kicad-library
export KISYSMOD=$WORKING_TREES/library-repos
export KISYS3DMOD=$WORKING_TREES/library-repos/kicad-library/modules/packages3d
4) Question
Am I am doing something wrong here, or is this really needed this way ?
5) Suggestion
I know I have not been actively developing recently, so I can't really
complain. But I would like to see it working this way:
- We have a defined standard layout of how libraries are checked
out/installed locally. Say in $PREFIX/share/kicad. The install script
does already something like that, so that could be the defined
standard way (though some re-structuring might be useful).
- There is only _one_ environment variable to be set, pointing to
the root of this directory (KICAD_SYSTEM_LIBS or something)
- This environment variable is pre-set to $PREFIX/share/kicad (or
to the eqivalent path on where typically data files reside on other
platforms).
Would this be a good goal before a new, stable release ? I think it
will help users and make software-packagers happy.
Cheers,
Henner.
Follow ups