Last active
September 2, 2024 03:23
-
-
Save pakLebah/3d8229412fe9f2a7e9fd94c7e42491fb to your computer and use it in GitHub Desktop.
My VS Code tasks for Apple's Swift programs on Mac.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
// Use IntelliSense to learn about possible attributes. | |
// Hover to view descriptions of existing attributes. | |
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 | |
"version": "0.2.0", | |
"configurations": [ | |
{ | |
"type": "lldb", | |
"name": "LLDB", | |
"cwd" : "${workspaceFolder}", | |
"request" : "launch", | |
"program" : ".build/Debug/${fileBasenameNoExtension}", | |
"terminal": "integrated", | |
"preLaunchTask": "swift: Build Debug", | |
// "postDebugTask": "swift: Clean Build Files", | |
"args": [], | |
}, | |
] | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
// See https://go.microsoft.com/fwlink/?LinkId=733558 | |
// for the documentation about the tasks.json format | |
"version": "2.0.0", | |
"options": { | |
"cwd": "${workspaceFolder}", | |
"env": { | |
// for single file based swift project | |
"PROJECTFILE" : "${relativeFile}", | |
"PROJECTNAME" : "${fileBasenameNoExtension}", | |
"OUTPUT" : ".build", | |
"DEBUG" : "Debug", | |
"MODULE" : "Module", | |
"RELEASE" : "Release", | |
"EXTENSION" : ".cgi", // set this to .cgi for web app | |
"SYSTEM" : "x86_64-apple-macosx10.10", | |
"FORMATTER" : "${workspaceFolder}/swift-format", | |
"FORMATCONFIG": "${workspaceFolder}/swift-format.json", | |
// import custom module files (module name with -l prefix) | |
"IMPORT_1" : "-lhello", | |
"IMPORT_2" : "", | |
"IMPORT_3" : "", | |
"IMPORT_4" : "", | |
"IMPORT_5" : "", | |
}, | |
}, | |
"tasks": [ | |
{ | |
"label": "swift: Build Debug", | |
"group": { | |
"kind" : "build", | |
"isDefault": true | |
}, | |
"type" : "shell", | |
"command": "swiftc", | |
"args": [ | |
"${PROJECTFILE}", | |
"-I","${OUTPUT}/${MODULE}", | |
"-L","${OUTPUT}/${MODULE}", | |
"-o","${OUTPUT}/${DEBUG}/${PROJECTNAME}", | |
"-working-directory","${cwd}", | |
"-target","${SYSTEM}", | |
"-gdwarf-types", | |
"-Onone", | |
"-g", | |
"-v", | |
"${IMPORT_1}","${IMPORT_2}","${IMPORT_3}","${IMPORT_4}","${IMPORT_5}", | |
], | |
"problemMatcher": [] | |
}, | |
{ | |
"label": "swift: Build Release", | |
"group": "build", | |
"type" : "shell", | |
"command": "swiftc", | |
"args": [ | |
"${PROJECTFILE}", | |
"-I","${OUTPUT}/${MODULE}", | |
"-L","${OUTPUT}/${MODULE}", | |
"-o","${OUTPUT}/${RELEASE}/${PROJECTNAME}", | |
"-working-directory","${cwd}", | |
"-target","${SYSTEM}", | |
// "-static-executable", | |
"-O", | |
"-gnone", | |
"-v", | |
"${IMPORT_1}","${IMPORT_2}","${IMPORT_3}","${IMPORT_4}","${IMPORT_5}", | |
], | |
"problemMatcher": [] | |
}, | |
{ | |
"label": "swift: Build Module", | |
"group": "build", | |
"type" : "shell", | |
"command": "swiftc", | |
"args": [ | |
"${PROJECTFILE}", | |
"-I","${OUTPUT}/${MODULE}", | |
"-L","${OUTPUT}/${MODULE}", | |
"-o","${OUTPUT}/${MODULE}/lib${PROJECTNAME}.dylib", // for macOS | |
"-working-directory","${cwd}", | |
"-target","${SYSTEM}", | |
"-emit-module", | |
"-emit-library", | |
// "-parse-as-library", | |
// "-module-name","${PROJECTNAME}", | |
"-Onone", | |
"-g", | |
"-v", | |
// "${IMPORT_1}","${IMPORT_2}","${IMPORT_3}","${IMPORT_4}","${IMPORT_5}", | |
], | |
"problemMatcher": [] | |
}, | |
{ | |
"label": "swift: Run Code (REPL)", | |
"group": "test", | |
"type" : "shell", | |
"command": "swift", | |
"args": [ | |
// REPL doesn't support custom modules | |
"${PROJECTFILE}", | |
"-I","${OUTPUT}/${MODULE}", | |
"-L","${OUTPUT}/${MODULE}", | |
"-working-directory","${cwd}", | |
"-target","${SYSTEM}", | |
], | |
"presentation": { | |
"reveal": "always", | |
"panel" : "shared", | |
"clear" : true, | |
"focus" : true, | |
}, | |
"problemMatcher": [] | |
}, | |
{ | |
"label": "swift: Run Executable", | |
"group": { | |
"kind" : "test", | |
"isDefault": true | |
}, | |
"type" : "shell", | |
"command": "${OUTPUT}/${DEBUG}/${PROJECTNAME}", | |
"args": [], | |
"presentation": { | |
"reveal": "always", | |
"panel" : "shared", | |
"clear" : true, | |
"focus" : true, | |
}, | |
"problemMatcher": [] | |
}, | |
{ | |
"label": "swift: Create Build Folders", | |
"type" : "shell", | |
"command": "mkdir", | |
"args": [ | |
"${OUTPUT}", | |
"${OUTPUT}/${DEBUG}", | |
"${OUTPUT}/${MODULE}", | |
"${OUTPUT}/${RELEASE}", | |
], | |
"presentation": { | |
"reveal": "silent", | |
}, | |
"problemMatcher": [] | |
}, | |
{ | |
"label": "swift: Clean Build Files", | |
"type" : "shell", | |
"command": "rm", | |
"args": [ | |
"-rf", | |
"${OUTPUT}/${DEBUG}/*", | |
"${OUTPUT}/${RELEASE}/*", | |
"${OUTPUT}/${PROJECTNAME}.*", | |
"main.dSYM", | |
"main", | |
], | |
"presentation": { | |
"reveal": "silent", | |
}, | |
"problemMatcher": [] | |
}, | |
{ | |
"label": "swift: Clean Module Files", | |
"type" : "shell", | |
"command": "rm", | |
"args": [ | |
"-rf", | |
"${OUTPUT}/${MODULE}/${PROJECTNAME}.o", | |
"${OUTPUT}/${MODULE}/${PROJECTNAME}.swiftdoc", | |
"${OUTPUT}/${MODULE}/${PROJECTNAME}.swiftmodule", | |
"${OUTPUT}/${MODULE}/lib${PROJECTNAME}.dylib", | |
"${OUTPUT}/${MODULE}/lib${PROJECTNAME}.dylib.dSYM", | |
], | |
"presentation": { | |
"reveal": "silent", | |
}, | |
"problemMatcher": [] | |
}, | |
{ // format code using google's swift-format | |
"label": "swift: Beautify File", | |
"type" : "shell", | |
"command": "${FORMATTER}", | |
"args": [ | |
"-i", | |
"-m","format", | |
"--configuration","${FORMATCONFIG}", | |
"${fileDirname}/${fileBasenameNoExtension}.swift", | |
], | |
"presentation": { | |
"reveal": "silent", | |
}, | |
"problemMatcher": [] | |
}, | |
] | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
// See https://go.microsoft.com/fwlink/?LinkId=733558 | |
// for the documentation about the tasks.json format | |
"version": "2.0.0", | |
"options": { | |
"cwd": "${workspaceFolder}", | |
"env": { | |
// for folder based swift project (SPM or xcode) | |
"PROJECTFILE" : "${workspaceFolderBasename}/*.swift", | |
"PROJECTNAME" : "${workspaceFolderBasename}", | |
"OUTPUT" : "Build/Products", | |
"DEBUG" : "Debug", | |
"MODULE" : "Module", | |
"RELEASE" : "Release", | |
"EXTENSION" : ".cgi", // set this to .cgi for web app | |
"SYSTEM" : "x86_64-apple-macosx10.10", | |
"FORMATTER" : "${workspaceFolder}/swift-format", | |
"FORMATCONFIG": "${workspaceFolder}/swift-format.json", | |
// import custom module files (module name with -l prefix) | |
"IMPORT_1" : "-lhelper", | |
"IMPORT_2" : "", | |
"IMPORT_3" : "", | |
"IMPORT_4" : "", | |
"IMPORT_5" : "", | |
}, | |
}, | |
"tasks": [ | |
{ | |
"label": "swift: Build Debug", | |
"group": { | |
"kind" : "build", | |
"isDefault": true | |
}, | |
"type" : "shell", | |
"command": "swiftc", | |
"args": [ | |
"${PROJECTFILE}", | |
"-I","${OUTPUT}/${MODULE}", | |
"-L","${OUTPUT}/${MODULE}", | |
"-o","${OUTPUT}/${DEBUG}/${PROJECTNAME}", | |
"-working-directory","${cwd}", | |
"-target","${SYSTEM}", | |
"-gdwarf-types", | |
"-Onone", | |
"-g", | |
"-v", | |
"${IMPORT_1}","${IMPORT_2}","${IMPORT_3}","${IMPORT_4}","${IMPORT_5}", | |
], | |
"problemMatcher": [] | |
}, | |
{ | |
"label": "swift: Build Release", | |
"group": "build", | |
"type" : "shell", | |
"command": "swiftc", | |
"args": [ | |
"${PROJECTFILE}", | |
"-I","${OUTPUT}/${MODULE}", | |
"-L","${OUTPUT}/${MODULE}", | |
"-o","${OUTPUT}/${RELEASE}/${PROJECTNAME}", | |
"-working-directory","${cwd}", | |
"-target","${SYSTEM}", | |
// "-static-executable", | |
"-O", | |
"-gnone", | |
"-v", | |
"${IMPORT_1}","${IMPORT_2}","${IMPORT_3}","${IMPORT_4}","${IMPORT_5}", | |
], | |
"problemMatcher": [] | |
}, | |
{ | |
"label": "swift: Build Module", | |
"group": "build", | |
"type" : "shell", | |
"command": "swiftc", | |
"args": [ | |
"${relativeFile}", | |
"-I","${OUTPUT}/${MODULE}", | |
"-L","${OUTPUT}/${MODULE}", | |
"-o","${OUTPUT}/${MODULE}/lib${fileBasenameNoExtension}.dylib", // for macOS | |
"-working-directory","${cwd}", | |
"-target","${SYSTEM}", | |
"-emit-module", | |
"-emit-library", | |
// "-parse-as-library", | |
// "-module-name","${fileBasenameNoExtension}", | |
"-Onone", | |
"-g", | |
"-v", | |
// "${IMPORT_1}","${IMPORT_2}","${IMPORT_3}","${IMPORT_4}","${IMPORT_5}", | |
], | |
"problemMatcher": [] | |
}, | |
{ | |
"label": "swift: Run Executable", | |
"group": { | |
"kind" : "test", | |
"isDefault": true | |
}, | |
"type" : "shell", | |
"command": "${OUTPUT}/${DEBUG}/${PROJECTNAME}", | |
"args": [], | |
"presentation": { | |
"reveal": "always", | |
"panel" : "shared", | |
"clear" : true, | |
"focus" : true, | |
}, | |
"problemMatcher": [] | |
}, | |
{ | |
"label": "swift: Create Build Folders", | |
"type" : "shell", | |
"command": "mkdir", | |
"args": [ | |
"Build", | |
"${OUTPUT}", | |
"${OUTPUT}/${DEBUG}", | |
"${OUTPUT}/${MODULE}", | |
"${OUTPUT}/${RELEASE}", | |
], | |
"presentation": { | |
"reveal": "silent", | |
}, | |
"problemMatcher": [] | |
}, | |
{ | |
"label": "swift: Clean Build Files", | |
"type" : "shell", | |
"command": "rm", | |
"args": [ | |
"-rf", | |
"${OUTPUT}/${DEBUG}/*", | |
"${OUTPUT}/${RELEASE}/*", | |
"${OUTPUT}/${PROJECTNAME}.*", | |
"main.dSYM", | |
"main", | |
], | |
"presentation": { | |
"reveal": "silent", | |
}, | |
"problemMatcher": [] | |
}, | |
{ | |
"label": "swift: Clean Module Files", | |
"type" : "shell", | |
"command": "rm", | |
"args": [ | |
"-rf", | |
"${OUTPUT}/${MODULE}/${fileBasenameNoExtension}.o", | |
"${OUTPUT}/${MODULE}/${fileBasenameNoExtension}.swiftdoc", | |
"${OUTPUT}/${MODULE}/${fileBasenameNoExtension}.swiftmodule", | |
"${OUTPUT}/${MODULE}/lib${fileBasenameNoExtension}.dylib", | |
"${OUTPUT}/${MODULE}/lib${fileBasenameNoExtension}.dylib.dSYM", | |
], | |
"presentation": { | |
"reveal": "silent", | |
}, | |
"problemMatcher": [] | |
}, | |
{ // format code using google's swift-format | |
"label": "swift: Beautify File", | |
"type" : "shell", | |
"command": "${FORMATTER}", | |
"args": [ | |
"-i", | |
"-m","format", | |
"--configuration","${FORMATCONFIG}", | |
"${fileDirname}/${fileBasenameNoExtension}.swift", | |
], | |
"presentation": { | |
"reveal": "silent", | |
}, | |
"problemMatcher": [] | |
}, | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment