mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-10-23 16:48:53 +00:00
Moved nib2cib and capp to jake.
Reviewed by me.
This commit is contained in:
1 parent
ffd99e3ed7
commit
714cd402df
8 files changed
+147
-52
No files matched your search
@@ -7,4 +7,9 @@ exports.bundle = BUNDLE_TASK.bundle;
|
||||
var FRAMEWORK_TASK = require("objective-j/jake/frameworktask");
|
||||
|
||||
exports.FrameworkTask = FRAMEWORK_TASK.FrameworkTask;
|
||||
exports.framework = FRAMEWORK_TASK.framework;
|
||||
exports.framework = FRAMEWORK_TASK.framework;
|
||||
|
||||
var APPLICATION_TASK = require("objective-j/jake/applicationtask");
|
||||
|
||||
exports.ApplicationTask = APPLICATION_TASK.ApplicationTask;
|
||||
exports.app = APPLICATION_TASK.app;
|
||||
@@ -3,7 +3,7 @@ BundleTask = require("objective-j/jake/bundletask").BundleTask;
|
||||
|
||||
function ApplicationTask(aName)
|
||||
{
|
||||
ApplicationTask.apply(this, arguments);
|
||||
BundleTask.apply(this, arguments);
|
||||
}
|
||||
|
||||
ApplicationTask.__proto__ = BundleTask;
|
||||
@@ -16,7 +16,7 @@ ApplicationTask.prototype.packageTask = function()
|
||||
|
||||
exports.ApplicationTask = ApplicationTask;
|
||||
|
||||
exports.application = function(aName, aFunction)
|
||||
exports.app = function(aName, aFunction)
|
||||
{
|
||||
// No .apply necessary because the parameters aren't variable.
|
||||
return ApplicationTask.defineTask(aName, aFunction);
|
||||
|
||||
File renamed without changes.
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env narwhal
|
||||
|
||||
require("../common.jake");
|
||||
|
||||
// nib2cib has to come before capp since capp uses nib2cib
|
||||
subtasks(["nib2cib", "capp"/*, "bake", "press"*/], ["build"/*, "clean", "clobber"*/]);
|
||||
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
var FILE = require("file");
|
||||
|
||||
require ("../../common.jake");
|
||||
|
||||
|
||||
app ("capp", function(cappTask)
|
||||
{
|
||||
cappTask.setBuildIntermediatesPath(FILE.join($BUILD_DIR, "capp.build", $CONFIGURATION))
|
||||
cappTask.setBuildPath($COMMONJS_PRODUCT_LIB);
|
||||
|
||||
cappTask.setIdentifier("com.280n.capp");
|
||||
cappTask.setLicense(BundleTask.License.LGPL_v2_1);
|
||||
cappTask.setVersion("0.7.1");
|
||||
// t.author = '280 North, Inc.'
|
||||
// t.email = 'feedback @nospam@ 280north.com'
|
||||
// t.summary = 'Setup up Cappuccino projects'
|
||||
cappTask.setSources(FILE.glob("*.j"));
|
||||
cappTask.setResources(["Templates"]);
|
||||
cappTask.setIncludesNibsAndXibs(true);
|
||||
cappTask.setPlatforms([BundleTask.Platform.CommonJS]);
|
||||
|
||||
if ($CONFIGURATION === "Release")
|
||||
cappTask.setCompilerFlags("-O");
|
||||
else
|
||||
cappTask.setCompilerFlags("-DDEBUG -g");
|
||||
});
|
||||
|
||||
$COMMONJS_CAPP_BIN_PRODUCT = FILE.join($COMMONJS_PRODUCT_BIN, 'nib2cib');
|
||||
|
||||
// executable in environment directory
|
||||
filedir($COMMONJS_CAPP_BIN_PRODUCT, ["capp"], function()
|
||||
{
|
||||
make_objj_executable($COMMONJS_CAPP_BIN_PRODUCT);
|
||||
});
|
||||
|
||||
task ("build", ["capp", $COMMONJS_CAPP_BIN_PRODUCT]);
|
||||
|
||||
/*
|
||||
CLOBBER.include($ENVIRONMENT_BIN_PRODUCT, $ENVIRONMENT_LIB_PRODUCT)
|
||||
*/
|
||||
@@ -1 +0,0 @@
|
||||
280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;4E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;7E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;9E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;2;10E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;2;11E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;2;12E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;2;13E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;2;14E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;16E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;18E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;132E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;138E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;3;151E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;156E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;180E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;3;199E;D;K;6;CP$UIDd;3;200E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;203E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;205E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;207E;D;K;6;CP$UIDd;3;208E;D;K;6;CP$UIDd;3;209E;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;211E;D;K;6;CLine truncated
|
||||
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env narwhal
|
||||
|
||||
var FILE = require("file");
|
||||
|
||||
require("../../common.jake");
|
||||
|
||||
|
||||
app ("nib2cib", function(nib2cibTask)
|
||||
{
|
||||
nib2cibTask.setBuildIntermediatesPath(FILE.join($BUILD_DIR, "nib2cib.build", $CONFIGURATION))
|
||||
nib2cibTask.setBuildPath($COMMONJS_PRODUCT_LIB);
|
||||
|
||||
nib2cibTask.setIdentifier("com.280n.nib2cib");
|
||||
nib2cibTask.setLicense(BundleTask.License.LGPL_v2_1);
|
||||
nib2cibTask.setVersion("0.7.1");
|
||||
// t.author = '280 North, Inc.'
|
||||
// t.email = 'feedback @nospam@ 280north.com'
|
||||
// t.summary = 'nib2cib converts Cocoa nib and xibs to Cappuccino cibs'
|
||||
nib2cibTask.setSources(FILE.glob("*.j"));// t.sources = FileList['**/*.j']
|
||||
nib2cibTask.setResources(FILE.glob("Resources/*"));
|
||||
nib2cibTask.setPlatforms([BundleTask.Platform.CommonJS]);
|
||||
nib2cibTask.setFlattensSources(true);
|
||||
|
||||
if ($CONFIGURATION === "Release")
|
||||
nib2cibTask.setCompilerFlags("-O");
|
||||
else
|
||||
nib2cibTask.setCompilerFlags("-DDEBUG -g");
|
||||
});
|
||||
|
||||
$COMMONJS_NIB2CIB_BIN_PRODUCT = FILE.join($COMMONJS_PRODUCT_BIN, 'nib2cib');
|
||||
|
||||
// executable in environment directory
|
||||
filedir($COMMONJS_NIB2CIB_BIN_PRODUCT, ["nib2cib"], function()
|
||||
{
|
||||
make_objj_executable($COMMONJS_NIB2CIB_BIN_PRODUCT);
|
||||
});
|
||||
|
||||
task ("build", ["nib2cib", $COMMONJS_NIB2CIB_BIN_PRODUCT]);
|
||||
|
||||
/*
|
||||
CLOBBER.include($ENVIRONMENT_BIN_PRODUCT, $ENVIRONMENT_LIB_PRODUCT )*/
|
||||
+50
-48
@@ -11,28 +11,6 @@ global.directory = Jake.directory;
|
||||
//global.file = Jake.file;
|
||||
global.filedir = Jake.filedir;
|
||||
|
||||
/*
|
||||
def gem_command
|
||||
case RUBY_PLATFORM
|
||||
when /win32/
|
||||
'gem.bat'
|
||||
when /java/
|
||||
'jruby -S gem'
|
||||
else
|
||||
'gem'
|
||||
end
|
||||
end
|
||||
|
||||
begin
|
||||
require 'rubygems'
|
||||
require 'plist'
|
||||
rescue LoadError
|
||||
puts 'Plist gem not installed, installing...'
|
||||
cmd = "#{gem_command} install plist"
|
||||
puts cmd
|
||||
puts %x(#{cmd})
|
||||
end
|
||||
*/
|
||||
// Read in and set up development environment variables.
|
||||
if (!ENV["BUILD_PATH"])
|
||||
{
|
||||
@@ -54,8 +32,13 @@ ENV["BUILD_PATH"] = FILE.absolute(ENV["BUILD_PATH"]);
|
||||
if (!ENV["CONFIG"])
|
||||
ENV["CONFIG"] = "Release";
|
||||
|
||||
global.$CONFIGURATION = ENV['CONFIG'];
|
||||
global.$BUILD_DIR = ENV['BUILD_PATH'];
|
||||
global.$CONFIGURATION = ENV['CONFIG'];
|
||||
global.$BUILD_DIR = ENV['BUILD_PATH'];
|
||||
global.$COMMONJS_PRODUCT = FILE.join($BUILD_DIR, $CONFIGURATION, "CommonJS", "objective-j");
|
||||
global.$COMMONJS_PRODUCT_BIN = FILE.join($COMMONJS_PRODUCT, "bin");
|
||||
global.$COMMONJS_PRODUCT_LIB = FILE.join($COMMONJS_PRODUCT, "lib");
|
||||
|
||||
|
||||
global.$PRODUCT_DIR = FILE.join($BUILD_DIR, $CONFIGURATION);
|
||||
global.$ENVIRONMENT_DIR = FILE.join($BUILD_DIR, $CONFIGURATION, 'env');
|
||||
global.$ENVIRONMENT_NARWHAL_BIN_DIR= FILE.join($ENVIRONMENT_DIR, 'bin', '');
|
||||
@@ -66,17 +49,28 @@ global.$ENVIRONMENT_FRAMEWORKS_DIR = FILE.join($ENVIRONMENT_LIB_DIR, 'Frameworks
|
||||
global.$HOME_DIR = FILE.absolute(FILE.dirname(module.path));
|
||||
global.$LICENSE_FILE = FILE.absolute(FILE.join(FILE.dirname(module.path), 'LICENSE'));
|
||||
|
||||
var objectiveJLibJS = FILE.join($BUILD_DIR, $CONFIGURATION, "CommonJS", "objective-j", "lib-js");
|
||||
|
||||
if (FILE.exists(objectiveJLibJS))
|
||||
if(!global.COMMON_DO_ONCE)
|
||||
{
|
||||
require.paths.unshift(objectiveJLibJS);
|
||||
global.COMMON_DO_ONCE = true;
|
||||
|
||||
var OBJECTIVE_J_JAKE = require("objective-j/jake");
|
||||
var objectiveJBin = FILE.join($BUILD_DIR, $CONFIGURATION, "CommonJS", "objective-j", "bin"),
|
||||
objectiveJLibJS = FILE.join($BUILD_DIR, $CONFIGURATION, "CommonJS", "objective-j", "lib-js");
|
||||
|
||||
global.bundle = OBJECTIVE_J_JAKE.bundle;
|
||||
global.framework = OBJECTIVE_J_JAKE.framework;
|
||||
global.BundleTask = OBJECTIVE_J_JAKE.BundleTask;
|
||||
if (FILE.exists(objectiveJLibJS))
|
||||
{
|
||||
require.paths.unshift(objectiveJLibJS);
|
||||
|
||||
var OBJECTIVE_J_JAKE = require("objective-j/jake");
|
||||
|
||||
global.app = OBJECTIVE_J_JAKE.app;
|
||||
global.bundle = OBJECTIVE_J_JAKE.bundle;
|
||||
global.framework = OBJECTIVE_J_JAKE.framework;
|
||||
|
||||
global.BundleTask = OBJECTIVE_J_JAKE.BundleTask;
|
||||
}
|
||||
|
||||
if (FILE.exists(objectiveJBin))
|
||||
OS.system("PATH=$PATH:" + objectiveJBin);
|
||||
}
|
||||
|
||||
global.rm_rf = function(/*String*/ aFilename)
|
||||
@@ -87,6 +81,7 @@ global.rm_rf = function(/*String*/ aFilename)
|
||||
|
||||
global.cp_r = function(/*String*/ from, /*String*/ to)
|
||||
{
|
||||
rm_rf(to);
|
||||
FILE.copyTree(from, to);
|
||||
}
|
||||
|
||||
@@ -95,14 +90,6 @@ global.cp = function(/*String*/ from, /*String*/ to)
|
||||
FILE.copy(from, to);
|
||||
}
|
||||
|
||||
if(!global.COMMON_DO_ONCE)
|
||||
{
|
||||
COMMON_DO_ONCE = true
|
||||
|
||||
// $LOAD_PATH << File.join($HOME_DIR, 'Tools', 'Rake', 'lib')
|
||||
ENV["PATH"] = $ENVIRONMENT_NARWHAL_BIN_DIR + ":" + ENV["PATH"];
|
||||
}
|
||||
|
||||
//require 'objective-j'
|
||||
|
||||
function serializedENV()
|
||||
@@ -143,14 +130,14 @@ global.executableExists = function(/*String*/ aFileName)
|
||||
});
|
||||
}
|
||||
|
||||
$OBJJ_TEMPLATE_EXECUTABLE = FILE.join($HOME_DIR, 'Tools', 'Rake', 'lib', 'objj-executable')
|
||||
/*
|
||||
def make_objj_executable(path)
|
||||
cp($OBJJ_TEMPLATE_EXECUTABLE, path)
|
||||
File.chmod(0755, path)
|
||||
symlink_executable(path)
|
||||
end
|
||||
*/
|
||||
$OBJJ_TEMPLATE_EXECUTABLE = FILE.join($HOME_DIR, "Objective-J", "CommonJS", "objj-executable");
|
||||
|
||||
global.make_objj_executable = function(aPath)
|
||||
{
|
||||
cp($OBJJ_TEMPLATE_EXECUTABLE, aPath);
|
||||
FILE.chmod(aPath, 0755);
|
||||
}
|
||||
|
||||
global.symlink_executable = function(source)
|
||||
{
|
||||
relative = FILE.relative($ENVIRONMENT_NARWHAL_BIN_DIR, source);
|
||||
@@ -219,3 +206,18 @@ function spawnJake(/*String*/ aTaskName)
|
||||
//system %{#{$serialized_env} #{$0} #{task_name}}
|
||||
//rake abort if ($? != 0)
|
||||
}
|
||||
|
||||
global.subtasks = function(subprojects, taskNames)
|
||||
{
|
||||
taskNames.forEach(function(aTaskName)
|
||||
{
|
||||
var subtaskName = taskNames + "_subprojects";
|
||||
|
||||
task (aTaskName, [subtaskName]);
|
||||
|
||||
task (subtaskName, function()
|
||||
{
|
||||
subjake(subprojects, aTaskName);
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user