From 1bd18caa9a8da0037e9f55098d146cbc18dcb115 Mon Sep 17 00:00:00 2001 From: shmyga Date: Wed, 25 Mar 2020 21:03:46 +0300 Subject: [PATCH] [project] add cpp target --- haxetool/core.js | 1 + haxetool/haxe.js | 15 +++++++++++++-- haxetool/project.js | 13 +++++++++++++ package.json | 2 +- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/haxetool/core.js b/haxetool/core.js index b56780b..8619afe 100644 --- a/haxetool/core.js +++ b/haxetool/core.js @@ -16,6 +16,7 @@ const Platform = { WINDOWS: 'windows', ANDROID: 'android', NEKO: 'neko', + CPP: 'cpp', }; diff --git a/haxetool/haxe.js b/haxetool/haxe.js index 9e4dcb7..fcc368d 100755 --- a/haxetool/haxe.js +++ b/haxetool/haxe.js @@ -143,11 +143,22 @@ class Haxe extends Sdk { args.push('-debug'); } const target = path.resolve(buildDir, platform, 'bin'); - fse.emptyDirSync(target); + if (platform !== 'cpp') { + fse.emptyDirSync(target); + } for (const asset of config.assets) { fse.copySync(asset, path.join(target, asset.split("/").pop())); } - return this.haxe(args).then(() => vfs.src(`${target}/**/*`)); + const result = { + 'cpp': `${config.meta.filename}/${config.main.split('.').pop()}${debug ? '-debug' : ''}`, + }[platform] || '**/*'; + return this.haxe(args).then(() => { + let r = vfs.src(`${target}/${result}`); + if (platform === 'cpp') { + r = r.pipe(rename(config.meta.filename)); + } + return r; + }); } install(packages) { diff --git a/haxetool/project.js b/haxetool/project.js index 4be8f46..320d31d 100755 --- a/haxetool/project.js +++ b/haxetool/project.js @@ -392,6 +392,19 @@ class LinuxRunner extends Runner { Runner.register(Platform.LINUX, LinuxRunner); +/** + * + */ +class CPPRunner extends LinuxRunner { + + constructor(config, debug) { + super(config, debug); + this.platform = Platform.CPP + } +} + +Runner.register(Platform.CPP, CPPRunner); + /** * */ diff --git a/package.json b/package.json index 9b4970b..e1d0c51 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gulp-haxetool", - "version": "0.1.6", + "version": "0.1.7", "description": "HaXe Tool for Gulp", "main": "index.js", "dependencies": {