You need to apply this patch:
Index: src/sdk/scripting/bindings/scriptbindings.cpp
===================================================================
--- src/sdk/scripting/bindings/scriptbindings.cpp (revision 10780)
+++ src/sdk/scripting/bindings/scriptbindings.cpp (working copy)
@@ -26,6 +26,7 @@
#include "scriptbindings.h"
#include <cbexception.h>
#include "sc_base_types.h"
+#include "projectloader_hooks.h"
namespace ScriptBindings
{
@@ -265,6 +266,24 @@ namespace ScriptBindings
}
return sa.ThrowError("Invalid arguments to \"cbProject::ExportTargetAsProject\"");
}
+
+ SQInteger cbProject_CallHooks(HSQUIRRELVM v)
+ {
+ StackHandler sa(v);
+ int paramCount = sa.GetParamCount();
+ if (paramCount == 2)
+ {
+ cbProject* prj = SqPlus::GetInstance<cbProject,false>(v, 1);
+ if (!prj)
+ return sa.ThrowError("Null project in \"cbProject::CallHooks\"");
+ bool isLoading = (sa.GetBool(2) != 0);
+
+ ProjectLoaderHooks::CallHooks(prj, prj->GetExtensionsNode()->ToElement(), isLoading);
+ return 1;
+ }
+ return sa.ThrowError("Invalid arguments to \"cbProject::CallHooks\"");
+ }
+
SQInteger ProjectManager_AddFileToProject(HSQUIRRELVM v)
{
StackHandler sa(v);
@@ -582,6 +601,7 @@ namespace ScriptBindings
func(&cbProject::GetCheckForExternallyModifiedFiles, "GetCheckForExternallyModifiedFiles").
func(&cbProject::ShowNotes, "ShowNotes").
func(&cbProject::AddToExtensions, "AddToExtensions").
+ staticFuncVarArgs(cbProject_CallHooks, "CallHooks", "*").
func(&cbProject::DefineVirtualBuildTarget, "DefineVirtualBuildTarget").
func(&cbProject::HasVirtualBuildTarget, "HasVirtualBuildTarget").
func(&cbProject::RemoveVirtualBuildTarget, "RemoveVirtualBuildTarget").
And then use code like:
project.AddToExtensions(_T("debugger/remote_debugging:target=Debug"));
project.AddToExtensions(_T("debugger/remote_debugging/options:conn_type=0"));
project.AddToExtensions(_T("debugger/remote_debugging/options:serial_baud=115200"));
project.AddToExtensions(_T("debugger/remote_debugging/options:ip_address=127.0.0.1"));
project.AddToExtensions(_T("debugger/remote_debugging/options:ip_port=3333"));
project.CallHooks(true);
I won't apply this patch in trunk, because there is a plan to replace the script bindings code with a newer binding library, so I don't want to cause conflicts.
Also I have plans to remove the whole project hooks in the future and thus I'll have to remove this call, which means I'll have to break users scripts.