public static void ImportPriFile(EnvDTE.Project project, string fileName) { VCProject vcproj; if (!HelperFunctions.IsQtProject(project)) { return; } vcproj = project.Object as VCProject; if (vcproj == null) { return; } QtVersionManager vm = QtVersionManager.The(); string qtDir = vm.GetInstallPath(vm.GetDefaultVersion()); if (qtDir == null) { Messages.DisplayErrorMessage(SR.GetString("CannotFindQMake")); return; } FileInfo priFileInfo = new FileInfo(fileName); QMakeWrapper qmake = new QMakeWrapper(); qmake.setQtDir(qtDir); if (qmake.readFile(priFileInfo.FullName)) { bool flat = qmake.isFlat(); List <string> priFiles = ResolveFilesFromQMake(qmake.sourceFiles(), project, priFileInfo.DirectoryName); List <string> projFiles = HelperFunctions.GetProjectFiles(project, FilesToList.FL_CppFiles); projFiles = ProjectExporter.ConvertFilesToFullPath(projFiles, vcproj.ProjectDirectory); ProjectExporter.SyncIncludeFiles(vcproj, priFiles, projFiles, project.DTE, flat, Filters.SourceFiles()); priFiles = ResolveFilesFromQMake(qmake.headerFiles(), project, priFileInfo.DirectoryName); projFiles = HelperFunctions.GetProjectFiles(project, FilesToList.FL_HFiles); projFiles = ProjectExporter.ConvertFilesToFullPath(projFiles, vcproj.ProjectDirectory); ProjectExporter.SyncIncludeFiles(vcproj, priFiles, projFiles, project.DTE, flat, Filters.HeaderFiles()); priFiles = ResolveFilesFromQMake(qmake.formFiles(), project, priFileInfo.DirectoryName); projFiles = HelperFunctions.GetProjectFiles(project, FilesToList.FL_UiFiles); projFiles = ProjectExporter.ConvertFilesToFullPath(projFiles, vcproj.ProjectDirectory); ProjectExporter.SyncIncludeFiles(vcproj, priFiles, projFiles, project.DTE, flat, Filters.FormFiles()); priFiles = ResolveFilesFromQMake(qmake.resourceFiles(), project, priFileInfo.DirectoryName); projFiles = HelperFunctions.GetProjectFiles(project, FilesToList.FL_Resources); projFiles = ProjectExporter.ConvertFilesToFullPath(projFiles, vcproj.ProjectDirectory); ProjectExporter.SyncIncludeFiles(vcproj, priFiles, projFiles, project.DTE, flat, Filters.ResourceFiles()); } else { Messages.PaneMessage(project.DTE, "--- (Importing .pri file) file: " + priFileInfo + " could not be read."); } }
public static void ImportPriFile(EnvDTE.Project project, string fileName) { ThreadHelper.ThrowIfNotOnUIThread(); if (project == null) { return; } if (!HelperFunctions.IsQtProject(project)) { return; } var vcproj = project.Object as VCProject; if (vcproj == null) { return; } var vm = QtVersionManager.The(); var qtDir = vm.GetInstallPath(vm.GetDefaultVersion()); if (qtDir == null) { Messages.DisplayErrorMessage(SR.GetString("CannotFindQMake")); return; } var qmake = new QMakeWrapper { QtDir = qtDir }; var priFileInfo = new FileInfo(fileName); if (qmake.ReadFile(priFileInfo.FullName)) { var priFiles = ResolveFilesFromQMake(qmake.SourceFiles, project, priFileInfo.DirectoryName); var projFiles = HelperFunctions.GetProjectFiles(project, FilesToList.FL_CppFiles); projFiles = ProjectExporter.ConvertFilesToFullPath(projFiles, vcproj.ProjectDirectory); ProjectExporter.SyncIncludeFiles(vcproj, priFiles, projFiles, project.DTE, qmake.IsFlat, Filters.SourceFiles()); priFiles = ResolveFilesFromQMake(qmake.HeaderFiles, project, priFileInfo.DirectoryName); projFiles = HelperFunctions.GetProjectFiles(project, FilesToList.FL_HFiles); projFiles = ProjectExporter.ConvertFilesToFullPath(projFiles, vcproj.ProjectDirectory); ProjectExporter.SyncIncludeFiles(vcproj, priFiles, projFiles, project.DTE, qmake.IsFlat, Filters.HeaderFiles()); priFiles = ResolveFilesFromQMake(qmake.FormFiles, project, priFileInfo.DirectoryName); projFiles = HelperFunctions.GetProjectFiles(project, FilesToList.FL_UiFiles); projFiles = ProjectExporter.ConvertFilesToFullPath(projFiles, vcproj.ProjectDirectory); ProjectExporter.SyncIncludeFiles(vcproj, priFiles, projFiles, project.DTE, qmake.IsFlat, Filters.FormFiles()); priFiles = ResolveFilesFromQMake(qmake.ResourceFiles, project, priFileInfo.DirectoryName); projFiles = HelperFunctions.GetProjectFiles(project, FilesToList.FL_Resources); projFiles = ProjectExporter.ConvertFilesToFullPath(projFiles, vcproj.ProjectDirectory); ProjectExporter.SyncIncludeFiles(vcproj, priFiles, projFiles, project.DTE, qmake.IsFlat, Filters.ResourceFiles()); } else { Messages.Print("--- (Importing .pri file) file: " + priFileInfo + " could not be read."); } }