Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 6750e67

Browse filesBrowse files
committed
Building sketch first (so errors appear faster).
http://code.google.com/p/arduino/issues/detail?id=393
1 parent 5d9602a commit 6750e67
Copy full SHA for 6750e67

File tree

Expand file treeCollapse file tree

1 file changed

+66
-66
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+66
-66
lines changed

‎app/src/processing/app/debug/Compiler.java

Copy file name to clipboardExpand all lines: app/src/processing/app/debug/Compiler.java
+66-66Lines changed: 66 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -93,72 +93,72 @@ public boolean compile(Sketch sketch,
9393

9494
List<File> objectFiles = new ArrayList<File>();
9595

96-
List includePaths = new ArrayList();
97-
includePaths.add(corePath);
98-
99-
String runtimeLibraryName = buildPath + File.separator + "core.a";
100-
101-
// 1. compile the core, outputting .o files to <buildPath> and then
102-
// collecting them into the core.a library file.
103-
104-
List<File> coreObjectFiles =
105-
compileFiles(avrBasePath, buildPath, includePaths,
106-
findFilesInPath(corePath, "S", true),
107-
findFilesInPath(corePath, "c", true),
108-
findFilesInPath(corePath, "cpp", true),
109-
boardPreferences);
110-
111-
List baseCommandAR = new ArrayList(Arrays.asList(new String[] {
112-
avrBasePath + "avr-ar",
113-
"rcs",
114-
runtimeLibraryName
115-
}));
116-
117-
for(File file : coreObjectFiles) {
118-
List commandAR = new ArrayList(baseCommandAR);
119-
commandAR.add(file.getAbsolutePath());
120-
execAsynchronously(commandAR);
121-
}
122-
123-
// 2. compile the libraries, outputting .o files to: <buildPath>/<library>/
124-
125-
// use library directories as include paths for all libraries
126-
for (File file : sketch.getImportedLibraries()) {
127-
includePaths.add(file.getPath());
128-
}
129-
130-
for (File libraryFolder : sketch.getImportedLibraries()) {
131-
File outputFolder = new File(buildPath, libraryFolder.getName());
132-
File utilityFolder = new File(libraryFolder, "utility");
133-
createFolder(outputFolder);
134-
// this library can use includes in its utility/ folder
135-
includePaths.add(utilityFolder.getAbsolutePath());
136-
objectFiles.addAll(
137-
compileFiles(avrBasePath, outputFolder.getAbsolutePath(), includePaths,
138-
findFilesInFolder(libraryFolder, "S", false),
139-
findFilesInFolder(libraryFolder, "c", false),
140-
findFilesInFolder(libraryFolder, "cpp", false),
141-
boardPreferences));
142-
outputFolder = new File(outputFolder, "utility");
143-
createFolder(outputFolder);
144-
objectFiles.addAll(
145-
compileFiles(avrBasePath, outputFolder.getAbsolutePath(), includePaths,
146-
findFilesInFolder(utilityFolder, "S", false),
147-
findFilesInFolder(utilityFolder, "c", false),
148-
findFilesInFolder(utilityFolder, "cpp", false),
149-
boardPreferences));
150-
// other libraries should not see this library's utility/ folder
151-
includePaths.remove(includePaths.size() - 1);
152-
}
153-
154-
// 3. compile the sketch (already in the buildPath)
155-
156-
objectFiles.addAll(
157-
compileFiles(avrBasePath, buildPath, includePaths,
158-
findFilesInPath(buildPath, "S", false),
159-
findFilesInPath(buildPath, "c", false),
160-
findFilesInPath(buildPath, "cpp", false),
161-
boardPreferences));
96+
// 0. include paths for core + all libraries
97+
98+
List includePaths = new ArrayList();
99+
includePaths.add(corePath);
100+
for (File file : sketch.getImportedLibraries()) {
101+
includePaths.add(file.getPath());
102+
}
103+
104+
// 1. compile the sketch (already in the buildPath)
105+
106+
objectFiles.addAll(
107+
compileFiles(avrBasePath, buildPath, includePaths,
108+
findFilesInPath(buildPath, "S", false),
109+
findFilesInPath(buildPath, "c", false),
110+
findFilesInPath(buildPath, "cpp", false),
111+
boardPreferences));
112+
113+
// 2. compile the libraries, outputting .o files to: <buildPath>/<library>/
114+
115+
for (File libraryFolder : sketch.getImportedLibraries()) {
116+
File outputFolder = new File(buildPath, libraryFolder.getName());
117+
File utilityFolder = new File(libraryFolder, "utility");
118+
createFolder(outputFolder);
119+
// this library can use includes in its utility/ folder
120+
includePaths.add(utilityFolder.getAbsolutePath());
121+
objectFiles.addAll(
122+
compileFiles(avrBasePath, outputFolder.getAbsolutePath(), includePaths,
123+
findFilesInFolder(libraryFolder, "S", false),
124+
findFilesInFolder(libraryFolder, "c", false),
125+
findFilesInFolder(libraryFolder, "cpp", false),
126+
boardPreferences));
127+
outputFolder = new File(outputFolder, "utility");
128+
createFolder(outputFolder);
129+
objectFiles.addAll(
130+
compileFiles(avrBasePath, outputFolder.getAbsolutePath(), includePaths,
131+
findFilesInFolder(utilityFolder, "S", false),
132+
findFilesInFolder(utilityFolder, "c", false),
133+
findFilesInFolder(utilityFolder, "cpp", false),
134+
boardPreferences));
135+
// other libraries should not see this library's utility/ folder
136+
includePaths.remove(includePaths.size() - 1);
137+
}
138+
139+
// 3. compile the core, outputting .o files to <buildPath> and then
140+
// collecting them into the core.a library file.
141+
142+
includePaths.clear();
143+
includePaths.add(corePath); // include path for core only
144+
List<File> coreObjectFiles =
145+
compileFiles(avrBasePath, buildPath, includePaths,
146+
findFilesInPath(corePath, "S", true),
147+
findFilesInPath(corePath, "c", true),
148+
findFilesInPath(corePath, "cpp", true),
149+
boardPreferences);
150+
151+
String runtimeLibraryName = buildPath + File.separator + "core.a";
152+
List baseCommandAR = new ArrayList(Arrays.asList(new String[] {
153+
avrBasePath + "avr-ar",
154+
"rcs",
155+
runtimeLibraryName
156+
}));
157+
for(File file : coreObjectFiles) {
158+
List commandAR = new ArrayList(baseCommandAR);
159+
commandAR.add(file.getAbsolutePath());
160+
execAsynchronously(commandAR);
161+
}
162162

163163
// 4. link it all together into the .elf file
164164

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.