|
@@ -246,13 +246,16 @@ for path in module_search_paths:
|
|
|
# Built-in modules don't have nested modules,
|
|
|
# so save the time it takes to parse directories.
|
|
|
modules = methods.detect_modules(path, recursive=False)
|
|
|
- else: # External.
|
|
|
+ else: # Custom.
|
|
|
modules = methods.detect_modules(path, env_base["custom_modules_recursive"])
|
|
|
+ # Provide default include path for both the custom module search `path`
|
|
|
+ # and the base directory containing custom modules, as it may be different
|
|
|
+ # from the built-in "modules" name (e.g. "custom_modules/summator/summator.h"),
|
|
|
+ # so it can be referenced simply as `#include "summator/summator.h"`
|
|
|
+ # independently of where a module is located on user's filesystem.
|
|
|
+ env_base.Prepend(CPPPATH=[path, os.path.dirname(path)])
|
|
|
# Note: custom modules can override built-in ones.
|
|
|
modules_detected.update(modules)
|
|
|
- include_path = os.path.dirname(path)
|
|
|
- if include_path:
|
|
|
- env_base.Prepend(CPPPATH=[include_path])
|
|
|
|
|
|
# Add module options.
|
|
|
for name, path in modules_detected.items():
|