timboudreau / nb-nodejs

NodeJS support for NetBeans, originally hosted on netbeans.org
MIT License
91 stars 12 forks source link

binding.gyp could be an Important Files member #19

Open rimmartin opened 10 years ago

rimmartin commented 10 years ago

Hi, this project is coming along nicely

For use native developers the binding.gyp file is important. It looks like it is json with a gyp convention: http://code.google.com/p/gyp/wiki/InputFormatReference

If you wanted to include it, is there a particular json API you prefer?

It would be useful to a node run from inside of netbeans; it locates the library paths and would be a great help to us poor native developers.

timboudreau commented 10 years ago

Sounds good.

The module uses Jackson, if that's what you're asking about, for JSON.

What would need to change about the way Node is run to support it? I haven't done native development with Node, so I haven't run into the issues you're having, but I'd definitely like to make the experience as good as possible.

rimmartin commented 10 years ago

Ah Jackson; will look at it.

A binding example is at https://github.com/erossignon/node-occ/blob/master/binding.gyp For the build, gyp could be called and let it do that work. Now during a netbeans run the "library_dirs": [ "/usr/local/lib" ], section (another section for MSVC) would be useful for gathering and adding runtime paths to the LD_LIBRARY_PATH for linux, the DYLD_LIBRARY_PATH for mac and the PATH for windows dll's. Then the javascript side can be run and examined in netbeans; be a big help. Currently I'm closing and opening netbeans trying to get the right paths per project for finding native dependencies. What may be uncertain is version changes to the gyp binding format. The link above shows what is expected in the Dependencies Settings.

Under the build/Release folder I see *.node files that have been generated/compiled; being no node expert I'm uncertain how these are used during runtime.

For native development the C/C++ nb modules are available to work along side nb-nodejs.