• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Library Manager: .cdsenv / .cdsinit settings not taking...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 23756
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Library Manager: .cdsenv / .cdsinit settings not taking effect

dontpanic
dontpanic over 7 years ago

Hi! I am trying to enforce some Library Manager settings, but somehow they are not taking effect. For instance, I have added the following lines in my setup files:

-In my .cdsinit:
envSetVal("cdsLibManager.main" "showFilesOn" 'boolean t)
envSetVal("cdsLibManager.main" "showCategoriesOn" 'boolean t)
envSetVal("cdsLibManager.copy" "addToCategoryOn" 'boolean t)
envSetVal("cdsLibManager.copy" "addToCategoryName" 'string "devel")

-In my .cdsenv:
cdsLibManager.main    showFilesOn            boolean        nil
cdsLibManager.main    showCategoriesOn    boolean        t
cdsLibManager.copy    addToCategoryOn        boolean        t
cdsLibManager.copy    addToCategoryName    string        "devel"

...but the is no change in the Library Manager behavior (things stay as default: no categories nor files are shown, and the copy dialog has the "add to category" field disabled and empty).

What can be going wrong?

Thanks and regards, Jorge.

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    Hi Jorge,

    First of all, the .cdsinit values will have no effect - the library manager is a separate process and doesn't read the .cdsinit file.

    For the .cdsenv, I suspect it's where the file is located. By default the .cdsenv in your working directory is not read (unlike .cdsinit). If I put those lines into my ~/.cdsenv (changing the showFilesOn to t - I assume you meant it to be t from your description), then the library manager does indeed show categories, show files, and have the add to category checked with a name of "devel".

    You can get the .cdsenv to be read from the working directory in several ways:

    1. setenv CDS_LOAD_ENV addCWD    (note, can be CWD, CWDElseHome too - search in cdnshelp for "addCWD" to get a description of the different values)
    2. setenv CDS_LOAD_ENV CSF
    3. Create a csfLookupConfig and add "INCLUDE .cdsenv" in that file

    Options 2 and 3 use the "setup.loc" (or Cadence Search File) mechanism to locate the .cdsenv file.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • dontpanic
    dontpanic over 7 years ago in reply to Andrew Beckett

    Thanks for the prompt reply, Andrew! My method for loading the environment settings was to load them explicitly from the project .cdsinit using the command:

    envLoadFile("path/to/my/cdsenv_definitions_file")

    I assumed this worked fine as during startup I do see in the CIW messages like:

    loading vars from path/to/my/cdsenv_definitions_file for tool cdsLibManager

    and I also get the intended variable values using envGetVal(). But the settings themselves are not enforced, neither in the Lib manager that I load automatically at startup from my .cdsinit, nor in any instance that I manually open from the CIW after startup.

    HOWEVER, creating a ~/.cdsenv with these definitions totally worked!!!

    The reason I load my cdsenv variables from the .cdsinit is because I never understood the method cadence uses to determine which .cdsenv to read and when it stops searching. Thus, since normally I need to deal with 2 customization files (my own and the ones inherited the project at hand), I took the solomonic decision of load both from my project's .cdsinit, but now I see that this approach is actually flawed.

    From all the possibilities that seem available, which one would you recommend for loading 2 different files with cdsenv definitions? Is there maybe a way to load one cdsenv from another?

    Thank you again for your help!

    Regards, Jorge.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to dontpanic

    Hi Jorge,

    Most settings can be done via the .cdsinit, with a small number of exceptions. It's really just cdsLibManager, cdsLibEditor and a handful of others (e.g. ui enableMenuShortcuts because that has to be read before the CIW starts) that need to be in a .cdsenv.

    There's no inclusion method for .cdsenv - however, it does (in general) read multiple .cdsenv with the most specific overriding the previous one. So for example, with CDS_LOAD_ENV set to addCWD it reads the home dir and then the working dir - so that allows you to have more specific settings in the working dir. With the CSF approaches, it reads them in the reverse order of the setup.loc - i.e. if you look at "cdswhich -all .cdsenv" it will read them in reverse order of that, so the one at the top will override the others.

    Alternatively for the cdsLibManager settings, you can use envSetVal() calls in a cdsLibMgr.il file - that's the startup SKILL file for the library manager.

    So in general it's OK to use envSetVal in the .cdsinit - that's what I normally do - and then just use the .cdsenv for the few cases that need it.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to dontpanic

    Hi Jorge,

    Most settings can be done via the .cdsinit, with a small number of exceptions. It's really just cdsLibManager, cdsLibEditor and a handful of others (e.g. ui enableMenuShortcuts because that has to be read before the CIW starts) that need to be in a .cdsenv.

    There's no inclusion method for .cdsenv - however, it does (in general) read multiple .cdsenv with the most specific overriding the previous one. So for example, with CDS_LOAD_ENV set to addCWD it reads the home dir and then the working dir - so that allows you to have more specific settings in the working dir. With the CSF approaches, it reads them in the reverse order of the setup.loc - i.e. if you look at "cdswhich -all .cdsenv" it will read them in reverse order of that, so the one at the top will override the others.

    Alternatively for the cdsLibManager settings, you can use envSetVal() calls in a cdsLibMgr.il file - that's the startup SKILL file for the library manager.

    So in general it's OK to use envSetVal in the .cdsinit - that's what I normally do - and then just use the .cdsenv for the few cases that need it.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Children
  • dontpanic
    dontpanic over 7 years ago in reply to Andrew Beckett

    Thanks Andrew for the additional insight, loading my lib manager definitions from .cdsLibMgr.il totally worked!! Smiley

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information