blob: e2d5dd772db54cf742acb35127761c9f00fb7f89 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.ant;
import com.android.ant.DependencyHelper.LibraryProcessor;
import com.android.sdklib.internal.project.IPropertySource;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.Path.PathElement;
import java.io.File;
import java.util.List;
/**
* Task to get the list of Library Project for the current project.
*
*/
public class GetLibraryListTask extends Task {
private String mLibraryFolderPathOut;
public void setLibraryFolderPathOut(String libraryFolderPathOut) {
mLibraryFolderPathOut = libraryFolderPathOut;
}
@Override
public void execute() throws BuildException {
execute(null);
}
public void execute(LibraryProcessor processor) throws BuildException {
if (mLibraryFolderPathOut == null) {
throw new BuildException("Missing attribute libraryFolderPathOut");
}
final Project antProject = getProject();
DependencyHelper helper = new DependencyHelper(antProject.getBaseDir(),
new IPropertySource() {
@Override
public String getProperty(String name) {
return antProject.getProperty(name);
}
},
true /*verbose*/);
System.out.println("Library dependencies:");
if (helper.getLibraryCount() > 0) {
System.out.println("\n------------------\nOrdered libraries:");
helper.processLibraries(processor);
// Create a Path object of all the libraries in reverse order.
// This is important so that compilation of libraries happens
// in the reverse order.
Path rootPath = new Path(antProject);
List<File> libraries = helper.getLibraries();
for (int i = libraries.size() - 1 ; i >= 0; i--) {
File library = libraries.get(i);
PathElement element = rootPath.createPathElement();
element.setPath(library.getAbsolutePath());
}
antProject.addReference(mLibraryFolderPathOut, rootPath);
} else {
System.out.println("No Libraries");
}
}
protected String getLibraryFolderPathOut() {
return mLibraryFolderPathOut;
}
}
|