refactor include system

This commit is contained in:
tux
2025-08-18 09:41:52 +02:00
parent f824b23311
commit ca129eec79
29 changed files with 26 additions and 34 deletions

View File

@@ -0,0 +1,49 @@
#(define include_dir_not_added? (if (defined? 'include_dir_not_added?) include_dir_not_added? #t))
#(if include_dir_not_added?
(let* ((common-include-dir (dirname (dirname (dirname (current-filename))))))
(ly:parser-append-to-include-path common-include-dir)
(set! include_dir_not_added? #f)))
#(define noStandaloneOutput (if (defined? 'noStandaloneOutput) noStandaloneOutput #f))
#(define windows? (string-prefix-ci? "windows" (utsname:sysname (uname))))
#(if (defined? 'LAYOUT) #f
(let ((scm-load (lambda (filename) (load (
string-append
; on windows the detection of absolute pathes is broken (cause they start with a drive letter and not with a /)
; so we have to use relative pathes for load. That works in frescobaldi, but not if you call lilypond from command line,
; with a relative path to the .ly file, so we use absolute pathes on posix systems, where it works.
(if windows?
""
(string-append (dirname (current-filename)) file-name-separator-string))
"scm" file-name-separator-string filename
)))))
(scm-load "json_parser.scm")
(scm-load "resolve_inherits.scm")
(scm-load "yaml_parser.scm")))
#(define AUTHOR_DATA (if (defined? 'AUTHOR_DATA) AUTHOR_DATA (parse-yml-file "../../lilypond-song-includes/data/authors.yml")))
#(define SONG_DATA (if (defined? 'SONG_DATA) SONG_DATA (parse-yml-file "../../lilypond-song-includes/data/songs.yml")))
\include "basic_format_and_style_settings.ily"
\include "eps_file_from_song_dir.ily"
\include "title_with_category_images.ily"
\include "chord_settings.ily"
\include "transposition.ily"
\include "verses_with_chords.ily"
\include "arrows_in_scores.ily"
\include "swing_style.ily"
\include "inline_score.ily"
\include "custom_indentation.ily"
\include "include_from_song.ily"
% reset important variables
LAYOUT = \layout { \generalLayout }
HEADER = {}
MUSIC = {}
TEXT = \markuplist {}
TEXT_PAGES = #f
verseChords = {}
firstVoice = {}
global = {}