Răsfoiți Sursa

Merge pull request #675 from MurrayIRC/master

VSCode Project Updates
Ray 6 ani în urmă
părinte
comite
0f0d271a85

+ 24 - 74
projects/VSCode/.vscode/launch.json

@@ -5,67 +5,7 @@
         "version": "0.2.0",
         "configurations": [
           {
-            "name": "(WIN) Debug",
-            "type": "cppdbg",
-            "request": "launch",
-            "program": "${workspaceFolder}/game.exe",
-            "args": [],
-            "stopAtEntry": false,
-            "cwd": "${workspaceFolder}",
-            "environment": [],
-            "externalConsole": false,
-            "MIMode": "gdb",
-            "miDebuggerPath": "C:/raylib/mingw/bin/gdb.exe",
-            "setupCommands": [
-              {
-                "description": "Enable pretty-printing for gdb",
-                "text": "-enable-pretty-printing",
-                "ignoreFailures": false
-              }
-            ],
-            "preLaunchTask": "(WIN) build debug"
-          },
-          {
-            "name": "(WIN) Run",
-            "type": "cppdbg",
-            "request": "launch",
-            "program": "${workspaceFolder}/game.exe",
-            "args": [],
-            "stopAtEntry": false,
-            "cwd": "${workspaceFolder}",
-            "environment": [],
-            "externalConsole": false,
-            "MIMode": "gdb",
-            "miDebuggerPath": "C:/raylib/mingw/bin/gdb.exe",
-            "setupCommands": [
-              {
-                "description": "Enable pretty-printing for gdb",
-                "text": "-enable-pretty-printing",
-                "ignoreFailures": false
-              }
-            ],
-            "preLaunchTask": "(WIN) build release"
-          },
-          {
-            "name": "(OSX) Debug",
-            "type": "lldb",
-            "request": "launch",
-            "program": "${workspaceFolder}/game",
-            "args": [],
-            "cwd": "${workspaceFolder}",
-            "preLaunchTask": "(OSX) build debug"
-          },
-          {
-            "name": "(OSX) Run",
-            "type": "lldb",
-            "request": "launch",
-            "program": "${workspaceFolder}/game",
-            "args": [],
-            "cwd": "${workspaceFolder}",
-            "preLaunchTask": "(OSX) build release"
-          },
-          {
-            "name": "(GNU) Debug",
+            "name": "Debug",
             "type": "cppdbg",
             "request": "launch",
             "program": "${workspaceFolder}/game",
@@ -75,7 +15,6 @@
             "environment": [],
             "externalConsole": false,
             "MIMode": "gdb",
-            "miDebuggerPath": "/usr/bin/gdb",
             "setupCommands": [
               {
                 "description": "Enable pretty-printing for gdb",
@@ -83,28 +22,39 @@
                 "ignoreFailures": false
               }
             ],
-            "preLaunchTask": "(GNU) build debug"
+            "windows": {
+              "miDebuggerPath": "C:/raylib/mingw/bin/gdb.exe",
+            },
+            "osx": {
+              "MIMode": "lldb"
+            },
+            "linux": {
+              "miDebuggerPath": "/usr/bin/gdb",
+            },
+            "preLaunchTask": "build debug"
           },
           {
-            "name": "(GNU) Run",
+            "name": "Run",
             "type": "cppdbg",
             "request": "launch",
-            "program": "${workspaceFolder}/game",
             "args": [],
             "stopAtEntry": false,
             "cwd": "${workspaceFolder}",
             "environment": [],
             "externalConsole": false,
+            "program": "${workspaceFolder}/game",
             "MIMode": "gdb",
-            "miDebuggerPath": "/usr/bin/gdb",
-            "setupCommands": [
-              {
-                "description": "Enable pretty-printing for gdb",
-                "text": "-enable-pretty-printing",
-                "ignoreFailures": false
-              }
-            ],
-            "preLaunchTask": "(GNU) build release"
+            "windows": {
+              "program": "${workspaceFolder}/game.exe",
+              "miDebuggerPath": "C:/raylib/mingw/bin/gdb.exe"
+            },
+            "osx": {
+              "MIMode": "lldb"
+            },
+            "linux": {
+              "miDebuggerPath": "/usr/bin/gdb"
+            },
+            "preLaunchTask": "build release",
           }
         ]
       }

+ 24 - 44
projects/VSCode/.vscode/tasks.json

@@ -4,67 +4,47 @@
     "version": "2.0.0",
     "tasks": [
         {
-            "label": "(WIN) build release",
-            "type": "process",
-            "command": "C:/raylib/mingw/bin/mingw32-make.exe",
-            "args": [
-                "PLATFORM=PLATFORM_DESKTOP",
-                "RAYLIB_PATH=C:/raylib/raylib",
-            ],
-            "group": "build"
-        },
-        {
-            "label": "(WIN) build debug",
-            "type": "process",
-            "command": "C:/raylib/mingw/bin/mingw32-make.exe",
-            "args": [
-                "PLATFORM=PLATFORM_DESKTOP",
-                "RAYLIB_PATH=C:/raylib/raylib",
-                "DEBUGGING=TRUE"
-            ],
-            "group": "build"
-        },
-        {
-            "label": "(OSX) build debug",
-            "type": "process",
-            "command": "make",
-            "args": [
-                "PLATFORM=PLATFORM_DESKTOP",
-                "RAYLIB_PATH=<path_to_raylib>",
-                "DEBUGGING=TRUE"
-            ],
-            "group": "build"
-        },
-        {
-            "label": "(OSX) build release",
-            "type": "process",
-            "command": "make",
-            "args": [
-                "PLATFORM=PLATFORM_DESKTOP",
-                "RAYLIB_PATH=<path_to_raylib>",
-            ],
-            "group": "build"
-        },
-        {
-            "label": "(GNU) build debug",
+            "label": "build debug",
             "type": "process",
             "command": "make",
             "args": [
                 "PLATFORM=PLATFORM_DESKTOP",
                 "DEBUGGING=TRUE"
             ],
+            "windows": {
+                "command": "C:/raylib/mingw/bin/mingw32-make.exe",
+                "args": [
+                    "RAYLIB_PATH=C:/raylib/raylib"
+                ],
+            },
+            "osx": {
+                "args": [
+                    "RAYLIB_PATH=/Users/murray/work/ray/raylib"
+                ],
+            },
             "group": {
                 "kind": "build",
                 "isDefault": true
             }
         },
         {
-            "label": "(GNU) build release",
+            "label": "build release",
             "type": "process",
             "command": "make",
             "args": [
                 "PLATFORM=PLATFORM_DESKTOP",
             ],
+            "windows": {
+                "command": "C:/raylib/mingw/bin/mingw32-make.exe",
+                "args": [
+                    "RAYLIB_PATH=C:/raylib/raylib",
+                ],
+            },
+            "osx": {
+                "args": [
+                    "RAYLIB_PATH=/Users/murray/work/ray/raylib",
+                ],
+            },
             "group": "build"
         }
     ]

+ 13 - 4
projects/VSCode/Makefile

@@ -151,6 +151,9 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
     ifeq ($(PLATFORM_OS),LINUX)
         MAKE = make
     endif
+    ifeq ($(PLATFORM_OS),OSX)
+        MAKE = make
+    endif
 endif
 
 # Define compiler flags:
@@ -279,17 +282,22 @@ ifeq ($(PLATFORM),PLATFORM_WEB)
     LDLIBS = $(RAYLIB_RELEASE_PATH)/libraylib.bc
 endif
 
+# Define a recursive wildcard function
+rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
+
 # Define all source files required
-PROJECT_SOURCE_FILES ?= main.c
+SRC_DIR = src
+OBJ_DIR = obj
 
 # Define all object files from source files
-OBJS = $(patsubst %.c, %.o, $(PROJECT_SOURCE_FILES))
+SRC = $(call rwildcard, *.c, *.h)
+OBJS = $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
 
 # For Android platform we call a custom Makefile.Android
 ifeq ($(PLATFORM),PLATFORM_ANDROID)
     MAKEFILE_PARAMS = -f Makefile.Android 
     export PROJECT_NAME
-    export PROJECT_SOURCE_FILES
+    export SRC_DIR
 else
     MAKEFILE_PARAMS = $(PROJECT_NAME)
 endif
@@ -305,7 +313,8 @@ $(PROJECT_NAME): $(OBJS)
 
 # Compile source files
 # NOTE: This pattern will compile every module defined on $(OBJS)
-%.o: %.c
+#%.o: %.c
+$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
 	$(CC) -c $< -o $@ $(CFLAGS) $(INCLUDE_PATHS) -D$(PLATFORM)
 
 # Clean everything