ide/Project: Fixed Apple exclusions not working on OpenGLDisplayDriver.ec
authorJerome St-Louis <jerome@ecere.com>
Fri, 16 Nov 2012 06:24:57 +0000 (01:24 -0500)
committerJerome St-Louis <jerome@ecere.com>
Fri, 16 Nov 2012 06:24:57 +0000 (01:24 -0500)
- Proper implementation in GetPlatformsArrayFromExclusionInfo

ecere/Makefile
ide/src/project/ProjectNode.ec

index d57fc36..2055d82 100755 (executable)
@@ -722,8 +722,10 @@ $(OBJ)NCursesDisplayDriver.sym: src/gfx/drivers/NCursesDisplayDriver.ec
        $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/NCursesDisplayDriver.ec -o $(OBJ)NCursesDisplayDriver.sym
 endif
 
+ifneq "$(or $(WINDOWS_TARGET),$(LINUX_TARGET))" ""
 $(OBJ)OpenGLDisplayDriver.sym: src/gfx/drivers/OpenGLDisplayDriver.ec
        $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/OpenGLDisplayDriver.ec -o $(OBJ)OpenGLDisplayDriver.sym
+endif
 
 ifneq "$(WINDOWS_TARGET)" ""
 $(OBJ)Win32BitmapPrinterDisplayDriver.sym: src/gfx/drivers/Win32BitmapPrinterDisplayDriver.ec
@@ -1131,8 +1133,10 @@ $(OBJ)NCursesDisplayDriver.c: src/gfx/drivers/NCursesDisplayDriver.ec $(OBJ)NCur
        $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gfx/drivers/NCursesDisplayDriver.ec -o $(OBJ)NCursesDisplayDriver.c -symbols $(OBJ)
 endif
 
+ifneq "$(or $(WINDOWS_TARGET),$(LINUX_TARGET))" ""
 $(OBJ)OpenGLDisplayDriver.c: src/gfx/drivers/OpenGLDisplayDriver.ec $(OBJ)OpenGLDisplayDriver.sym | $(SYMBOLS)
        $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gfx/drivers/OpenGLDisplayDriver.ec -o $(OBJ)OpenGLDisplayDriver.c -symbols $(OBJ)
+endif
 
 ifneq "$(WINDOWS_TARGET)" ""
 $(OBJ)Win32BitmapPrinterDisplayDriver.c: src/gfx/drivers/Win32BitmapPrinterDisplayDriver.ec $(OBJ)Win32BitmapPrinterDisplayDriver.sym | $(SYMBOLS)
@@ -1606,8 +1610,10 @@ $(OBJ)NCursesDisplayDriver.o: $(OBJ)NCursesDisplayDriver.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)NCursesDisplayDriver.c -o $(OBJ)NCursesDisplayDriver.o
 endif
 
+ifneq "$(or $(WINDOWS_TARGET),$(LINUX_TARGET))" ""
 $(OBJ)OpenGLDisplayDriver.o: $(OBJ)OpenGLDisplayDriver.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)OpenGLDisplayDriver.c -o $(OBJ)OpenGLDisplayDriver.o
+endif
 
 ifneq "$(WINDOWS_TARGET)" ""
 $(OBJ)Win32BitmapPrinterDisplayDriver.o: $(OBJ)Win32BitmapPrinterDisplayDriver.c
index 0b70871..3da2d5e 100755 (executable)
@@ -390,7 +390,7 @@ private:
          // e.g. ifneq "$(or $(or $(OSX_TARGET),$(LINUX_TARGET)),$(WINDOWS_TARGET))"
          int i = 0;
          f.Puts("ifneq \"");
-         for(i = 0; i < platforms.count - 1; i++)
+         for(i = 0; platforms.count && i < platforms.count - 1; i++)
             f.Puts("$(or ");
          i = 0;
          for(p : platforms)
@@ -2224,11 +2224,25 @@ private:
       Array<Platform> platforms { };
       Map<Platform, SetBool> exclusionInfo { };
       CollectExclusionInfo(exclusionInfo, prjConfig);
-      if(exclusionInfo[unknown] == true && exclusionInfo.count > 1)
-         for(mn : exclusionInfo; mn == false)
-            platforms.Add(&mn);
+
+      if(exclusionInfo[unknown] == true)
+      {
+         if(exclusionInfo.count > 1)
+            for(p : exclusionInfo; p == false)
+               platforms.Add(&p);
+      }
       else
-         platforms.Add(unknown);
+      {
+         if(exclusionInfo.count < 2)
+            platforms.Add(unknown);
+         else
+         {
+            Platform p;
+            for(p = unknown + 1; p < Platform::enumSize; p++)
+               if(exclusionInfo[p] != true)
+                  platforms.Add(p);
+         }
+      }
       delete exclusionInfo;
       return platforms;
    }