all-in-one: pass include directories on the build.js command line
This commit is contained in:
parent
75dba51e41
commit
50aaa030b9
@ -36,7 +36,7 @@ foreach(HEADER_SOURCE ${SOURCES_INCLUDE})
|
||||
set(ALLINONE_SRC_C "allinone/${HEADER_NAME}-all-in-one.c")
|
||||
add_custom_command(
|
||||
OUTPUT ${ALLINONE_SRC_C}
|
||||
COMMAND node allinone/build.js allinone/header.h ${HEADER_SOURCE} ${SOURCES_SRC_C} > ${ALLINONE_SRC_C}
|
||||
COMMAND node allinone/build.js -Iinclude -Isrc ${HEADER_SOURCE} ${SOURCES_SRC_C} > ${ALLINONE_SRC_C}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
IMPLICIT_DEPENDS c ${SOURCES_INCLUDE} ${SOURCES_SRC}
|
||||
)
|
||||
|
||||
@ -3,13 +3,25 @@
|
||||
var path = require('path');
|
||||
var fs = require('fs');
|
||||
|
||||
var files = [];
|
||||
var include_dirs = [];
|
||||
|
||||
for (var i = 2; i < process.argv.length; i++) {
|
||||
var arg = process.argv[i];
|
||||
var match = /^-I(.*)$/.exec(arg);
|
||||
if (match)
|
||||
include_dirs.push(match[1]);
|
||||
else
|
||||
files.push(arg);
|
||||
}
|
||||
|
||||
var included = {};
|
||||
|
||||
function load(filename) {
|
||||
if (/[\/\\]/.test(filename))
|
||||
return fs.readFileSync(filename, 'utf8');
|
||||
|
||||
var PATH = ['.', 'include', 'src'];
|
||||
var PATH = ['.'].concat(include_dirs);
|
||||
for (;;) {
|
||||
var dir = PATH.shift();
|
||||
try {
|
||||
@ -91,8 +103,8 @@ source = source.concat('/*')
|
||||
.concat(' */')
|
||||
.concat('');
|
||||
|
||||
for (var i = 2; i < process.argv.length; i++) {
|
||||
var filename = process.argv[i];
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
var filename = files[i];
|
||||
source = source.concat(include(null, filename));
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user