瀏覽代碼

Cherry pick into is6: Add support for using EmitLanguagesSection to script wizard + cleanup old islu code.

Martijn Laan 1 周之前
父節點
當前提交
89beac29a1
共有 1 個文件被更改,包括 28 次插入13 次删除
  1. 28 13
      Projects/Src/IDE.Wizard.WizardForm.pas

+ 28 - 13
Projects/Src/IDE.Wizard.WizardForm.pas

@@ -312,9 +312,7 @@ begin
 
   FLanguages := TStringList.Create;
   FLanguages.Sorted := True;
-  FLanguages.Duplicates := dupIgnore; { Some systems also return .islu files when searching for *.isl }
   AddLanguages('isl');
-  AddLanguages('islu');
   FLanguages.Sorted := False;
   FLanguages.Insert(0, LanguagesDefaultIsl);
 
@@ -1125,17 +1123,34 @@ begin
 
     { Languages }
     if FLanguages.Count > 1 then begin
-      for I := 0 to LanguagesList.Items.Count-1 do begin
-        if LanguagesList.Checked[I] then begin
-          LanguageMessagesFile := FLanguages[Integer(LanguagesList.ItemObject[I])];
-          if LanguageMessagesFile <> LanguagesDefaultIsl then begin
-            LanguageName := LanguagesList.Items[I];
-            LanguageMessagesFile := 'Languages\' + LanguageMessagesFile;
-          end else
-            LanguageName := LanguagesDefaultIslDescription;
-          StringChange(LanguageName, ' ', '');
-          LanguageName := LowerCase(LanguageName);
-          Languages := Languages + 'Name: "' + LanguageName + '"; MessagesFile: "compiler:' + LanguageMessagesFile + '"' + SNewLine;
+      var UsingISPPEmitLanguagesSection: Boolean;
+
+      if ISPPCheck.Checked then begin
+        UsingISPPEmitLanguagesSection := True;
+        for I := 0 to LanguagesList.Items.Count-1 do begin
+          if not LanguagesList.Checked[I] then begin
+            UsingISPPEmitLanguagesSection := False;
+            Break;
+          end;
+        end;
+      end else
+        UsingISPPEmitLanguagesSection := False;
+
+      if UsingISPPEmitLanguagesSection then
+        ISPP := ISPP + '#expr EmitLanguagesSection' + SNewLine
+      else begin
+        for I := 0 to LanguagesList.Items.Count-1 do begin
+          if LanguagesList.Checked[I] then begin
+            LanguageMessagesFile := FLanguages[Integer(LanguagesList.ItemObject[I])];
+            if LanguageMessagesFile <> LanguagesDefaultIsl then begin
+              LanguageName := LanguagesList.Items[I];
+              LanguageMessagesFile := 'Languages\' + LanguageMessagesFile;
+            end else
+              LanguageName := LanguagesDefaultIslDescription;
+            StringChange(LanguageName, ' ', '');
+            LanguageName := LowerCase(LanguageName);
+            Languages := Languages + 'Name: "' + LanguageName + '"; MessagesFile: "compiler:' + LanguageMessagesFile + '"' + SNewLine;
+          end;
         end;
       end;
     end;