ide/Build System, GlobalSettings: Support for per compiler excluded libraries and...
authorJerome St-Louis <jerome@ecere.com>
Thu, 9 Aug 2012 05:06:43 +0000 (01:06 -0400)
committerJerome St-Louis <jerome@ecere.com>
Thu, 9 Aug 2012 05:06:43 +0000 (01:06 -0400)
crossplatform.mk
documentor/locale/documentor.pot
epj2make/locale/epj2make.pot
ide/locale/ide.pot
ide/src/IDESettings.ec
ide/src/dialogs/GlobalSettingsDialog.ec
ide/src/project/Project.ec

index d88b8e2..b5f2380 100644 (file)
@@ -185,6 +185,8 @@ else
    SODESTDIR := obj/$(PLATFORM)/lib/
 endif
 
+_L = $(if $(filter $(1),$(EXCLUDED_LIBS)),,-l$(1))
+
 # COMMON LIBRARIES DETECTION
 
 ifdef WINDOWS
index 3e84ee6..6d45fe8 100644 (file)
@@ -187,7 +187,7 @@ msgstr "File"
 msgid "Functions"
 msgstr "Functions"
 
-#: ./../ide/src/IDESettings.ec:624
+#: ./../ide/src/IDESettings.ec:626
 msgid "GNU Compiler Collection (GCC) / GNU Make"
 msgstr "GNU Compiler Collection (GCC) / GNU Make"
 
@@ -195,15 +195,15 @@ msgstr "GNU Compiler Collection (GCC) / GNU Make"
 msgid "Methods"
 msgstr "Methods"
 
-#: ./../ide/src/IDESettings.ec:627
+#: ./../ide/src/IDESettings.ec:629
 msgid "Microsoft Visual Studio 2005 (8.0) Compiler"
 msgstr "Microsoft Visual Studio 2005 (8.0) Compiler"
 
-#: ./../ide/src/IDESettings.ec:628
+#: ./../ide/src/IDESettings.ec:630
 msgid "Microsoft Visual Studio 2008 (9.0) Compiler"
 msgstr "Microsoft Visual Studio 2008 (9.0) Compiler"
 
-#: ./../ide/src/IDESettings.ec:630
+#: ./../ide/src/IDESettings.ec:632
 msgid "Microsoft Visual Studio 2010 (10.0) Compiler"
 msgstr "Microsoft Visual Studio 2010 (10.0) Compiler"
 
@@ -232,7 +232,7 @@ msgstr "Open..."
 msgid "Parent namespace: <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a><br>\n"
 msgstr "Parent namespace: <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a><br>\n"
 
-#: ./../ide/src/IDESettings.ec:626
+#: ./../ide/src/IDESettings.ec:628
 msgid "Portable C Compiler / GNU Make"
 msgstr "Portable C Compiler / GNU Make"
 
@@ -268,7 +268,7 @@ msgstr "Structure"
 msgid "Tahoma"
 msgstr "Tahoma"
 
-#: ./../ide/src/IDESettings.ec:625
+#: ./../ide/src/IDESettings.ec:627
 msgid "Tiny C Compiler / GNU Make"
 msgstr "Tiny C Compiler / GNU Make"
 
index 70c3752..0e6a816 100644 (file)
@@ -90,19 +90,19 @@ msgstr "Error: Project configuration (%s) was not found.\n"
 msgid "Error: Unable to open project file (%s) due to unknown error.\n"
 msgstr "Error: Unable to open project file (%s) due to unknown error.\n"
 
-#: ./../ide/src/IDESettings.ec:624
+#: ./../ide/src/IDESettings.ec:626
 msgid "GNU Compiler Collection (GCC) / GNU Make"
 msgstr "GNU Compiler Collection (GCC) / GNU Make"
 
-#: ./../ide/src/IDESettings.ec:627
+#: ./../ide/src/IDESettings.ec:629
 msgid "Microsoft Visual Studio 2005 (8.0) Compiler"
 msgstr "Microsoft Visual Studio 2005 (8.0) Compiler"
 
-#: ./../ide/src/IDESettings.ec:628
+#: ./../ide/src/IDESettings.ec:630
 msgid "Microsoft Visual Studio 2008 (9.0) Compiler"
 msgstr "Microsoft Visual Studio 2008 (9.0) Compiler"
 
-#: ./../ide/src/IDESettings.ec:630
+#: ./../ide/src/IDESettings.ec:632
 msgid "Microsoft Visual Studio 2010 (10.0) Compiler"
 msgstr "Microsoft Visual Studio 2010 (10.0) Compiler"
 
@@ -110,7 +110,7 @@ msgstr "Microsoft Visual Studio 2010 (10.0) Compiler"
 msgid "Notice: Project configuration (%s) will be used.\n"
 msgstr "Notice: Project configuration (%s) will be used.\n"
 
-#: ./../ide/src/IDESettings.ec:626
+#: ./../ide/src/IDESettings.ec:628
 msgid "Portable C Compiler / GNU Make"
 msgstr "Portable C Compiler / GNU Make"
 
@@ -118,7 +118,7 @@ msgstr "Portable C Compiler / GNU Make"
 msgid "Syntax:\n"
 msgstr "Syntax:\n"
 
-#: ./../ide/src/IDESettings.ec:625
+#: ./../ide/src/IDESettings.ec:627
 msgid "Tiny C Compiler / GNU Make"
 msgstr "Tiny C Compiler / GNU Make"
 
index dc7af93..3f168e0 100644 (file)
@@ -10,11 +10,11 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Poedit-Basepath: ../\n"
 
-#: ./src/project/Project.ec:1352
+#: ./src/project/Project.ec:1356
 msgid "   %s: No such file or directory\n"
 msgstr "   %s: No such file or directory\n"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:445
+#: ./src/dialogs/GlobalSettingsDialog.ec:450
 msgid " Compiler Configuration"
 msgstr " Compiler Configuration"
 
@@ -42,7 +42,7 @@ msgstr " and its sub directories"
 msgid " before search was aborted"
 msgstr " before search was aborted"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:446
+#: ./src/dialogs/GlobalSettingsDialog.ec:451
 msgid " compiler configuration?"
 msgstr " compiler configuration?"
 
@@ -259,7 +259,7 @@ msgstr "Are you sure you want to remove the \"%s\" project\nfrom this workspace?
 msgid "Are you sure you want to remove the folder \"%s\"\nand all of its contents from the project?"
 msgstr "Are you sure you want to remove the folder \"%s\"\nand all of its contents from the project?"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:446
+#: ./src/dialogs/GlobalSettingsDialog.ec:451
 #: ./src/ProjectSettings.ec:1295
 msgid "Are you sure you wish to delete the "
 msgstr "Are you sure you wish to delete the "
@@ -337,7 +337,7 @@ msgstr "Build project"
 msgid "Builder"
 msgstr "Builder"
 
-#: ./src/project/Project.ec:1429
+#: ./src/project/Project.ec:1433
 msgid "Building library...\n"
 msgstr "Building library...\n"
 
@@ -345,15 +345,15 @@ msgstr "Building library...\n"
 msgid "Building project %s using the %s configuration...\n"
 msgstr "Building project %s using the %s configuration...\n"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:705
+#: ./src/dialogs/GlobalSettingsDialog.ec:710
 msgid "C Compiler"
 msgstr "C Compiler"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:699
+#: ./src/dialogs/GlobalSettingsDialog.ec:704
 msgid "C Preprocessor"
 msgstr "C Preprocessor"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:711
+#: ./src/dialogs/GlobalSettingsDialog.ec:716
 msgid "C++ Compiler"
 msgstr "C++ Compiler"
 
@@ -459,17 +459,17 @@ msgstr "Compile %s"
 msgid "Compiler"
 msgstr "Compiler"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:269
+#: ./src/dialogs/GlobalSettingsDialog.ec:274
 #: ./src/dialogs/ProjectTabSettings.ec:22
 msgid "Compiler Configurations Directory"
 msgstr "Compiler Configurations Directory"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:274
+#: ./src/dialogs/GlobalSettingsDialog.ec:279
 msgid "Compiler Configurations:"
 msgstr "Compiler Configurations:"
 
 #: ./src/dialogs/CompilersDetectionDialog.ec:115
-#: ./src/dialogs/GlobalSettingsDialog.ec:263
+#: ./src/dialogs/GlobalSettingsDialog.ec:268
 msgid "Compilers"
 msgstr "Compilers"
 
@@ -485,7 +485,7 @@ msgstr "Compiling single file %s in project %s using the %s configuration...\n"
 msgid "Compiling single file %s in project %s...\n"
 msgstr "Compiling single file %s in project %s...\n"
 
-#: ./src/project/Project.ec:1400
+#: ./src/project/Project.ec:1404
 msgid "Compiling...\n"
 msgstr "Compiling...\n"
 
@@ -582,11 +582,11 @@ msgstr "Debugging compressed applications is not supported\n"
 msgid "Debugging stopped\n"
 msgstr "Debugging stopped\n"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:1055
+#: ./src/dialogs/GlobalSettingsDialog.ec:1100
 msgid "Default Compiler"
 msgstr "Default Compiler"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:1020
+#: ./src/dialogs/GlobalSettingsDialog.ec:1065
 msgid "Default Intermediate Objects Directory"
 msgstr "Default Intermediate Objects Directory"
 
@@ -594,7 +594,7 @@ msgstr "Default Intermediate Objects Directory"
 msgid "Default Name Space"
 msgstr "Default Name Space"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:1007
+#: ./src/dialogs/GlobalSettingsDialog.ec:1052
 msgid "Default Target Directory"
 msgstr "Default Target Directory"
 
@@ -602,7 +602,7 @@ msgstr "Default Target Directory"
 msgid "Delete"
 msgstr "Delete"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:445
+#: ./src/dialogs/GlobalSettingsDialog.ec:450
 #: ./src/ProjectSettings.ec:1294
 msgid "Delete "
 msgstr "Delete "
@@ -616,7 +616,7 @@ msgstr "Delete %s"
 msgid "Delete Folder"
 msgstr "Delete Folder"
 
-#: ./src/project/Project.ec:1750
+#: ./src/project/Project.ec:1754
 msgid "Deleting target and object files..."
 msgstr "Deleting target and object files..."
 
@@ -637,7 +637,7 @@ msgstr "Designer"
 msgid "Detach"
 msgstr "Detach"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:559
+#: ./src/dialogs/GlobalSettingsDialog.ec:564
 msgid "Directories"
 msgstr "Directories"
 
@@ -666,7 +666,7 @@ msgstr "Document has been modified"
 msgid "ECERE IDE"
 msgstr "ECERE IDE"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:693
+#: ./src/dialogs/GlobalSettingsDialog.ec:698
 msgid "Ecere Archiver"
 msgstr "Ecere Archiver"
 
@@ -686,7 +686,7 @@ msgstr "Ecere IDE Workspace"
 msgid "Edit"
 msgstr "Edit"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:219
+#: ./src/dialogs/GlobalSettingsDialog.ec:224
 msgid "Editor"
 msgstr "Editor"
 
@@ -694,11 +694,11 @@ msgstr "Editor"
 msgid "Empty string"
 msgstr "Empty string"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:788
+#: ./src/dialogs/GlobalSettingsDialog.ec:793
 msgid "Environment"
 msgstr "Environment"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:794
+#: ./src/dialogs/GlobalSettingsDialog.ec:799
 #: ./src/dialogs/WorkspaceSettings.ec:29
 msgid "Environment Variables"
 msgstr "Environment Variables"
@@ -707,7 +707,7 @@ msgstr "Environment Variables"
 msgid "Error creating directory"
 msgstr "Error creating directory"
 
-#: ./src/project/Project.ec:1698
+#: ./src/project/Project.ec:1702
 msgid "Error executing make (%s) command\n"
 msgstr "Error executing make (%s) command\n"
 
@@ -746,11 +746,11 @@ msgstr "Exclude from Build"
 msgid "Executable"
 msgstr "Executable"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:554
+#: ./src/dialogs/GlobalSettingsDialog.ec:559
 msgid "Executable Files"
 msgstr "Executable Files"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:723
+#: ./src/dialogs/GlobalSettingsDialog.ec:728
 msgid "Execution Prefix"
 msgstr "Execution Prefix"
 
@@ -762,7 +762,7 @@ msgstr "Exit"
 msgid "Expression"
 msgstr "Expression"
 
-#: ./src/project/Project.ec:1553
+#: ./src/project/Project.ec:1557
 msgid "Fatal Error: child process terminated unexpectedly\n"
 msgstr "Fatal Error: child process terminated unexpectedly\n"
 
@@ -877,11 +877,11 @@ msgstr "GDB Command"
 msgid "GIF Image"
 msgstr "GIF Image"
 
-#: ./src/IDESettings.ec:624
+#: ./src/IDESettings.ec:626
 msgid "GNU Compiler Collection (GCC) / GNU Make"
 msgstr "GNU Compiler Collection (GCC) / GNU Make"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:717
+#: ./src/dialogs/GlobalSettingsDialog.ec:722
 msgid "GNU Make"
 msgstr "GNU Make"
 
@@ -894,7 +894,7 @@ msgstr "Generating "
 msgid "Generating Makefile & Dependencies..."
 msgstr "Generating Makefile & Dependencies..."
 
-#: ./src/project/Project.ec:1405
+#: ./src/project/Project.ec:1409
 msgid "Generating symbols...\n"
 msgstr "Generating symbols...\n"
 
@@ -970,7 +970,7 @@ msgstr "Import Folder"
 msgid "Import Folder..."
 msgstr "Import Folder..."
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:551
+#: ./src/dialogs/GlobalSettingsDialog.ec:556
 msgid "Include Files"
 msgstr "Include Files"
 
@@ -1021,7 +1021,7 @@ msgstr "It can't be compiled."
 msgid "JPG Image"
 msgstr "JPG Image"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:229
+#: ./src/dialogs/GlobalSettingsDialog.ec:234
 msgid "Keep caret visible (move along) when scrolling"
 msgstr "Keep caret visible (move along) when scrolling"
 
@@ -1029,7 +1029,11 @@ msgstr "Keep caret visible (move along) when scrolling"
 msgid "Lead Architect and Developer"
 msgstr "Lead Architect and Developer"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:552
+#: ./src/dialogs/GlobalSettingsDialog.ec:949
+msgid "Libraries to exclude:"
+msgstr "Libraries to exclude:"
+
+#: ./src/dialogs/GlobalSettingsDialog.ec:557
 msgid "Library Files"
 msgstr "Library Files"
 
@@ -1041,7 +1045,7 @@ msgstr "License"
 msgid "Linker"
 msgstr "Linker"
 
-#: ./src/project/Project.ec:1465
+#: ./src/project/Project.ec:1469
 msgid "Linker Error"
 msgstr "Linker Error"
 
@@ -1049,7 +1053,7 @@ msgstr "Linker Error"
 msgid "Linker Options"
 msgstr "Linker Options"
 
-#: ./src/project/Project.ec:1418
+#: ./src/project/Project.ec:1422
 msgid "Linking...\n"
 msgstr "Linking...\n"
 
@@ -1102,15 +1106,15 @@ msgstr "Method still contains code. Are you sure you want to delete it?"
 msgid "Methods"
 msgstr "Methods"
 
-#: ./src/IDESettings.ec:627
+#: ./src/IDESettings.ec:629
 msgid "Microsoft Visual Studio 2005 (8.0) Compiler"
 msgstr "Microsoft Visual Studio 2005 (8.0) Compiler"
 
-#: ./src/IDESettings.ec:628
+#: ./src/IDESettings.ec:630
 msgid "Microsoft Visual Studio 2008 (9.0) Compiler"
 msgstr "Microsoft Visual Studio 2008 (9.0) Compiler"
 
-#: ./src/IDESettings.ec:630
+#: ./src/IDESettings.ec:632
 msgid "Microsoft Visual Studio 2010 (10.0) Compiler"
 msgstr "Microsoft Visual Studio 2010 (10.0) Compiler"
 
@@ -1133,7 +1137,7 @@ msgstr "Mode"
 msgid "Module Name"
 msgstr "Module Name"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:223
+#: ./src/dialogs/GlobalSettingsDialog.ec:228
 msgid "Move code editor caret freely past end of line"
 msgstr "Move code editor caret freely past end of line"
 
@@ -1223,7 +1227,7 @@ msgstr "Null string"
 msgid "Null type for \"%s\""
 msgstr "Null type for \"%s\""
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:848
+#: ./src/dialogs/GlobalSettingsDialog.ec:853
 msgid "Number of parallel build jobs"
 msgstr "Number of parallel build jobs"
 
@@ -1285,7 +1289,7 @@ msgstr "Open..."
 msgid "Optimization"
 msgstr "Optimization"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:824
+#: ./src/dialogs/GlobalSettingsDialog.ec:829
 msgid "Options"
 msgstr "Options"
 
@@ -1325,7 +1329,7 @@ msgstr "Platforms: "
 msgid "Pointer"
 msgstr "Pointer"
 
-#: ./src/IDESettings.ec:626
+#: ./src/IDESettings.ec:628
 msgid "Portable C Compiler / GNU Make"
 msgstr "Portable C Compiler / GNU Make"
 
@@ -1341,6 +1345,10 @@ msgstr "Pre-build Commands"
 msgid "Preprocessor Definitions"
 msgstr "Preprocessor Definitions"
 
+#: ./src/dialogs/GlobalSettingsDialog.ec:968
+msgid "Preprocessor directives:"
+msgstr "Preprocessor directives:"
+
 #: ./src/ide.ec:1281
 msgid "Previous"
 msgstr "Previous"
@@ -1354,7 +1362,7 @@ msgctxt "Menu"
 msgid "Project"
 msgstr "Project"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:1001
+#: ./src/dialogs/GlobalSettingsDialog.ec:1046
 #: ./src/dialogs/ProjectTabSettings.ec:8
 msgid "Project"
 msgstr "Project"
@@ -1412,7 +1420,7 @@ msgstr "Project Settings"
 msgid "Project View"
 msgstr "Project View"
 
-#: ./src/project/Project.ec:797
+#: ./src/project/Project.ec:801
 msgid "Project has been modified"
 msgstr "Project has been modified"
 
@@ -1689,7 +1697,7 @@ msgstr "Shared and static libraries cannot be run like executables."
 msgid "Sheet"
 msgstr "Sheet"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:235
+#: ./src/dialogs/GlobalSettingsDialog.ec:240
 msgid "Show line numbers in code editor"
 msgstr "Show line numbers in code editor"
 
@@ -1790,7 +1798,7 @@ msgstr "Target Directory"
 msgid "Target Name"
 msgstr "Target Name"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:830
+#: ./src/dialogs/GlobalSettingsDialog.ec:835
 msgid "Target Platform"
 msgstr "Target Platform"
 
@@ -1800,7 +1808,7 @@ msgstr "Target Platform"
 msgid "Target Type"
 msgstr "Target Type"
 
-#: ./src/project/Project.ec:1754
+#: ./src/project/Project.ec:1758
 msgid "Target and object files deleted\n"
 msgstr "Target and object files deleted\n"
 
@@ -1863,7 +1871,7 @@ msgstr "The program %s has exited with a signal%s.\n"
 msgid "The program %s has exited%s.\n"
 msgstr "The program %s has exited%s.\n"
 
-#: ./src/project/Project.ec:795
+#: ./src/project/Project.ec:799
 msgid "The project %s was modified by another application.\nWould you like to reload it and lose your changes?"
 msgstr "The project %s was modified by another application.\nWould you like to reload it and lose your changes?"
 
@@ -1891,7 +1899,7 @@ msgstr "Tile Horizontally"
 msgid "Tile Vertically"
 msgstr "Tile Vertically"
 
-#: ./src/IDESettings.ec:625
+#: ./src/IDESettings.ec:627
 msgid "Tiny C Compiler / GNU Make"
 msgstr "Tiny C Compiler / GNU Make"
 
@@ -1903,7 +1911,7 @@ msgstr "Toggle Breakpoint"
 msgid "Toolbox"
 msgstr "Toolbox"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:669
+#: ./src/dialogs/GlobalSettingsDialog.ec:674
 msgid "Toolchain"
 msgstr "Toolchain"
 
@@ -1949,11 +1957,11 @@ msgstr "Untitled %d"
 msgid "Updating "
 msgstr "Updating "
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:887
+#: ./src/dialogs/GlobalSettingsDialog.ec:892
 msgid "Use ccache"
 msgstr "Use ccache"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:905
+#: ./src/dialogs/GlobalSettingsDialog.ec:910
 msgid "Use distcc"
 msgstr "Use distcc"
 
@@ -2022,7 +2030,7 @@ msgid "With contributions from..."
 msgstr "With contributions from..."
 
 #: ./src/dialogs/FindInFilesDialog.ec:441
-#: ./src/dialogs/GlobalSettingsDialog.ec:1049
+#: ./src/dialogs/GlobalSettingsDialog.ec:1094
 #: ./src/dialogs/WorkspaceSettings.ec:6
 msgid "Workspace"
 msgstr "Workspace"
@@ -2051,7 +2059,7 @@ msgstr "Would you like to save changes made to the project options?"
 msgid "Would you like to save changes made to the workspace options?"
 msgstr "Would you like to save changes made to the workspace options?"
 
-#: ./src/project/Project.ec:1431
+#: ./src/project/Project.ec:1435
 msgid "Writing symbol loader...\n"
 msgstr "Writing symbol loader...\n"
 
@@ -2071,16 +2079,16 @@ msgstr "You must provide a valid source directory in order to place a breakpoint
 msgid "You must specify a search location."
 msgstr "You must specify a search location."
 
-#: ./src/project/Project.ec:1283
-#: ./src/project/Project.ec:1545
+#: ./src/project/Project.ec:1287
+#: ./src/project/Project.ec:1549
 msgid "\nBuild cancelled by user.\n"
 msgstr "\nBuild cancelled by user.\n"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:925
+#: ./src/dialogs/GlobalSettingsDialog.ec:930
 msgid "distcc hosts"
 msgstr "distcc hosts"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:681
+#: ./src/dialogs/GlobalSettingsDialog.ec:686
 msgid "eC Compiler"
 msgstr "eC Compiler"
 
@@ -2088,7 +2096,7 @@ msgstr "eC Compiler"
 msgid "eC Files (*.ec, *.eh)"
 msgstr "eC Files (*.ec, *.eh)"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:675
+#: ./src/dialogs/GlobalSettingsDialog.ec:680
 msgid "eC Precompiler"
 msgstr "eC Precompiler"
 
@@ -2096,7 +2104,7 @@ msgstr "eC Precompiler"
 msgid "eC Source Code"
 msgstr "eC Source Code"
 
-#: ./src/dialogs/GlobalSettingsDialog.ec:687
+#: ./src/dialogs/GlobalSettingsDialog.ec:692
 msgid "eC Symbol Loader"
 msgstr "eC Symbol Loader"
 
@@ -2108,11 +2116,11 @@ msgstr "eC/C/C++ Files (*.ec, *.eh, *.c, *.cpp, *.cc, *.cxx, *.h, *.hpp, *.hh, *
 msgid "eC/C/C++ Source Files (*.ec, *.c, *.cpp, *.cc, *.cxx)"
 msgstr "eC/C/C++ Source Files (*.ec, *.c, *.cpp, *.cc, *.cxx)"
 
-#: ./src/project/Project.ec:1560
+#: ./src/project/Project.ec:1564
 msgid "error"
 msgstr "error"
 
-#: ./src/project/Project.ec:1560
+#: ./src/project/Project.ec:1564
 msgid "errors"
 msgstr "errors"
 
@@ -2130,11 +2138,11 @@ msgstr "found"
 msgid "inside %s, %s\n"
 msgstr "inside %s, %s\n"
 
-#: ./src/project/Project.ec:1562
+#: ./src/project/Project.ec:1566
 msgid "no error, "
 msgstr "no error, "
 
-#: ./src/project/Project.ec:1567
+#: ./src/project/Project.ec:1571
 msgid "no warning\n"
 msgstr "no warning\n"
 
@@ -2159,11 +2167,11 @@ msgstr "s were "
 msgid "unknown source\n"
 msgstr "unknown source\n"
 
-#: ./src/project/Project.ec:1565
+#: ./src/project/Project.ec:1569
 msgid "warning"
 msgstr "warning"
 
-#: ./src/project/Project.ec:1565
+#: ./src/project/Project.ec:1569
 msgid "warnings"
 msgstr "warnings"
 
index 5a73376..2bbc100 100644 (file)
@@ -822,6 +822,34 @@ public:
       get { return environmentVars; }
       isset { return environmentVars.count != 0; }
    }
+   property Array<String> prepDirectives
+   {
+      set
+      {
+         prepDirectives.Free();
+         if(value)
+         {
+            delete prepDirectives;
+            prepDirectives = value;
+         }
+      }
+      get { return prepDirectives; }
+      isset { return prepDirectives.count != 0; }
+   }
+   property Array<String> excludeLibs
+   {
+      set
+      {
+         excludeLibs.Free();
+         if(value)
+         {
+            delete excludeLibs;
+            excludeLibs = value;
+         }
+      }
+      get { return excludeLibs; }
+      isset { return excludeLibs.count != 0; }
+   }
 private:
    Array<String> includeDirs { };
    Array<String> libraryDirs { };
@@ -829,6 +857,8 @@ private:
    // TODO: Can JSON parse and serialize maps?
    //EnvironmentVariables { };
    Array<NamedString> environmentVars { };
+   Array<String> prepDirectives { };
+   Array<String> excludeLibs { };
    char * name;
    char * makeCommand;
    char * ecpCommand;
@@ -863,6 +893,8 @@ private:
       if(includeDirs) { includeDirs.Free(); }
       if(libraryDirs) { libraryDirs.Free(); }
       if(executableDirs) { executableDirs.Free(); }
+      if(prepDirectives) { prepDirectives.Free(); }
+      if(excludeLibs) { excludeLibs.Free(); }
    }
    CompilerConfig Copy()
    {
@@ -890,6 +922,8 @@ private:
       for(s : libraryDirs) copy.libraryDirs.Add(CopyString(s));
       for(s : executableDirs) copy.executableDirs.Add(CopyString(s));
       for(ns : environmentVars) copy.environmentVars.Add(NamedString { name = ns.name, string = ns.string });
+      for(s : prepDirectives) copy.prepDirectives.Add(CopyString(s));
+      for(s : excludeLibs) copy.excludeLibs.Add(CopyString(s));
 
       incref copy;
       return copy;
index 484c3f1..47b1526 100644 (file)
@@ -943,6 +943,44 @@ class CompilerOptionsTab : CompilersSubTab
       }
    }
 
+   Label lblExcludedLibraries { this, position = { 8, 152 }, labeledWindow = excludedLibraries };
+   StringListBox excludedLibraries
+   {
+      this, text = $"Libraries to exclude:", hotKey = altX;
+      position = { 148, 152 }, size = { 300 };
+
+      bool NotifyModified(EditBox editBox)
+      {
+         if(loadedCompiler)
+         {
+            CompilerConfig compiler = loadedCompiler;
+            compiler.excludeLibs = ((StringListBox)editBox).strings;
+            modifiedDocument = true;
+            compilersTab.modifiedDocument = true;
+         }
+         return true;
+      }
+   }
+
+   Label lblPrepDefs { this, position = { 8, 180 }, labeledWindow = prepDefs };
+   StringListBox prepDefs
+   {
+      this, text = $"Preprocessor directives:", hotKey = altP;
+      position = { 148, 180 }, size = { 300 };
+
+      bool NotifyModified(EditBox editBox)
+      {
+         if(loadedCompiler)
+         {
+            CompilerConfig compiler = loadedCompiler;
+            compiler.prepDirectives = ((StringListBox)editBox).strings;
+            modifiedDocument = true;
+            compilersTab.modifiedDocument = true;
+         }
+         return true;
+      }
+   }
+
    CompilerOptionsTab()
    {
       Platform p;
@@ -968,6 +1006,8 @@ class CompilerOptionsTab : CompilersSubTab
          distccEnabled.checked = compiler.distccEnabled;
          distccHosts.disabled = !compiler.distccEnabled;
          distccHosts.contents = compiler.distccHosts;
+         prepDefs.strings = compiler.prepDirectives;
+         excludedLibraries.strings = compiler.excludeLibs;
          
          labelTargetPlatform.disabled = disabled;
          targetPlatform.disabled = disabled;
index 5aab5d8..50266c3 100644 (file)
@@ -561,6 +561,7 @@ static void OutputLibraries(File f, Array<String> libraries)
       char ext[MAX_EXTENSION];
       char temp[MAX_LOCATION];
       char * s = item;
+      bool usedFunction = false;
       GetExtension(item, ext);
       if(!strcmp(ext, "o") || !strcmp(ext, "a"))
          f.Printf(" ");
@@ -575,9 +576,12 @@ static void OutputLibraries(File f, Array<String> libraries)
             StripExtension(temp);
             s = temp;
          } 
-         f.Printf(" -l");
+         f.Printf(" \\\n\t$(call _L,");
+         usedFunction = true;
       }
       OutputNoSpace(f, s);
+      if(usedFunction)
+         f.Printf(")");
    }
 }
 
@@ -1932,27 +1936,39 @@ private:
             // JF's
             f.Printf("ifdef %s\n", PlatformToMakefileVariable(apple));
             f.Printf("OFLAGS += -framework cocoa -framework OpenGL\n");
-            f.Printf("endif\n\n");
+            f.Printf("endif\n");
 
             if(crossCompiling)
-               f.Printf("PLATFORM = %s\n", (char *)compiler.targetPlatform);
+            {
+               f.Printf("\nPLATFORM = %s\n", (char *)compiler.targetPlatform);
+            }
 
-            if((compiler.includeDirs && compiler.includeDirs.count) ||
-                  (compiler.libraryDirs && compiler.libraryDirs.count))
+            if(compiler.includeDirs && compiler.includeDirs.count)
             {
-               if(compiler.includeDirs && compiler.includeDirs.count)
-               {
-                  f.Printf("CFLAGS +=");
-                  OutputListOption(f, gccCompiler ? "isystem " : "I", compiler.includeDirs, lineEach, true);
-                  f.Printf("\n");
-               }
-               if(compiler.libraryDirs && compiler.libraryDirs.count)
+               f.Printf("\nCFLAGS +=");
+               OutputListOption(f, gccCompiler ? "isystem " : "I", compiler.includeDirs, lineEach, true);
+               f.Printf("\n");
+            }
+            if(compiler.prepDirectives && compiler.prepDirectives.count)
+            {
+               f.Printf("\nCFLAGS +=");
+               OutputListOption(f, "D", compiler.prepDirectives, inPlace, true);
+               f.Printf("\n");
+            }
+            if(compiler.libraryDirs && compiler.libraryDirs.count)
+            {
+               f.Printf("\nOFLAGS +=");
+               OutputListOption(f, "L", compiler.libraryDirs, lineEach, true);
+               f.Printf("\n");
+            }
+            if(compiler.excludeLibs && compiler.excludeLibs.count)
+            {
+               f.Puts("\nEXCLUDED_LIBS =");
+               for(l : compiler.excludeLibs)
                {
-                  f.Printf("OFLAGS +=");
-                  OutputListOption(f, "L", compiler.libraryDirs, lineEach, true);
-                  f.Printf("\n");
+                  f.Puts(" ");
+                  f.Puts(l);
                }
-               f.Printf("\n");
             }
 
             delete f;