1*b9df5ad1SAndroid Build Coastguard Worker# Camera Metadata XML 2*b9df5ad1SAndroid Build Coastguard Worker## Introduction 3*b9df5ad1SAndroid Build Coastguard WorkerThis is a set of scripts to manipulate the camera metadata in an XML form. 4*b9df5ad1SAndroid Build Coastguard Worker 5*b9df5ad1SAndroid Build Coastguard Worker## Generated Files 6*b9df5ad1SAndroid Build Coastguard WorkerMany files can be generated from XML, such as the documentation (html/pdf), 7*b9df5ad1SAndroid Build Coastguard WorkerC code, Java code, and even XML itself (as a round-trip validity check). 8*b9df5ad1SAndroid Build Coastguard Worker 9*b9df5ad1SAndroid Build Coastguard Worker## Dependencies 10*b9df5ad1SAndroid Build Coastguard Worker* Python 2.7.x+ 11*b9df5ad1SAndroid Build Coastguard Worker* Beautiful Soup 4+ - HTML/XML parser, used to parse `metadata_definitions.xml` 12*b9df5ad1SAndroid Build Coastguard Worker* Mako 0.7+ - Template engine, needed to do file generation. 13*b9df5ad1SAndroid Build Coastguard Worker* Markdown 2.1+ - Plain text to HTML converter, for docs formatting. 14*b9df5ad1SAndroid Build Coastguard Worker* Tidy - Cleans up the XML/HTML files. 15*b9df5ad1SAndroid Build Coastguard Worker* XML Lint - Validates XML against XSD schema. 16*b9df5ad1SAndroid Build Coastguard Worker 17*b9df5ad1SAndroid Build Coastguard Worker## Quick Setup (Debian Rodete): 18*b9df5ad1SAndroid Build Coastguard WorkerNOTE: Debian (and most Linux distros) no longer package Python 2. 19*b9df5ad1SAndroid Build Coastguard Worker Python 3 dependencies are listed below. 20*b9df5ad1SAndroid Build Coastguard Worker``` 21*b9df5ad1SAndroid Build Coastguard Workersudo apt install python3-mako \ 22*b9df5ad1SAndroid Build Coastguard Worker python3-bs4 \ 23*b9df5ad1SAndroid Build Coastguard Worker python3-markdown \ 24*b9df5ad1SAndroid Build Coastguard Worker tidy \ 25*b9df5ad1SAndroid Build Coastguard Worker libxml2-utils 26*b9df5ad1SAndroid Build Coastguard Worker``` 27*b9df5ad1SAndroid Build Coastguard Worker 28*b9df5ad1SAndroid Build Coastguard Worker## Quick Usage: 29*b9df5ad1SAndroid Build Coastguard Worker1. Modify or add to `metadata_definition.xml` 30*b9df5ad1SAndroid Build Coastguard Worker2. Execute `metadata-generate` 31*b9df5ad1SAndroid Build Coastguard Worker3. Run `m ds-docs` to make sure the javadoc is correctly generated 32*b9df5ad1SAndroid Build Coastguard Worker4. Commit and Upload the repos listed at the end of `metadata-generate` 33