--- a/hotspot/src/share/tools/ProjectCreator/FileTreeCreatorVC7.java Wed Jul 05 20:01:50 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,156 +0,0 @@
-import static java.nio.file.FileVisitResult.CONTINUE;
-
-import java.io.IOException;
-import java.nio.file.FileSystems;
-import java.nio.file.FileVisitResult;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.attribute.BasicFileAttributes;
-import java.util.Stack;
-import java.util.Vector;
-
-public class FileTreeCreatorVC7 extends FileTreeCreator {
-
- public FileTreeCreatorVC7(Path startDir, Vector<BuildConfig> allConfigs, WinGammaPlatform wg) {
- super(startDir, allConfigs, wg);
- }
-
- @Override
- public FileVisitResult visitFile(Path file, BasicFileAttributes attr) {
- DirAttributes currentFileAttr = attributes.peek().clone();
- boolean usePch = false;
- boolean disablePch = false;
- boolean useIgnore = false;
- String fileName = file.getFileName().toString();
-
- // usePch applies to all configs for a file.
- if (fileName.equals(BuildConfig.getFieldString(null, "UseToGeneratePch"))) {
- usePch = true;
- }
-
- for (BuildConfig cfg : allConfigs) {
- if (cfg.lookupHashFieldInContext("IgnoreFile", fileName) != null) {
- useIgnore = true;
- currentFileAttr.setIgnore(cfg);
- } else if (cfg.matchesIgnoredPath(file.toAbsolutePath().toString())) {
- useIgnore = true;
- currentFileAttr.setIgnore(cfg);
- }
-
- if (cfg.lookupHashFieldInContext("DisablePch", fileName) != null) {
- disablePch = true;
- currentFileAttr.setDisablePch(cfg);
- }
-
- Vector<String> rv = new Vector<String>();
- cfg.collectRelevantVectors(rv, "AdditionalFile");
- for(String addFile : rv) {
- if (addFile.equals(fileName)) {
- // supress any ignore
- currentFileAttr.removeFromIgnored(cfg);
- }
- }
- }
-
- if (!useIgnore && !disablePch && !usePch) {
- wg.tag("File", new String[] { "RelativePath", vcProjLocation.relativize(file).toString()});
- } else {
- wg.startTag(
- "File",
- new String[] { "RelativePath", vcProjLocation.relativize(file).toString()});
-
- for (BuildConfig cfg : allConfigs) {
- boolean ignore = currentFileAttr.hasIgnore(cfg);
- String [] fileConfAttr;
-
- if (ignore) {
- fileConfAttr = new String[] {"Name", cfg.get("Name"), "ExcludedFromBuild", "TRUE" };
- } else {
- fileConfAttr = new String[] {"Name", cfg.get("Name")};
- }
-
- if (!disablePch && !usePch && !ignore) {
- continue;
- } else if (!disablePch && !usePch) {
- wg.tag("FileConfiguration", fileConfAttr);
- } else {
- wg.startTag("FileConfiguration", fileConfAttr);
- if (usePch) {
- // usePch always applies to all configs, might not always be so.
- wg.tag("Tool", new String[] {
- "Name", "VCCLCompilerTool", "UsePrecompiledHeader",
- "1" });
- assert(!disablePch);
- }
- if (disablePch) {
- if (currentFileAttr.hasDisablePch(cfg)) {
- wg.tag("Tool", new String[] {
- "Name", "VCCLCompilerTool", "UsePrecompiledHeader",
- "0" });
- }
- assert(!usePch);
- }
- wg.endTag();
- }
- }
- wg.endTag();
- }
-
- return CONTINUE;
- }
-
- @Override
- public FileVisitResult preVisitDirectory(Path path, BasicFileAttributes attrs)
- throws IOException {
- Boolean hide = false;
- DirAttributes newAttr = attributes.peek().clone();
-
- String rPath;
- if (path.toAbsolutePath().toString().equals(this.startDir.toAbsolutePath().toString())){
- rPath = startDir.toString();
- } else {
- rPath = path.getFileName().toString();
- }
-
- // check per config ignorePaths!
- for (BuildConfig cfg : allConfigs) {
- if (cfg.matchesIgnoredPath(path.toAbsolutePath().toString())) {
- newAttr.setIgnore(cfg);
- }
-
- // Hide is always on all configs. And additional files are never hiddden
- if (cfg.matchesHidePath(path.toAbsolutePath().toString())) {
- hide = true;
- break;
- }
- }
-
- if (!hide) {
- wg.startTag("Filter", new String[] {
- "Name", rPath});
-
- attributes.push(newAttr);
- return super.preVisitDirectory(path, attrs);
- } else {
- return FileVisitResult.SKIP_SUBTREE;
- }
- }
-
- @Override
- public FileVisitResult postVisitDirectory(Path dir, IOException exc) {
- //end matching attributes set by ignorepath
- wg.endTag();
- attributes.pop();
-
- return CONTINUE;
- }
-
- @Override
- public FileVisitResult visitFileFailed(Path file, IOException exc) {
- return CONTINUE;
- }
-
- public void writeFileTree() throws IOException {
- Files.walkFileTree(this.startDir, this);
- }
- }
\ No newline at end of file