Adding the capability to pack WEBP images into compiled assets catalog.
Since this is not standard behavior, I'm adding it under `--allow-image-type webp`.
This way (`--allow-image-type`) also makes it easier to add future new extension types.
Since this is not a feature supported by Apple's Xcode.actool, I'm adding `--allow-non-standard-behavior` as well, that makes it explicit it's incompatible behavior.
xcrun validates SDKROOT and fails if the SDKROOT path and
xcode_select_link do not match up (e.g. there's a path component
that's a symlink).
If we've specified --toolchain, we don't need to look at any
.sdk directories, so don't perform the validation.
Testing:
Ran locally with SDKROOT that doesn't match the xcode_select_link.
**what is the change?:**
Adding a document linking to the Facebook Open Source Code of Conduct,
for visibility and to meet Github community standards.
**why make this change?:**
It's important that contributors can find the Code of Conduct for a
project.
xcbuild already links to a Code of Conduct in the Contributing guide, which is
great! :)
Exposing the COC via a separate markdown file is a standard being
promoted by Github via the Community Profile in order to meet their Open
Source Guide's recommended community standards.
As you can see, adding this file will complete [xcbuild's Community Profile](https://github.com/facebook/xcbuild/community)
checklist and increase the visibility of our COC.
**test plan:**
Viewing it on my branch -
(Flarnie will insert a screenshot)
**issue:**
internal task t23481323
When building libcar for Windows, the array size calculation would be of type
`unsigned long long` (aka `size_t`). However, `identifier` is of type
`enum car_attribute_identifier` (aka `int`). This results in a warning due to
the sign mismatch. Perform an explicit cast to the size type for the
comparision to silence the warning.
Take the opportunity to move the constant expression of the array length into a
variable for ease of readability.
- When new indices are added to a BOM, the extra spaces are now zero'd out instead of left as
junk memory. The space after the index table seems to be hidden metadata about a freelist, so
having this data randomized is not good.
- Add support for inserting freelist data at the end of the index table.
- Sorted entries added to a BOM tree, which appears expected by apps searching through BOM trees.
These functions are now deprecated, but using the new infrastructure
makes everything more consistent. This is also sufficient for path
support on Windows, even before adopting the strongly typed paths.
There are two types, one to represent any kind of path, and one
that always represents a full absolute path. Conversion between
them is checked to ensure consistency.
The path types are templated on traits, which implement platform-
specific path behavior. They default to the appropriate traits
for the current platform, but are customizable as required. The
path format consists of three parts: a root, of which there can
be one (Unix) or many (Windows), and a path, which is separated
by path separators.
Separate from the process as it is only vaguely related and adding
unused user information to in-memory process contexts was extra code.
Windows support uses the SID as the user ID, as it matches the idea
of an identifer uniquely identifying a user or a group.