From 1726987a2ffab95e9c56b493c7b8c0d27a76bd07 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Mon, 25 Jun 2018 23:01:34 -0400 Subject: [PATCH] Update the build engine to support capturing build errors in Xcode itself. --- a2sudoku.xcodeproj/project.pbxproj | 2 + .../UserInterfaceState.xcuserstate | Bin 32191 -> 32935 bytes a2sudoku/make/errorFilter.sh | 59 ++++++++++++++++++ a2sudoku/make/tail.mk | 6 +- 4 files changed, 64 insertions(+), 3 deletions(-) create mode 100755 a2sudoku/make/errorFilter.sh diff --git a/a2sudoku.xcodeproj/project.pbxproj b/a2sudoku.xcodeproj/project.pbxproj index a19f773..98982ea 100644 --- a/a2sudoku.xcodeproj/project.pbxproj +++ b/a2sudoku.xcodeproj/project.pbxproj @@ -70,6 +70,7 @@ 9D3FF4D220DA05F3006A5F8A /* game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = game.h; sourceTree = ""; }; 9D3FF4D320DA05F3006A5F8A /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; 9D3FF4D420DA05F3006A5F8A /* ui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ui.h; sourceTree = ""; }; + 9D45ABB320E1E3A5008C3F16 /* errorFilter.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = errorFilter.sh; path = make/errorFilter.sh; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -128,6 +129,7 @@ 9D3FF4B020DA05C2006A5F8A /* createDiskImage */, 9D3FF4B220DA05C2006A5F8A /* DevApple.vii */, 9D3FF4B420DA05C2006A5F8A /* dos33_template.dsk */, + 9D45ABB320E1E3A5008C3F16 /* errorFilter.sh */, 9D3FF4B620DA05C2006A5F8A /* head.mk */, 9D3FF4B820DA05C2006A5F8A /* prodos_template.dsk */, 9D3FF4BA20DA05C2006A5F8A /* tail.mk */, diff --git a/a2sudoku.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate b/a2sudoku.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate index 4236e6d36461ff0cc381d37080db8b89857c52c1..102729265b7bf2356cd7523a92f994e50c417ef7 100644 GIT binary patch delta 12986 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%0AaSU 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 Z-G0k{zjdfVkYw98FRSgl{nP&N{{SG^Nx=XB delta 12557 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 diff --git a/a2sudoku/make/errorFilter.sh b/a2sudoku/make/errorFilter.sh new file mode 100755 index 0000000..30259c1 --- /dev/null +++ b/a2sudoku/make/errorFilter.sh @@ -0,0 +1,59 @@ +#!/bin/sh + +PWD=`pwd` + +$* 2> /tmp/errors.$$ +RESULT=$? + +if [ $RESULT -ne 0 ] +then + exec /usr/bin/perl -x $0 $RESULT /tmp/errors.$$ "$PWD" +fi +exit 0 + +#!/usr/bin/perl + +use strict; + +my $result = $ARGV[0]; +my $filename = $ARGV[1]; +my $pwd = $ARGV[2]; + +open(FILE, "<$filename") || die "$0: Unable to open file, $!"; + +my $unresolvedRefError = undef; + +while () { + chomp; + + if (defined $unresolvedRefError) { + if (m/^ ([^(]+)\(([0-9]+)\)/) { + my $file = $1; + my $lineno = $2; + + if (! -f "$pwd/$file") { + $file =~ s/\.s$/.c/; + } + + $_ = "$pwd/$file:$lineno:0: Error: $unresolvedRefError"; + } else { + $unresolvedRefError = undef; + } + } + + if (m/^(Unresolved external .* referenced) in:/) { + $unresolvedRefError = $1; + $_ = ""; + } elsif (m/^([^(]+)\(([0-9]+)\):(.*)$/) { + my $file = $1; + my $lineno = $2; + my $error = $3; + + $_ = "$pwd/$file:$lineno:0:$error"; + } + print STDERR "$_\n"; +} + +unlink($filename); + +exit($result); diff --git a/a2sudoku/make/tail.mk b/a2sudoku/make/tail.mk index 6463582..4d72c06 100644 --- a/a2sudoku/make/tail.mk +++ b/a2sudoku/make/tail.mk @@ -95,7 +95,7 @@ cleanMacCruft: rm -rf pkg $(PGM): $(OBJS) - $(CL65) $(MACHCONFIG) --mapfile $(MAPFILE) $(LDFLAGS) -o "$(PGM)" $(OBJS) + make/errorFilter.sh $(CL65) $(MACHCONFIG) --mapfile $(MAPFILE) $(LDFLAGS) -o "$(PGM)" $(OBJS) $(DISKIMAGE): $(PGM) make/createDiskImage $(AC) $(MACHINE) "$(DISKIMAGE)" "$(PGM)" "$(START_ADDR)" $(COPYDIRS) @@ -104,12 +104,12 @@ execute: $(DISKIMAGE) osascript make/V2Make.scpt "$(CWD)" "$(PGM)" "$(CWD)/make/DevApple.vii" "$(EXECCMD)" %.o: %.c - $(CL65) $(MACHCONFIG) $(CFLAGS) --create-dep -c -o $@ $< + make/errorFilter.sh $(CL65) $(MACHCONFIG) $(CFLAGS) --create-dep -c -o $@ $< sed -i .bak 's/\.s:/.o:/' $(@:.o=.u) rm -f $(@:.o=.u).bak %.o: %.s - $(CL65) $(MACHCONFIG) --cpu $(CPU) $(ASMFLAGS) -l -c -o $@ $< + make/errorFilter.sh $(CL65) $(MACHCONFIG) --cpu $(CPU) $(ASMFLAGS) -l -c -o $@ $< $(OBJS): Makefile