diff --git a/Resources/Info.plist b/Resources/Info.plist
index 2f134c1..527f9bc 100644
--- a/Resources/Info.plist
+++ b/Resources/Info.plist
@@ -28,6 +28,20 @@
NSPersistentStoreTypeKey
XML
+
+ CFBundleTypeExtensions
+
+ ly
+
+ CFBundleTypeName
+ Lilypond
+ CFBundleTypeRole
+ None
+ LSTypeIsPackage
+
+ NSPersistentStoreTypeKey
+ XML
+
CFBundleExecutable
Vocalese
diff --git a/Resources/Templates/default.lyt b/Resources/Templates/default.lyt
new file mode 100644
index 0000000..bc32e0d
--- /dev/null
+++ b/Resources/Templates/default.lyt
@@ -0,0 +1,33 @@
+\version "1.8.0"
+
+\header {
+ title = "<{TITLE}>"
+ poet = "<{POET}>"
+ composer= "<{COMPOSER}>"
+ arranger = "<{ARRANGER}>"
+ tagline = #(string-append "Vocalese <{VLVERSION}> / Lilypond" (lilypond-version))
+}
+
+\paper {
+ #(set-paper-size "<{PAPERSIZE}>")
+ indent = 0.0\cm
+ pagenumber = no
+ page-top-space = #.1
+ <{FORMATTING}>
+}
+
+#(set-global-staff-size <{STAFFSIZE}>)
+
+\score {
+ <<
+ \context ChordNames \chords { \override ChordName #'font-size = #6
+ <{CHORDS}>
+ }
+ \context Voice = "mel" {
+ \time <{TIME}>
+ \key <{KEY}>
+ <{NOTES}>
+ }
+ \lyricsto "mel" \new Lyrics { <{LYRICS}> }
+ >>
+}
diff --git a/Sources/VLDocument.h b/Sources/VLDocument.h
index 5f2077f..18584e6 100644
--- a/Sources/VLDocument.h
+++ b/Sources/VLDocument.h
@@ -26,6 +26,7 @@
{
VLSong * song;
VLEditable *editTarget;
+ NSString * lilypondTemplate;
}
- (VLSong *) song;
diff --git a/Sources/VLDocument.mm b/Sources/VLDocument.mm
index 79c6723..ef2314a 100644
--- a/Sources/VLDocument.mm
+++ b/Sources/VLDocument.mm
@@ -7,6 +7,8 @@
//
#import "VLDocument.h"
+#import "VLXMLDocument.h"
+#import "VLLilypondDocument.h"
@implementation VLEditable
@@ -48,8 +50,9 @@
// Add your subclass-specific initialization here.
// If an error occurs here, send a [self release] message and return nil.
- song = new VLSong;
- editTarget = nil;
+ song = new VLSong;
+ editTarget = nil;
+ lilypondTemplate = @"default";
}
return self;
}
@@ -128,4 +131,22 @@
[controller setShouldCloseDocument:YES];
}
+- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
+{
+ if ([typeName isEqual:@"Song"])
+ return [self XMLDataWithError:outError];
+ else if ([typeName isEqual:@"Lilypond"])
+ return [self lilypondDataWithError:outError];
+ else
+ return nil;
+}
+
+- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError
+{
+ if ([typeName isEqual:@"Song"])
+ return [self readFromXMLData:data error:outError];
+ else
+ return NO;
+}
+
@end
diff --git a/Sources/VLLilypondDocument.h b/Sources/VLLilypondDocument.h
new file mode 100644
index 0000000..2afa1e7
--- /dev/null
+++ b/Sources/VLLilypondDocument.h
@@ -0,0 +1,16 @@
+//
+// VLLilypondDocument.h
+// Vocalese
+//
+// Created by Matthias Neeracher on 10/20/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import
+#import "VLDocument.h"
+
+@interface VLDocument (Lilypond)
+
+- (NSData *)lilypondDataWithError:(NSError **)outError;
+
+@end
diff --git a/Sources/VLLilypondDocument.mm b/Sources/VLLilypondDocument.mm
new file mode 100644
index 0000000..a9212f1
--- /dev/null
+++ b/Sources/VLLilypondDocument.mm
@@ -0,0 +1,102 @@
+//
+// VLLilypondDocument.mm
+// Vocalese
+//
+// Created by Matthias Neeracher on 10/20/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "VLLilypondDocument.h"
+
+@interface NSMutableString (VLLilypond)
+
+- (void) substituteMacro:(NSString *)macro withValue:(NSString *)value;
+- (void) purgeMacros;
+
+@end
+
+@implementation NSMutableString (VLLilypond)
+
+- (void) substituteMacro:(NSString *)m withValue:(NSString *)value
+{
+ NSString * macro = [NSString stringWithFormat:@"<{%@}>", m];
+ NSRange range =
+ [value rangeOfCharacterFromSet:
+ [NSCharacterSet characterSetWithCharactersInString:@"\n"]];
+ BOOL hasEOL= range.location != NSNotFound;
+
+ for (range = [self rangeOfString:macro];
+ range.location != NSNotFound;
+ range = [self rangeOfString:macro]
+ ) {
+ if (hasEOL) {
+ //
+ // Multi line substitution, figure out a prefix
+ //
+ NSRange prefix, suffix;
+ NSRange line = [self lineRangeForRange:range];
+ suffix.location = range.location+range.length;
+ suffix.length = line.location+line.length-suffix.location;
+ prefix.location = line.location;
+ prefix.length = range.location-prefix.location;
+ NSString * pfxStr = [self substringWithRange:prefix];
+ NSString * nonBlank =
+ [pfxStr stringByTrimmingCharactersInSet:
+ [NSCharacterSet whitespaceCharacterSet]];
+ NSString * sfxStr =
+ [[self substringWithRange:suffix]
+ stringByTrimmingCharactersInSet:
+ [NSCharacterSet whitespaceCharacterSet]];
+ if ([nonBlank length]) {
+ NSRange nb = [pfxStr rangeOfString:nonBlank];
+ prefix.length = nb.location - prefix.location;
+ pfxStr =
+ [[self substringWithRange:prefix]
+ stringByAppendingString:@" "];
+ sfxStr = [NSString stringWithFormat:@"\n%@", pfxStr];
+ } else {
+ range = line;
+ }
+ NSArray * lines = [value componentsSeparatedByString:@"\n"];
+ value =
+ [NSString stringWithFormat:@"%@%@%@", pfxStr,
+ [lines componentsJoinedByString:
+ [@"\n" stringByAppendingString:pfxStr]],
+ sfxStr];
+ }
+ [self replaceCharactersInRange:range withString:value];
+ }
+}
+
+- (void) purgeMacros
+{
+ for (NSRange range = [self rangeOfString:@"<{"];
+ range.location != NSNotFound;
+ range = [self rangeOfString:@"<{"]
+ )
+ [self replaceCharactersInRange:[self lineRangeForRange:range]
+ withString: @""];
+}
+
+@end
+
+@implementation VLDocument (Lilypond)
+
+- (NSData *)lilypondDataWithError:(NSError **)outError
+{
+ NSBundle * bndl = [NSBundle mainBundle];
+ NSString * tmpl =
+ [bndl pathForResource:lilypondTemplate
+ ofType:@"lyt" inDirectory:@"Templates"];
+ NSStringEncoding enc = NSUTF8StringEncoding;
+ NSError * err;
+ NSMutableString * ly =
+ [[NSString stringWithContentsOfFile:tmpl encoding:enc error:&err]
+ mutableCopy];
+ [ly substituteMacro:@"VLVERSION" withValue:
+ [bndl objectForInfoDictionaryKey:@"CFBundleVersion"]];
+ [ly purgeMacros];
+ return [ly dataUsingEncoding:enc];
+}
+
+@end
diff --git a/Sources/VLXMLDocument.h b/Sources/VLXMLDocument.h
index 8a45051..12a59c1 100644
--- a/Sources/VLXMLDocument.h
+++ b/Sources/VLXMLDocument.h
@@ -11,7 +11,7 @@
@interface VLDocument (XML)
-- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError;
-- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError;
+- (NSData *)XMLDataWithError:(NSError **)outError;
+- (BOOL)readFromXMLData:(NSData *)data error:(NSError **)outError;
@end
diff --git a/Sources/VLXMLDocument.mm b/Sources/VLXMLDocument.mm
index 12b4d25..2239b3d 100644
--- a/Sources/VLXMLDocument.mm
+++ b/Sources/VLXMLDocument.mm
@@ -194,7 +194,7 @@ const char * sSteps = "C DbD EbE F GbG AbA BbB ";
}
}
-- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
+- (NSData *)XMLDataWithError:(NSError **)outError
{
NSXMLElement * partList = [NSXMLNode elementWithName:@"part-list"];
[partList addChild: [self scorePartWithID:@"HARM" name:@"Chords"]];
@@ -359,7 +359,7 @@ int8_t sStepToPitch[] = {
}
}
-- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError
+- (BOOL)readFromXMLData:(NSData *)data error:(NSError **)outError
{
NSXMLDocument * doc = [[NSXMLDocument alloc] initWithData:data
options:0
diff --git a/Tests/TVLLilypond.mm b/Tests/TVLLilypond.mm
new file mode 100644
index 0000000..f3bafbc
--- /dev/null
+++ b/Tests/TVLLilypond.mm
@@ -0,0 +1,27 @@
+/*
+ * TVLLilypond.mm
+ * Vocalese
+ *
+ * Created by Matthias Neeracher on 12/19/05.
+ * Copyright 2006 __MyCompanyName__. All rights reserved.
+ *
+ */
+
+#include "VLModel.h"
+#include "VLDocument.h"
+
+int main(int, char *const argv[])
+{
+ NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+ VLDocument * doc = [[VLDocument alloc] init];
+ NSString * file = [NSString stringWithUTF8String:argv[1]];
+ NSError * err;
+ [doc readFromURL:[NSURL fileURLWithPath:file] ofType:@"Song" error:&err];
+ [doc writeToURL:[NSURL fileURLWithPath:
+ [[file stringByDeletingPathExtension]
+ stringByAppendingPathExtension:@"ly"]]
+ ofType:@"Lilypond" error:&err];
+ [pool release];
+
+ exit(0);
+}
diff --git a/Vocalese.xcodeproj/project.pbxproj b/Vocalese.xcodeproj/project.pbxproj
index 49571b4..9a484bf 100644
--- a/Vocalese.xcodeproj/project.pbxproj
+++ b/Vocalese.xcodeproj/project.pbxproj
@@ -21,6 +21,7 @@
952CBBB5095FD34F00434E43 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 952CBBB3095FD34F00434E43 /* AudioUnit.framework */; };
952CBBB6095FD37300434E43 /* VLModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 955E58E4095658AB0045FDA5 /* VLModel.cpp */; };
952DCD78096BBB11001C2316 /* VLSheetViewChords.mm in Sources */ = {isa = PBXBuildFile; fileRef = 952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */; };
+ 953722670AE9F0E100B6E483 /* VLLilypondDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = 953722660AE9F0E100B6E483 /* VLLilypondDocument.mm */; };
95498DBD0AE3812F006B5F81 /* VLSoundSched.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95498DBC0AE3812F006B5F81 /* VLSoundSched.mm */; };
955E58E5095658AB0045FDA5 /* VLModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 955E58E4095658AB0045FDA5 /* VLModel.cpp */; };
955E59610957C1400045FDA5 /* TVLChord.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 955E59600957C1400045FDA5 /* TVLChord.cpp */; };
@@ -34,6 +35,13 @@
95B3E1A70960E58B000E9C0D /* Music in Resources */ = {isa = PBXBuildFile; fileRef = 95B3E1980960E58B000E9C0D /* Music */; };
95B66658096BCA1F00FE18C9 /* VLSheetViewNotes.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95B66657096BCA1F00FE18C9 /* VLSheetViewNotes.mm */; };
95BDA15909540BF1009F9D65 /* VLSheetView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; };
+ 95E04DA70AEB486E006F30A0 /* TVLLilypond.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95E04DA60AEB486E006F30A0 /* TVLLilypond.mm */; };
+ 95E04DA80AEB4878006F30A0 /* VLDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* VLDocument.mm */; };
+ 95E04DA90AEB487A006F30A0 /* VLLilypondDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = 953722660AE9F0E100B6E483 /* VLLilypondDocument.mm */; };
+ 95E04DAA0AEB487E006F30A0 /* VLModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 955E58E4095658AB0045FDA5 /* VLModel.cpp */; };
+ 95E04DAB0AEB4886006F30A0 /* VLXMLDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95F5F50E0ADCC433003980B2 /* VLXMLDocument.mm */; };
+ 95E04DC70AEB4B57006F30A0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; };
+ 95E04DCE0AEB4D9B006F30A0 /* Templates in Resources */ = {isa = PBXBuildFile; fileRef = 95E04DCA0AEB4D9B006F30A0 /* Templates */; };
95F5F50F0ADCC433003980B2 /* VLXMLDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95F5F50E0ADCC433003980B2 /* VLXMLDocument.mm */; };
95F5F5340ADCCFBB003980B2 /* DTD in Resources */ = {isa = PBXBuildFile; fileRef = 95F5F51E0ADCCFBB003980B2 /* DTD */; };
/* End PBXBuildFile section */
@@ -61,6 +69,8 @@
952CBBB3095FD34F00434E43 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = ""; };
952DCD76096BBB11001C2316 /* VLSheetViewChords.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLSheetViewChords.h; path = Sources/VLSheetViewChords.h; sourceTree = ""; };
952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = VLSheetViewChords.mm; path = Sources/VLSheetViewChords.mm; sourceTree = ""; };
+ 953722650AE9F0E100B6E483 /* VLLilypondDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLLilypondDocument.h; path = Sources/VLLilypondDocument.h; sourceTree = ""; };
+ 953722660AE9F0E100B6E483 /* VLLilypondDocument.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = VLLilypondDocument.mm; path = Sources/VLLilypondDocument.mm; sourceTree = ""; };
95498DBB0AE3812F006B5F81 /* VLSoundSched.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = VLSoundSched.h; path = Sources/VLSoundSched.h; sourceTree = ""; };
95498DBC0AE3812F006B5F81 /* VLSoundSched.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; name = VLSoundSched.mm; path = Sources/VLSoundSched.mm; sourceTree = ""; };
955E58E3095658AB0045FDA5 /* VLModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLModel.h; path = Sources/VLModel.h; sourceTree = ""; };
@@ -77,6 +87,9 @@
95B66657096BCA1F00FE18C9 /* VLSheetViewNotes.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = VLSheetViewNotes.mm; path = Sources/VLSheetViewNotes.mm; sourceTree = ""; };
95BDA15709540BF1009F9D65 /* VLSheetView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLSheetView.h; path = Sources/VLSheetView.h; sourceTree = ""; };
95BDA15809540BF1009F9D65 /* VLSheetView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = VLSheetView.mm; path = Sources/VLSheetView.mm; sourceTree = ""; };
+ 95E04DA00AEB4837006F30A0 /* TVLLilypond */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TVLLilypond; sourceTree = BUILT_PRODUCTS_DIR; };
+ 95E04DA60AEB486E006F30A0 /* TVLLilypond.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; name = TVLLilypond.mm; path = Tests/TVLLilypond.mm; sourceTree = ""; };
+ 95E04DCA0AEB4D9B006F30A0 /* Templates */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Templates; path = Resources/Templates; sourceTree = ""; };
95F5F50D0ADCC433003980B2 /* VLXMLDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLXMLDocument.h; path = Sources/VLXMLDocument.h; sourceTree = ""; };
95F5F50E0ADCC433003980B2 /* VLXMLDocument.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = VLXMLDocument.mm; path = Sources/VLXMLDocument.mm; sourceTree = ""; };
95F5F51E0ADCCFBB003980B2 /* DTD */ = {isa = PBXFileReference; lastKnownFileType = folder; name = DTD; path = Resources/DTD; sourceTree = ""; };
@@ -116,6 +129,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 95E04D9E0AEB4837006F30A0 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 95E04DC70AEB4B57006F30A0 /* Cocoa.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@@ -146,6 +167,7 @@
955E595C0957C0FC0045FDA5 /* TVLChord */,
952CBB98095FD19D00434E43 /* TVLSoundOut */,
959408A0096922CA007CCCF8 /* TVLEdit */,
+ 95E04DA00AEB4837006F30A0 /* TVLLilypond */,
);
name = Products;
sourceTree = "";
@@ -183,6 +205,8 @@
95B66657096BCA1F00FE18C9 /* VLSheetViewNotes.mm */,
95F5F50D0ADCC433003980B2 /* VLXMLDocument.h */,
95F5F50E0ADCC433003980B2 /* VLXMLDocument.mm */,
+ 953722650AE9F0E100B6E483 /* VLLilypondDocument.h */,
+ 953722660AE9F0E100B6E483 /* VLLilypondDocument.mm */,
);
name = Classes;
sourceTree = "";
@@ -199,6 +223,7 @@
2A37F4B8FDCFA73011CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
+ 95E04DCA0AEB4D9B006F30A0 /* Templates */,
9593E4E60AE0ED1F00035816 /* vlsong.icns */,
9593E4E70AE0ED1F00035816 /* vocalese.icns */,
95F5F51E0ADCCFBB003980B2 /* DTD */,
@@ -224,6 +249,7 @@
955E59560957C0C50045FDA5 /* Tests */ = {
isa = PBXGroup;
children = (
+ 95E04DA60AEB486E006F30A0 /* TVLLilypond.mm */,
959408AC096922EA007CCCF8 /* TVLEdit.cpp */,
952CBB9E095FD1D900434E43 /* TVLSoundOut.cpp */,
955E59600957C1400045FDA5 /* TVLChord.cpp */,
@@ -300,6 +326,22 @@
productReference = 959408A0096922CA007CCCF8 /* TVLEdit */;
productType = "com.apple.product-type.tool";
};
+ 95E04D9F0AEB4837006F30A0 /* TVLLilypond */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 95E04DA20AEB485A006F30A0 /* Build configuration list for PBXNativeTarget "TVLLilypond" */;
+ buildPhases = (
+ 95E04D9D0AEB4837006F30A0 /* Sources */,
+ 95E04D9E0AEB4837006F30A0 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = TVLLilypond;
+ productName = TVLLilypond;
+ productReference = 95E04DA00AEB4837006F30A0 /* TVLLilypond */;
+ productType = "com.apple.product-type.tool";
+ };
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -317,6 +359,7 @@
955E595B0957C0FC0045FDA5 /* TVLChord */,
952CBB97095FD19D00434E43 /* TVLSoundOut */,
9594089F096922CA007CCCF8 /* TVLEdit */,
+ 95E04D9F0AEB4837006F30A0 /* TVLLilypond */,
);
};
/* End PBXProject section */
@@ -334,6 +377,7 @@
95F5F5340ADCCFBB003980B2 /* DTD in Resources */,
9593E4E80AE0ED1F00035816 /* vlsong.icns in Resources */,
9593E4E90AE0ED1F00035816 /* vocalese.icns in Resources */,
+ 95E04DCE0AEB4D9B006F30A0 /* Templates in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -353,6 +397,7 @@
95B66658096BCA1F00FE18C9 /* VLSheetViewNotes.mm in Sources */,
95F5F50F0ADCC433003980B2 /* VLXMLDocument.mm in Sources */,
95498DBD0AE3812F006B5F81 /* VLSoundSched.mm in Sources */,
+ 953722670AE9F0E100B6E483 /* VLLilypondDocument.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -384,6 +429,18 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 95E04D9D0AEB4837006F30A0 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 95E04DA70AEB486E006F30A0 /* TVLLilypond.mm in Sources */,
+ 95E04DA80AEB4878006F30A0 /* VLDocument.mm in Sources */,
+ 95E04DA90AEB487A006F30A0 /* VLLilypondDocument.mm in Sources */,
+ 95E04DAA0AEB487E006F30A0 /* VLModel.cpp in Sources */,
+ 95E04DAB0AEB4886006F30A0 /* VLXMLDocument.mm in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
@@ -699,6 +756,73 @@
};
name = Default;
};
+ 95E04DA30AEB485A006F30A0 /* Development */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ INSTALL_PATH = "$(HOME)/bin";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Foundation,
+ "-framework",
+ AppKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = TVLLilypond;
+ ZERO_LINK = YES;
+ };
+ name = Development;
+ };
+ 95E04DA40AEB485A006F30A0 /* Deployment */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = Sources/Vocalese_Prefix.pch;
+ INSTALL_PATH = "$(HOME)/bin";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Foundation,
+ "-framework",
+ AppKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = TVLLilypond;
+ ZERO_LINK = NO;
+ };
+ name = Deployment;
+ };
+ 95E04DA50AEB485A006F30A0 /* Default */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = Sources/Vocalese_Prefix.pch;
+ INSTALL_PATH = "$(HOME)/bin";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Foundation,
+ "-framework",
+ AppKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = TVLLilypond;
+ ZERO_LINK = YES;
+ };
+ name = Default;
+ };
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -752,6 +876,16 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Default;
};
+ 95E04DA20AEB485A006F30A0 /* Build configuration list for PBXNativeTarget "TVLLilypond" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 95E04DA30AEB485A006F30A0 /* Development */,
+ 95E04DA40AEB485A006F30A0 /* Deployment */,
+ 95E04DA50AEB485A006F30A0 /* Default */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Default;
+ };
/* End XCConfigurationList section */
};
rootObject = 2A37F4A9FDCFA73011CA2CEA /* Project object */;