mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
Add command line arguments for accessing build flags.
node --cflags node --libs At the expense of some WAF nastiness.
This commit is contained in:
parent
4d92199d18
commit
b73264d9b3
22
src/node.cc
22
src/node.cc
@ -300,11 +300,18 @@ PrintHelp ( )
|
||||
static void
|
||||
ParseArgs (int *argc, char **argv)
|
||||
{
|
||||
bool cflags = false, libs = false;
|
||||
for (int i = 1; i < *argc; i++) {
|
||||
const char *arg = argv[i];
|
||||
if (strcmp(arg, "--version") == 0 || strcmp(arg, "-v") == 0) {
|
||||
printf("%s\n", NODE_VERSION);
|
||||
exit(0);
|
||||
} else if (strcmp(arg, "--cflags") == 0) {
|
||||
cflags = true;
|
||||
continue;
|
||||
} else if (strcmp(arg, "--libs") == 0) {
|
||||
libs = true;
|
||||
continue;
|
||||
} else if (strcmp(arg, "--help") == 0 || strcmp(arg, "-h") == 0) {
|
||||
PrintHelp();
|
||||
exit(0);
|
||||
@ -312,6 +319,21 @@ ParseArgs (int *argc, char **argv)
|
||||
argv[i] = (char*)"--help";
|
||||
}
|
||||
}
|
||||
|
||||
/* XXX Wow this is terrible code. */
|
||||
bool should_exit = false;
|
||||
if (cflags) {
|
||||
should_exit = true;
|
||||
printf("%s ", NODE_CFLAGS);
|
||||
}
|
||||
if (libs) {
|
||||
should_exit = true;
|
||||
printf("%s ", NODE_LIBFLAGS);
|
||||
}
|
||||
if (should_exit) {
|
||||
printf("\n");
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -7,11 +7,10 @@
|
||||
#include <evcom.h>
|
||||
|
||||
#include "object_wrap.h"
|
||||
#include "node_version.h"
|
||||
|
||||
namespace node {
|
||||
|
||||
#define NODE_VERSION "0.1.7"
|
||||
|
||||
#define NODE_DEFINE_CONSTANT(target, constant) \
|
||||
(target)->Set(v8::String::NewSymbol(#constant), \
|
||||
v8::Integer::New(constant))
|
||||
|
3
src/node_version.h.in
Normal file
3
src/node_version.h.in
Normal file
@ -0,0 +1,3 @@
|
||||
#define NODE_VERSION "@VERSION@"
|
||||
#define NODE_CFLAGS "@CCFLAGS@ @CPPFLAGS@ -I@PREFIX@/include"
|
||||
#define NODE_LIBFLAGS "@LIBFLAGS@ -L@PREFIX@/lib -lnode@DEBUG_EXT@"
|
26
wscript
26
wscript
@ -4,7 +4,7 @@ import sys, os, shutil
|
||||
from os.path import join, dirname, abspath
|
||||
from logging import fatal
|
||||
|
||||
VERSION="0.1.6"
|
||||
VERSION="0.1.7"
|
||||
APPNAME="node.js"
|
||||
|
||||
import js2c
|
||||
@ -260,7 +260,7 @@ def build(bld):
|
||||
libnode.uselib_local = "evcom ev eio http_parser coupling"
|
||||
libnode.uselib = "UDNS V8 EXECINFO PROFILER EFENCE DL"
|
||||
libnode.install_path = '${PREFIX}/lib'
|
||||
bld.install_files('${PREFIX}/include/node/', 'config.h src/node.h src/object_wrap.h');
|
||||
bld.install_files('${PREFIX}/include/node/', 'config.h src/node.h src/node_version.h src/object_wrap.h');
|
||||
|
||||
### node
|
||||
node = bld.new_task_gen("cxx", "program")
|
||||
@ -274,14 +274,13 @@ def build(bld):
|
||||
|
||||
def subflags(program):
|
||||
debug_ext = ""
|
||||
if bld.env["USE_DEBUG"]:
|
||||
debug_ext = "_g"
|
||||
x = { 'CCFLAGS': " ".join(program.env["CCFLAGS"])
|
||||
, 'CPPFLAGS': " ".join(program.env["CPPFLAGS"])
|
||||
, 'LIBFLAGS': " ".join(program.env["LIBFLAGS"])
|
||||
, 'VERSION': VERSION
|
||||
, 'PREFIX': program.env["PREFIX"]
|
||||
, 'DEBUG_EXT': debug_ext
|
||||
if program.target == "node_g": debug_ext = "_g"
|
||||
x = { 'CCFLAGS' : " ".join(program.env["CCFLAGS"])
|
||||
, 'CPPFLAGS' : " ".join(program.env["CPPFLAGS"])
|
||||
, 'LIBFLAGS' : " ".join(program.env["LIBFLAGS"])
|
||||
, 'VERSION' : VERSION
|
||||
, 'PREFIX' : program.env["PREFIX"]
|
||||
, 'DEBUG_EXT' : debug_ext
|
||||
}
|
||||
return x;
|
||||
|
||||
@ -293,6 +292,11 @@ def build(bld):
|
||||
pkgconfig.install_path = '${PREFIX}/lib/pkgconfig'
|
||||
pkgconfig.dict = subflags(node)
|
||||
|
||||
# process file.pc.in -> file.pc
|
||||
node_version = bld.new_task_gen('subst', before="cxx")
|
||||
node_version.source = 'src/node_version.h.in'
|
||||
node_version.target = 'src/node_version.h'
|
||||
node_version.dict = subflags(node)
|
||||
|
||||
if bld.env["USE_DEBUG"]:
|
||||
node_g = node.clone("debug")
|
||||
@ -305,4 +309,6 @@ def build(bld):
|
||||
pkgconfig_g.dict = subflags(node_g)
|
||||
pkgconfig_g.target = 'node_g.pc'
|
||||
|
||||
node_version_g = node_version.clone("debug")
|
||||
node_version_g.dict = subflags(node_g)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user