On Wed, Oct 16, 2019 at 8:50 PM David Wright <lily...@lionunicorn.co.uk>
wrote:
> On Wed 16 Oct 2019 at 00:17:06 (-0400), Freeman Gilmore wrote:
> > On Tue, Oct 15, 2019 at 7:16 PM Urs Liska <li...@openlilylib.org> wrote:
> >
> > > Simon has already given a very clear answer, but I want to add some
> more
> > > examples that may help you understanding the context and a part of your
> > > question that may not be fully covered yet.
> > >
> > The following is making it clear, i have 5 questions below.
> > >
> > > Say you have a document
> > >   C:\myscores\alleluja.ly
> > > which contains a line
> > >   \include "my-config.ily"
> > > (note that the file extensions are not significant but only
> *conventions*,
> > > .ly typically indication LilyPond documents and .ily *i*nclude ly
> files)
> > >
> > > If you navigate to C:\myscores and compile this file using
> > >   lilypond-windows.exe alleluja.ly
> > > LilyPond will look for the file my-config.ily first in the directory of
> > > the main file (C:\myscores) and then in some directories in the
> LilyPond
> > > installation itself.
> > >
> > > However, if you compile using
> > >   lilypond-windows.exe -I C:\my-lilypond-library alleluja.ly
> > > then LilyPond will *additionally* look for the include file in the
> > > directory C:\my-lilypond-library.
> > >
> > > If the \include statement references not simply a file but a relative
> path
> > > then the include file will be looked for in all item of the search
> path:
> > >   \include "lyriclib/hymns.ily"
> > > would then find files like
> > >   C:\myscores\lyriclib\hymns.ily
> > >   C.\my-lilypons-library\lyriclib\hymns.ily
>        ↑ is a colon
>
Bad questions i missed "all item of the search path".
If I left off the the relative path lyriclib would Lilypond still fined,
\include "hamns" ?

>
> > 1, Why would you do this?
>
> Were C:\my-lilypond-library to contain a dozen subdirectories
> (lyriclib, noteslib, tablib, chordlib, say), it would be impractical
> to specify them all in the command line. In my posted example, I had
> three: the parent, margins and part-midis.
>
> The penalty is having to specify the subdirectory with the filename,
> as in \include lyriclib/hymns.ily above. For each include directive,
> the -I directories are searched from left to right until a filename
> matches.
>
> > 2, What stops you from searching the whole file system?
>
> In theory, nothing. In practice, the command line would probably be
> too long as you'd have to specify every "upper-level" directory with
> an -I switch. (By upper-level, I mean any directory above the path
> in the \include directive itself.)
>
> Note that -I C:\ does not imply that all the top-level directories in
> C:\ are searched: there's no recursion here. Each filename that is
> included consists entirely of one (optional) -I value concatentated
> with one \include value; nothing in between.
>
> > >   This is how openLilyLib is loaded. If you have oll-core stored so
> that
> > >   C:\openLilyLib\oll-core\package.ily
> > >   is a file and call LilyPond with
> > >   lilypond-windows.exe -I C:\openLilyLib alleluja.ly
> > >   then
> > >   \include "oll-core/package.ily"
> > >   will find the file because the search path C:\openLilyLib plus the
> > > relative path given in the \include statement "oll-
> > >   core/package.ily" will be joined to
> C:\openLilyLib\oll-core\package.ily
>

Using the include: \include “C:/openLilyLib/oll-core/package.ily” in the
file alleluja,ly
and running lilypond-windows.exe alleluja.le, will it work?

>
> > 1, Using the include: \include “C:\openLilyLib\oll-core\package.ily” in
> > alleluja.ly .   Would lilypond-    windows.exe  alleluja.ly work?
> >
> > 2, If not, why?
>
> You need to distinguish directory names being handed to -I in the
> command line from paths being handed to \include directives.
>
> . For -I, use the conventions of your operating system (though I don't
>   know how Windows deals with the "drive" names thenselves, as linux
>   doesn't work that way; they *should* work).
>
> . For \include, use the forward slash (/), and make sure too that you
>   don't use 66/99 double quotation marks instead of ASCII ones. So
>     \include “C:\openLilyLib\oll-core\package.ily”
>   becomes
>     \include "C:/openLilyLib/oll-core/package.ily"
>
> > 3,Before you stated “Then you need to add C:\openLilyLib to LilyPond’s
> > search path”; is this what you mean:   lilypond-windows.exe -I
> > C:\openLilyLib alleluja.ly
>
> Assuming this line is being split by your email client's attempt to
> generate a text representation of your HTML postings, then it should
> be correct.
>
>     lilypond-windows.exe -I C:\openLilyLib alleluja.ly
>
> So C:\openLilyLib should be where you installed whatever you downloaded.
>


> You might have seen this already:

Yes. But thanks

> https://github.com/openlilylib/oll-core/wiki
>
> > > On Tue 15 Oct 2019 at 11:16:43 (-0400), Freeman Gilmore wrote:
> > > > Now if I use the include with the path  C:\openLilyLib , dose
> Lilypond
> > > > search all the directories and subdirectories of openLilyLib or do i
> need
> > > > an include  ...\directory\file for each file I use?
>
> The latter: only the directory given with -I is searched, as noted above.
>
> Thank you, ƒg

> Cheers,
> David.
>
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to