Lines Matching +full:default +full:- +full:excludes
13 # - a module where all the Jamfile content live.
14 # - an instance of 'project-attributes' class.
16 # - an instance of 'project-target' class (from targets.jam)
21 # and new project-attributes instance is created. Some rules necessary for
22 # project are added to the module (see 'project-rules' module) at the bottom of
23 # this file. Default project attributes are set (inheriting attributes of
37 # The list of all loaded Jamfiles is stored in the .project-locations variable.
38 # It is possible to obtain a module name for a location using the 'module-name'
105 # (id,location) pairs corresponding to all 'use-project'
119 self.JAMROOT = ["project-root.jam", "[Jj]amroot", "[Jj]amroot.jam"]
121 # Default patterns to search for the Jamfiles to use for build
147 if "--debug-loading" in self.manager.argv():
157 # While "build-project" and "use-project" can potentially refer
168 # local used = [ modules.peek $(module-name) : .used-projects ] ;
193 """Given 'name' which can be project-id or plain directory name,
209 # root, willing to act as Jamfile. In that case, project-root
222 """Returns the name of module corresponding to 'jamfile-location'.
223 If no module corresponds to location yet, associates default
240 parent-root argument causes this to search not the given directory
276 print " -", j
285 Please consult the documentation at 'http://boost.org/boost-build2'."""
321 # 'use-project' statement that causes a second attempt to load the
322 # same project we're loading now. Checking inside .jamfile-modules
345 The value of the .current-project variable has magically changed
359 project_root = self.attribute(jamfile_module, "project-root")
367 print "warning: the --build-dir option was specified"
370 print "warning: the --build-dir option will be ignored"
389 associated with it. This is mostly useful for user-config.jam,
415 module-name is the name of the project module.
418 standalone_path is the path to the source-location.
426 if module_name == "test-config":
429 elif module_name == "site-config":
430 parent_module = "test-config"
431 elif module_name == "user-config":
432 parent_module = "site-config"
433 elif module_name == "project-config":
434 parent_module = "user-config"
436 # We search for parent/project-root only if jamfile was specified
437 # --- i.e
442 # If it's jamroot, inherit from user-config.
443 # If project-config module exist, inherit from it.
444 parent_module = 'user-config'
445 if 'project-config' in self.module2attributes:
446 parent_module = 'project-config'
458 if "--debug-loading" in self.manager.argv():
465 attributes.set("source-location", [location], exact=1)
466 elif not module_name in ["test-config", "site-config", "user-config", "project-config"]:
477 attributes.set("source-location", [source_location], exact=1)
481 attributes.set("usage-requirements", property_set.empty(), exact=True)
482 attributes.set("default-build", property_set.empty(), exact=True)
483 attributes.set("projects-to-build", [], exact=True)
484 attributes.set("project-root", None, exact=True)
485 attributes.set("build-dir", None, exact=True)
491 attributes.set("parent-module", parent_module, exact=1)
494 attributes.set("project-root", location, exact=1)
506 self.attribute(module_name, "default-build"))
512 """Make 'project-module' inherit attributes of project
520 # Parent module might be locationless user-config.
522 #if [ modules.binding $(parent-module) ]
525 # [ path.make [ modules.binding $(parent-module) ] ] ] ;
528 attributes.set("project-root", pattributes.get("project-root"), exact=True)
529 attributes.set("default-build", pattributes.get("default-build"), exact=True)
531 attributes.set("usage-requirements",
532 pattributes.get("usage-requirements"), exact=1)
534 parent_build_dir = pattributes.get("build-dir")
549 attributes.set("build-dir", build_dir, exact=True)
574 be followed by 'pop-current'."""
588 """Returns the project-attribute instance for the
603 def attributeDefault(self, project, attribute, default): argument
608 assert isinstance(default, basestring) or default is None
609 return self.module2attributes[project].getDefault(attribute, default)
612 """Returns the project target corresponding to the 'project-module'."""
650 def glob_internal(self, project, wildcards, excludes, rule_name): argument
655 assert is_iterable_typed(excludes, basestring) or excludes is None
657 location = project.get("source-location")[0]
662 paths = callable([location], wildcards, excludes)
715 basename = mname.split('.')[-1]
722 'found in boost-build path'.format(basename))
731 - Core Boost.Build. Those are imported using plain names, e.g.
734 - Python modules in the same directory as Jamfile. We don't
783 underscore_name = name.replace('-', '_')
814 # a module would be with the "using" (project.project-rules.using)
827 # local root-project = [ project.current ] ;
828 # root-project = [ $(root-project).project-module ] ;
830 # [ project.attribute $(root-project) parent-module ] &&
831 # [ project.attribute $(root-project) parent-module ] != user-config
833 # root-project = [ project.attribute $(root-project) parent-module ] ;
839 # [ path.join [ project.attribute $(root-project) location ] ext $(1:L) ] ;
847 # project.inherit-attributes $(__name__) : $(root-project) ;
848 # $(attributes).set parent-module : $(root-project) : exact ;
856 The standard attributes are 'id', "location", "project-root", "parent"
857 "requirements", "default-build", "source-location" and "projects-to-build".
877 'usage-requirements', 'default-build', 'source-location', 'build-dir', 'id'):
892 elif attribute == "usage-requirements":
903 get_manager().errors()("usage-requirements %s have non-free properties %s" \
910 existing = self.__dict__.get("usage-requirements")
915 self.__dict__["usage-requirements"] = new
918 elif attribute == "default-build":
919 self.__dict__["default-build"] = property_set.create(specification)
921 elif attribute == "source-location":
925 self.__dict__["source-location"] = source_location
927 elif attribute == "build-dir":
928 self.__dict__["build-dir"] = os.path.join(self.location, specification[0])
937 elif not attribute in ["default-build", "location",
938 "source-location", "parent",
939 "projects-to-build", "project-root"]:
950 def getDefault(self, attribute, default): argument
952 return self.__dict__.get(attribute, default)
971 print "Default build:%s", string.join(self.get("debuild-build"))
972 print "Source location:%s", string.join(self.get("source-location"))
973 print "Projects to build:%s", string.join(self.get("projects-to-build").sort());
999 rule_name = type.lower().replace("_", "-")
1045 """Given a free-standing function 'callable', return a new
1076 n = string.replace(n, "_", "-")
1100 if a[0] == "build-dir":
1103 # If '--build-dir' is specified, change the build dir for the project.
1108 # user-config, or qt. It has no build dir.
1109 # If we try to set build dir for user-config, we'll then
1111 if location and location == attributes.get("project-root"):
1112 # Re-read the project id, since it might have been changed in
1120 """Absolute directory specified via 'build-dir' project attribute
1121 Don't know how to combine that with the --build-dir option.""")
1130 attributes.set("build-dir", p, exact=1)
1133 """When --build-dir is specified, the 'build-dir'
1134 attribute is allowed only for top-level 'project' invocations""")
1167 now = attributes.get("projects-to-build")
1168 attributes.set("projects-to-build", now + dir, exact=True)
1178 def glob(self, wildcards, excludes=None): argument
1180 assert is_iterable_typed(excludes, basestring)or excludes is None
1182 wildcards, excludes, "glob")
1184 def glob_tree(self, wildcards, excludes=None): argument
1186 assert is_iterable_typed(excludes, basestring) or excludes is None
1192 if excludes:
1193 for p in excludes:
1199 "The patterns to 'glob-tree' may not include directory")
1201 wildcards, excludes, "glob_tree")
1220 # The above might have clobbered .current-project. Restore the correct
1242 f = f.replace("_", "-")
1273 if c.find(":") != -1:
1282 if not name in ["site-config", "user-config", "project-config"]:
1283 … get_manager().errors()("The 'option' rule may be used only in site-config or user-config")