all-in-one: pass include directories on the build.js command line

This commit is contained in:
Bert Belder 2017-11-21 15:51:56 +01:00
parent 75dba51e41
commit 50aaa030b9
2 changed files with 16 additions and 4 deletions

View File

@ -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}
)

View File

@ -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));
}