buildrootschalter/package/nodejs/Config.in
Thomas De Schampheleire be084204eb Config.in files: add missing dependencies to toolchain option comments
When a package A depends on config option B and toolchain option C, then
the comment that is given when C is not fulfilled should also depend on B.
For example:

config BR2_PACKAGE_A
	depends on BR2_B
	depends on BR2_LARGEFILE
	depends on BR2_WCHAR

comment "A needs a toolchain w/ largefile, wchar"
	depends on !BR2_LARGEFILE || !BR2_WCHAR

This comment should actually be:

comment "A needs a toolchain w/ largefile, wchar"
	depends on BR2_B
	depends on !BR2_LARGEFILE || !BR2_WCHAR

or if possible (typically when B is a package config option declared in that
same Config.in file):

if BR2_B

comment "A needs a toolchain w/ largefile, wchar"
	depends on !BR2_LARGEFILE || !BR2_WCHAR

[other config options depending on B]

endif

Otherwise, the comment would be visible even though the other dependencies
are not met.

This patch adds such missing dependencies, and changes existing such
dependencies from
  depends on BR2_BASE_DEP && !BR2_TOOLCHAIN_USES_GLIBC
to
  depends on BR2_BASE_DEP
  depends on !BR2_TOOLCHAIN_USES_GLIBC
so that (positive) base dependencies are separate from the (negative)
toolchain dependencies. This strategy makes it easier to write such comments
(because one can simply copy the base dependency from the actual package
config option), but also avoids complex and long boolean expressions.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
 (untested)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2013-11-10 23:59:57 +01:00

85 lines
2.7 KiB
Plaintext

config BR2_PACKAGE_NODEJS
bool "nodejs"
depends on BR2_INET_IPV6
depends on BR2_LARGEFILE
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_arm || BR2_i386 || BR2_x86_64
# ARM needs BLX, so v5t+
depends on !(BR2_arm7tdmi || BR2_arm720t || BR2_arm920t || BR2_arm922t || BR2_fa526)
# uses fork()
depends on BR2_USE_MMU
help
Event-driven I/O server-side JavaScript environment based on V8.
http://nodejs.org/
comment "nodejs needs a toolchain w/ C++, IPv6, largefile, threads"
depends on BR2_USE_MMU
depends on BR2_arm || BR2_i386 || BR2_x86_64
depends on !(BR2_arm7tdmi || BR2_arm720t || BR2_arm920t || BR2_arm922t || BR2_fa526)
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_LARGEFILE || \
!BR2_TOOLCHAIN_HAS_THREADS || !BR2_INET_IPV6
if BR2_PACKAGE_NODEJS
menu "Module Selection"
config BR2_PACKAGE_NODEJS_NPM
bool "NPM for the target"
select BR2_PACKAGE_OPENSSL
help
NPM is the package manager for the Node JavaScript platform.
Note that enabling NPM on the target also selects OpenSSL for the
target.
http://www.npmjs.org
Note that NPM is always built for the buildroot host.
config BR2_PACKAGE_NODEJS_MODULES_EXPRESS
bool "Express web application framework"
help
Express is a minimal and flexible node.js web application
framework, providing a robust set of features for building
single and multi-page, and hybrid web applications.
http://www.expressjs.com
https://github.com/visionmedia/express
config BR2_PACKAGE_NODEJS_MODULES_COFFEESCRIPT
bool "CoffeeScript"
help
CoffeeScript is a little language that compiles into JavaScript.
http://www.coffeescript.org
config BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL
string "Additional modules"
help
List of space-separated nodejs modules to install via npm.
See https://npmjs.org/ to find modules and 'npm help install'
for available installation methods. For repeatable builds,
download and save tgz files or clone git repos for the
components you care about.
Example: serialport uglify-js@1.3.4 /my/module/mymodule.tgz git://github.com/someuser/somemodule.git#v1.2
This would install the serialport module (at the newest version),
the uglify-js module at 1.3.4, a module from a filesystem path,
and a module from a git repository.
config BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL_DEPS
string "Additional module dependencies"
help
List of space-separated buildroot recipes which must be built before
your npms can be installed. For example, if in 'Additional modules'
you specified 'node-curl' (see:
https://github.com/jiangmiao/node-curl), you could then specify
'libcurl' here, to ensure that buildroot builds the libcurl package,
and does so before building your node modules.
endmenu
endif