node-gyp-build mac系统中函数调用流程

33 阅读1分钟

最近接触node-gyp交叉编译,在mac上使用abandonware/noble,从来没接触过node-gyp,跟踪下代码,得到以下的随笔。

日志打印

.mm文件打印日志

#include <iostream>

std::cout << "scan 3333111" << std::endl;
NSLog(@"[dcBoxesFound count]: %lu", [dcBoxesFound count]);

.cc文件打印日志

#include <iostream>
std::cout << "Emit::RadioState 执行" << std::endl;

.js文件打印日志

console.log(`lib/noble.js this.emit('stateChange', state);${state}`);

调用链

后台运行-事件响应掉用

image.png

  • 函数流转在文件中的流程是: ble_manager.mm --> callback.cc --> node.js ---> test.js

发送-响应模式调用

image.png

  • 函数流转在文件中的流程是: test.js --> node.js --> node_mac.mm --> ble_manager.mm --> callback.cc --> node.js ---> test.js

自己写一个问答模式的调用

image.png

  • 函数流转在文件中的流程是: test.js --> node.js --> node_mac.mm --> ble_manager.mm --> callback.cc --> node.js ---> test.js