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.
- Set to use static or dynamic libraries at top level.
- Compiler configuration for MSVC and MinGW.
- Copy rather than create symlink for aliases on Windows.
Asset catalog compilation now uses a custom variable to pass inputs
to the specification, and a custom grouping method to group inputs.
Does not pass sticker pack translations to asset catalog compiler,
as this seems to require parsing the asset catalog just to determine
which strings files should be used. Left as a future task.
Asset catalogs form a tree, not a graph, so there is no requirement
for reference counting. Simplify the possibility space by removing
reference counting in favor of direct ownership of child assets.
Print the set of output files, as expected, and output dependency info
as requested by the command line options. The dependency info contains
the full set of inputs and outputs used during compilation.
* Parse minimum system version for launch image assets.
A system version has at least two components separated by dots, with
an optional third component separated by an additional dot.
* Compile launch image assets.
Launch images are copied to the output, and metadata is added to the
partial info plist to describe the launch images.
Instead of checking if strings are empty, use optionals to store if
the arguments were passed at all. Additionally, add a few utility
methods to the option parser to simplify various tool option classes.
- Separate out PNG loading into a separate module.
- Refactor PNG loading to be less tied to asset compliation.
- Add an implementation of PNG loading using ImageIO when available.
- Add a unit test for loading various types of PNG images.
* Pass through info and dependency info options to asset compile output.
Fixes writing out additional info plist and dependency info.
* Add initial implementation of compiling app icons.
Supports copying the images and writing the icon metadata to info
plist additions. Current implementation has two limitations:
- All idioms are copied for all target platforms. For example, watch
images are copied for asset compilation targeting a phone.
- The size of images is not verified against the specified dimensions.
- Refactor some logic out into separate functions.
- Cleanup code style nits for consistency.
- Use filesystem to read JPEG images as well as PNG.
- Move image set compilation into namespace and class.
If the developer invokes CMake with BUILD_TESTING=NO, don't
build or register CTest tests. This allows building without
the ThirdParty/googletest Git submodule, and also improves
build times for end-users who just want an xcbuild binary.
The contents printing supports most types of asset, but additional ones
can be supported more in the future. Output can be human-readable text or
as a property list, as specified by the output format.
- Use add_compile_options() in CMake to avoid duplicate lines.
- Add missing includes as needed for Linux compilation.
- Add required macro to access ftruncate() on Linux in C99 mode.
- Switch to C++11 random numbers instead of arc4random for portability.
- Workaround GCC issue with references to packed struct fields.
- Fix missing default case required by GCC.