← Back to team overview

kicad-developers team mailing list archive

Re: Global Search Paths and fp-lib-table Entries?

 

On 11/3/2014 3:22 AM, Cirilo Bernardo wrote:
> On Mon, Nov 3, 2014 at 6:19 PM, Bernhard Stegmaier
> <stegmaier@xxxxxxxxxxxxx <mailto:stegmaier@xxxxxxxxxxxxx>> wrote:
> 
>     OK, got it.
>     However, I am still trying to get some kind of “best practice” on
>     how to configure things.
> 
>     So, for pcbnew search stacks are already legacy.
>     That is, as a starting point for pcbnew I have the fp-lib-table file
>     which lives in the preferences folder (which is
>     ~/Library/Preferences/kicad on OSX). 
>     Via the fp-lib-table I reference all my modules/footprints - I can
>     use absolute paths, environment variables, etc. as I like.
>     The 3D-models referenced by modules/footprints are also always
>     absolute paths but may contain environment variables.
>     Correct?
> 
> 
> Not quite correct. For 3D models the code will use the environment
> variable KISYS3DMOD in place of the legacy SOMEDIR/modules/packages3d -
> this is the only environment var which the code will check and this is
> hard-coded. If there is no environment var set then the code attempts to
> look in the legacy default paths; I don't have KiCad source installed on
> the computer I'm sitting at so I can't check what that path is of OSX.
> If you attach a model which is not in the default 3d model search path,
> then the full path will be recorded. If the model is in the default
> search path then a truncated path is recorded, which I think is bad
> behavior but this was the legacy behavior and it will persist until
> someone finds time to fix things.
>  
> 
>     How am I supposed to configure libraries for eeschema?
> 
> 
> Not sure - it's been a long time since I looked at that part of the code.

Eeschema will use the path search stack to find component libraries.
Eeschema will append /library to each valid path in the search stack so
as long as your base path is in the search stack and your component
libraries are in base_search_path/library then they will be found.  Of
course you can also configure the library paths in your project.

> 
>  
> 
>     I currently seem to have two working options:
>     (1) Use default kicad.pro <http://kicad.pro> to point it to your
>     library path and your libraries. E.g.:
>     [eeschema]
>     LibDir=~/…somewhere…/Library
> 
>     [eeschema/libraries]
>     LibName1=AtmelCorporation
>     The default kicad.pro <http://kicad.pro> seems to be found in
>       …/templates
>     with “…” again being one of the search stack paths (which in
>     contrast to pcbnew/fp-lib-table is at least on OSX not the
>     preferences path).
>     (2) Just put your libraries to
>       …/library
> 
>     In general, is there anywhere a list of “supplemental” files
>     (libraries, 3d-models, footprints, various kinds of templates,
>     scripts, xml-Files for BOM, etc.) and where they should be located?

base_search_path/share/kicad/library => Schematic component libraries.
base_search_path/share/kicad/module => Pcb footprint libraries.
base_search_path/share/kicad/module/packages3d => 3D models libraries.
base_search_path/share/kicad/template => project templates.

> 
> 
> No. In principle some global configuration files should be used to
> enumerate search paths in a manner similar to the footprint management
> code, but when that will happen is anyone's guess. At the moment we all
> tolerate the current nuisances of the legacy behavior.
> 
> - Cirilo
>  
> 
> 
>     Regards,
>     Bernhard
> 
>     On 03.11.2014, at 00:33, Wayne Stambaugh <stambaughw@xxxxxxxxxxx
>     <mailto:stambaughw@xxxxxxxxxxx>> wrote:
> 
>>     On 11/2/2014 4:25 PM, Bernhard Stegmaier wrote:
>>>     Hi all,
>>>
>>>     I am still trying to find out/optimize where what is being loaded
>>>     from (especially for OS X).
>>>     In common/kiface_i.cpp the global search stack for pcbnew is
>>>     initialized with
>>>      …/modules
>>>      …/modules/packages3d
>>>     with “…” being some OS specific base paths.
>>>
>>>     The global search stack seems to be used for eeschema libraries
>>>     and I also found a piece of code which made me think that it is
>>>     also used for loading 3D-models.
>>>     However, fp-lib-table doesn’t seem to use it but only the path
>>>     given for a library in fp-lib-table itself (maybe with some
>>>     environment variables).
>>>
>>>     Am I missing something or does loading of modules currently
>>>     ignore the global search paths?
>>
>>     You are not missing anything.  This is by design.  The
>>     fp-lib-table uses
>>     fully qualified path either by definition or using environment
>>     variables.  The path search stack has been a thorn in our side since
>>     I've been with the project.  The goal is eventually define the
>>     paths by
>>     using kicad config settings and/or environment variables so the search
>>     path code goes away.
>>
>>>     If I have something like
>>>        (lib (name Conn)(type Legacy)(uri Connectors.mod)(options
>>>     "")(descr "Connectors"))
>>>     in my fp-lib-table and Connectors.mod is in my
>>>     …/modules
>>>     folder it doesn’t get loaded...
>>
>>     Connectors.mod will not get loaded unless it's located in the current
>>     working directory.  You should define a full path or use an
>>     environment
>>     variable as the path to Connectors.mod.  Environment variable are
>>     platform independent.  Fully qualified paths are not.  Use the
>>     environment variable KISYSMOD to define the default footprint library
>>     path and add (uri ${KISYSMOD}/Connectors.mod) to fp-lib-table.  Better
>>     yet, use the github plugin.  There is already an fp-lib-table file
>>     populated for github in the kicad library project on github.
>>
>>
>>>
>>>
>>>     Regards,
>>>     Bernhard
>>>     _______________________________________________
>>>     Mailing list: https://launchpad.net/~kicad-developers
>>>     Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>>     Unsubscribe : https://launchpad.net/~kicad-developers
>>>     More help   : https://help.launchpad.net/ListHelp
>>>
>>
>>
>>
>>     _______________________________________________
>>     Mailing list: https://launchpad.net/~kicad-developers
>>     Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>     Unsubscribe : https://launchpad.net/~kicad-developers
>>     More help   : https://help.launchpad.net/ListHelp
> 
> 
>     _______________________________________________
>     Mailing list: https://launchpad.net/~kicad-developers
>     Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     Unsubscribe : https://launchpad.net/~kicad-developers
>     More help   : https://help.launchpad.net/ListHelp
> 
> 




Follow ups

References