diff --git a/.gitignore b/.gitignore index 75254f3..f89c12a 100644 --- a/.gitignore +++ b/.gitignore @@ -114,4 +114,7 @@ distApp # discord_voice debug discord-last-webrtc_0 -discord-webrtc_0 \ No newline at end of file +discord-webrtc_0 + +# macOS Stuff +.DS_Store \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 7a73a41..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,2 +0,0 @@ -{ -} \ No newline at end of file diff --git a/afterbuild.js b/afterbuild.js index b954902..7022935 100644 --- a/afterbuild.js +++ b/afterbuild.js @@ -12,6 +12,9 @@ winZip.outputStream.pipe(fs.createWriteStream(__path.join(__dirname, "builds", " const linuxZip = new yazl.ZipFile() linuxZip.outputStream.pipe(fs.createWriteStream(__path.join(__dirname, "builds", "lightcord-linux-x64.zip"))) +const darwinZip = new yazl.ZipFile() +darwinZip.outputStream.pipe(fs.createWriteStream(__path.join(__dirname, "builds", "lightcord-darwin-x64.zip"))) + async function processNextDir(dir, zip, bpath, platform){ if(!bpath)bpath = dir if(dir.replace(bpath, ""))zip.addEmptyDirectory(dir.replace(bpath, "").slice(1)) @@ -24,9 +27,14 @@ async function processNextDir(dir, zip, bpath, platform){ if(!path.includes("node_modules")){ if(platform === "win"){ if(file.name.endsWith("_linux.node"))return + if(file.name.endsWith("_darwin.node"))return }else if(platform === "lin"){ if(file.name.endsWith(".node")){ if(!file.name.endsWith("_linux.node"))return + }else if(platform === "dar"){ + if(file.name.endsWith(".node")){ + if(!file.name.endsWith("_darwin.node"))return + } } if(file.name.endsWith(".dll"))return } @@ -51,4 +59,10 @@ processNextDir(__path.join(__dirname, "builds", "lightcord-linux-x64"), linuxZip .then(() => { console.log(`Zipped linux.`) linuxZip.end() +}) + +processNextDir(__path.join(__dirname, "builds", "lightcord-darwin-x64", darwinZip, undefined, "dar")) +.then(()=> { + console.log('Zipped Darwin') + darwinZip.end() }) \ No newline at end of file diff --git a/app_icon_darwin.icns b/app_icon_darwin.icns new file mode 100644 index 0000000..0cbfe93 Binary files /dev/null and b/app_icon_darwin.icns differ diff --git a/build.js b/build.js index 237ed90..9403ab3 100644 --- a/build.js +++ b/build.js @@ -221,6 +221,7 @@ async function main(){ let packageJSON = require("./package.json") packageJSON.scripts["build:electron_linux"] = packageJSON.scripts["build:electron_linux"].replace("./distApp", ".") packageJSON.scripts["build:electron_win"] = packageJSON.scripts["build:electron_win"].replace("./distApp", ".") + packageJSON.scripts["build:electron_darwin"] = packageJSON.scripts["build:electron_darwin"].replace("./distApp", ".") fs.writeFileSync(path.join(__dirname, "distApp", "package.json"), JSON.stringify(packageJSON), "utf8") diff --git a/modules/discord_cloudsync/discord_cloudsync_darwin.node b/modules/discord_cloudsync/discord_cloudsync_darwin.node new file mode 100644 index 0000000..c00a81d Binary files /dev/null and b/modules/discord_cloudsync/discord_cloudsync_darwin.node differ diff --git a/modules/discord_cloudsync/index.js b/modules/discord_cloudsync/index.js index 8db5585..1052872 100644 --- a/modules/discord_cloudsync/index.js +++ b/modules/discord_cloudsync/index.js @@ -2,7 +2,9 @@ const EventEmitter = require('events'); let addon = './discord_cloudsync.node' if(process.platform === "linux"){ addon = './discord_cloudsync_linux.node' -} +}else if(process.platform === "darwin") { + addon = './discord_cloudsync_darwin.node' +} const {CloudSync: CloudSyncNative} = require(addon); function makeCallback(resolve, reject) { diff --git a/modules/discord_dispatch/discord_dispatch_darwin.node b/modules/discord_dispatch/discord_dispatch_darwin.node new file mode 100644 index 0000000..29e1061 Binary files /dev/null and b/modules/discord_dispatch/discord_dispatch_darwin.node differ diff --git a/modules/discord_dispatch/index.js b/modules/discord_dispatch/index.js index 312ef26..0eaa9ee 100644 --- a/modules/discord_dispatch/index.js +++ b/modules/discord_dispatch/index.js @@ -1 +1 @@ -module.exports = require(process.platform === "linux" ? './discord_dispatch_linux.node' : './discord_dispatch.node'); +module.exports = require((process.platform === "linux") ? './discord_dispatch_linux.node' : (process.platform === "darwin") ? './discord_dispatch_darwin.node' : './discord_dispatch.node'); diff --git a/modules/discord_erlpack/discord_erlpack_darwin.node b/modules/discord_erlpack/discord_erlpack_darwin.node new file mode 100644 index 0000000..8b05cd8 Binary files /dev/null and b/modules/discord_erlpack/discord_erlpack_darwin.node differ diff --git a/modules/discord_erlpack/index.js b/modules/discord_erlpack/index.js index c99a2bc..da3e9b1 100644 --- a/modules/discord_erlpack/index.js +++ b/modules/discord_erlpack/index.js @@ -1 +1 @@ -module.exports = require(process.platform === "linux" ? './discord_erlpack_linux.node' : './discord_erlpack.node'); +module.exports = require((process.platform === "linux") ? './discord_erlpack_linux.node' : (process.platform === "darwin") ? './discord_erlpack_darwin.node' : './discord_erlpack.node'); diff --git a/modules/discord_game_utils/discord_game_utils_darwin.node b/modules/discord_game_utils/discord_game_utils_darwin.node new file mode 100644 index 0000000..7fa4824 Binary files /dev/null and b/modules/discord_game_utils/discord_game_utils_darwin.node differ diff --git a/modules/discord_game_utils/index.js b/modules/discord_game_utils/index.js index f032cb7..600c072 100644 --- a/modules/discord_game_utils/index.js +++ b/modules/discord_game_utils/index.js @@ -1 +1 @@ -module.exports = require(process.platform === "linux" ? './discord_game_utils_linux.node' : './discord_game_utils.node'); +module.exports = require((process.platform === "linux") ? './discord_game_utils_linux.node' : (process.platform === "darwin") ? './discord_game_utils_darwin.node' : './discord_game_utils.node'); diff --git a/modules/discord_modules/70c5cd3e50/2/discord_game_sdk.dylib b/modules/discord_modules/70c5cd3e50/2/discord_game_sdk.dylib new file mode 100644 index 0000000..2f5ee2e Binary files /dev/null and b/modules/discord_modules/70c5cd3e50/2/discord_game_sdk.dylib differ diff --git a/modules/discord_modules/discord_modules_darwin.node b/modules/discord_modules/discord_modules_darwin.node new file mode 100644 index 0000000..cca5628 Binary files /dev/null and b/modules/discord_modules/discord_modules_darwin.node differ diff --git a/modules/discord_modules/index.js b/modules/discord_modules/index.js index 87d084d..60380a0 100644 --- a/modules/discord_modules/index.js +++ b/modules/discord_modules/index.js @@ -1 +1 @@ -module.exports = require(process.platform === "linux" ? './discord_modules_linux.node' : './discord_modules.node'); +module.exports = require((process.platform === "linux") ? './discord_modules_linux.node' : (process.platform === "darwin") ? './discord_modules_darwin.node' : './discord_modules.node'); diff --git a/modules/discord_utils/discord_utils_darwin.node b/modules/discord_utils/discord_utils_darwin.node new file mode 100644 index 0000000..ba8954f Binary files /dev/null and b/modules/discord_utils/discord_utils_darwin.node differ diff --git a/modules/discord_utils/index.js b/modules/discord_utils/index.js index 2ac18e8..39d69bd 100644 --- a/modules/discord_utils/index.js +++ b/modules/discord_utils/index.js @@ -4,6 +4,8 @@ const superagent = require('superagent'); let addon = './discord_utils.node' if(process.platform === "linux"){ addon = './discord_utils_linux.node' +} else if (process.platform === "darwin"){ + addon = './discord_utils_darwin.node' } module.exports = require(addon); diff --git a/modules/discord_voice/discord_voice_darwin.node b/modules/discord_voice/discord_voice_darwin.node new file mode 100644 index 0000000..f1e29d4 Binary files /dev/null and b/modules/discord_voice/discord_voice_darwin.node differ diff --git a/modules/discord_voice/index.js b/modules/discord_voice/index.js index 2ce9395..7868512 100644 --- a/modules/discord_voice/index.js +++ b/modules/discord_voice/index.js @@ -1,4 +1,4 @@ -const VoiceEngine = require(process.platform === "linux" ? './discord_voice_linux.node' : './discord_voice.node'); +const VoiceEngine = require((process.platform === "linux") ? './discord_voice_linux.node' : (process.platform === "darwin") ? './discord_voice_darwin.node' : './discord_voice.node'); const ChildProcess = require('child_process'); const path = require('path'); const yargs = require('yargs'); diff --git a/modules/discord_voice/libopenh264.4.dylib b/modules/discord_voice/libopenh264.4.dylib new file mode 100644 index 0000000..1c612dd Binary files /dev/null and b/modules/discord_voice/libopenh264.4.dylib differ diff --git a/package.json b/package.json index e273d2f..7f9c8f9 100644 --- a/package.json +++ b/package.json @@ -8,9 +8,10 @@ "test": "npm run compile && electron .", "run": "electron .", "build": "npm run build:minify && npm run build:electron && npm run build:after", - "build:electron": "npm run build:electron_win && npm run build:electron_linux", - "build:electron_win": "electron-packager ./distApp --ignore=\"(distApp|builds|\\.ts|\\.so\\.4)\" --arch=ia32 --win32metadata.ProductName=\"Lightcord\" --win32metadata.CompanyName=\"Lightcord\" --protocol=discord --platform=\"win32\" --out=builds --icon=app.ico --executable-name=\"Lightcord\" --asar.unpack=*.{node,dll} --overwrite", - "build:electron_linux": "electron-packager ./distApp --ignore=\"(distApp|builds|\\.ts|\\.dll)\" --arch=x64 --protocol=discord --platform=\"linux\" --out=builds --icon=app.ico --executable-name=\"Lightcord\" --asar.unpack=*.{node,so.4} --overwrite", + "build:electron": "npm run build:electron_win && npm run build:electron_linux && npm run build:electron_darwin", + "build:electron_win": "electron-packager ./distApp --ignore=\"(distApp|builds|\\.ts|\\.so\\.4)\" --arch=ia32 --win32metadata.ProductName=\"Lightcord\" --win32metadata.CompanyName=\"Lightcord\" --protocol=discord --platform=\"win32\" --out=builds --icon=app.ico --executable-name=\"Lightcord\" --asar.unpack='*.{node,dll}' --overwrite", + "build:electron_linux": "electron-packager ./distApp --ignore=\"(distApp|builds|\\.ts|\\.dll)\" --arch=x64 --protocol=discord --platform=\"linux\" --out=builds --icon=app.ico --executable-name=\"Lightcord\" --asar.unpack='*.{node,so.4}' --overwrite", + "build:electron_darwin": "electron-packager ./distApp --ignore\"(distApp|builds|\\.ts\\.so\\.4\\.dll )\" --arch=x64 --protocol=discord --platform=\"darwin\" --out=builds --icon=app_icon_darwin.icns --executable-name=\"Lightcord\" --asar.unpack='*.{node,dylib}' --overwrite", "build:minify": "node build.js", "build:after": "node afterbuild.js", "devInstall": "npm i --save-dev --arch=ia32 electron@8.5.0 && node installSubModules.js && echo \"Everything is installed. You should be able to do `npm run test` to compile everything and launch.\"",