Univerzální build s minifikací, spojením do jednoho souboru a nahráním na Micro:Bit pro všechny OS#59
Open
rdolejsi wants to merge 3 commits into
Open
Conversation
…Pmain= automatically excludes other main_*.py files from current directory
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ahoj, toto PR přináší build systém pro překonání problémů s velikostí paměti a těžkopádností nahrávání více souborů najednou do Micro:Bitu. Build spojuje *.py zdrojáky projektu do sebe a umí je i minimalizovat.
Soubory v tomto PR je možné přenést do libovolného adresáře našeho snažení (libovolné lekce) a následně použít k vytvoření minimalizovaného spojeného zdrojáku
main.py, který lze pak buď automaticky nebo samozřejmě i vlastnoručně nahrát na Micro:Bit (pokud automatický způsob na daném OS nepůjde).Build používá Gradle, který je schopen sám sebe natáhnout v rámci daného OS přes dodaný wrapper, není třeba nic instalovat. Jsou podporovány OS Linux, MacOS i Windows, všechny architektury. Build lze všude spustit pouhým
./gradlew build, případněgradlew.bat build(Windows).Build má jedinou závislost - aby správně fugoval, je třeba nejprve nainstalovat python-minifier (na Ubuntu
sudo pip install python-minifier).V úvodním komentáři build.gradle je dokumentace. Build vše umí detekovat automaticky, výsledek vytváří do build/main.py (neminifikovaná varianta) a do build/mini/main.py (minifikovaná varianta).
Pro rychlé spuštění na Linuxu pro tuto konkrétní lekci viz závěrečný příklad v dokumentaci, který sestaví minifikovaný spojený main.py a pak ho nahraje na Micro:Bit včetně použití sudo, aby překonal případné problémy s přístupovými právy. Příkaz je složitější, protože je naneštěstí cely_projekt.py v jiném adresáři, což však build podporuje také:
Poslední commit pak přidává podporu regexpů pro
-Pinclude=a-Pexclude=a automatický exclude jiného main_ souboru než toho, který je specifikován v-Pmain=. Lze tak mít v adresáři vícemain_...pysouborů a volit, který se použije + jednoduše eliminovat soubory, které nechci při buildu. Např. u sebe, když testuji kola, nepotřebuji senzor a světla - vyberumain_...pypro kola a udělám exclude pro nepotřebné věci. Můj příkaz v projektu pak např. vypadá takto: