fbt fixes for mfbt pt2 (#1951)
* fbt: split sdk management code * scripts: fixed import handling * fbt: sdk: reformatted paths * scrips: dist: bundling libs as a build artifact * fbt: sdk: better path management * typo fix * fbt: sdk: minor path handling fixes * toolchain: fixed windows toolchain download * fbt: minor refactorin * fbt: moved sdk management code to extapps.scons * fbt: fixed sdk symbols header path; disabled -fstack-usage * fbt: changed pathing for .py scripts * fbt: changed SDK_HEADERS pathing; added libusb to SDK; added icon_i.h to SDK; added hw target to SDK meta * fbt: added libusb headers to SDK * picopass: include cleanup; api: added subghz/registry.h; api: added mbedtls to exported headers * picopass: fixed formatting * fbt: fixed COPRO_ASSETS_SCRIPT * sdk: added basic infrared apis * toolchain: added ufbt to list of legal fbtenv callers; updated error messages * fbt: changed manifest collection & icon processing code * fbt: simpler srcdir lookup * toolchain: path management fixes; fbt: fixes for fap private libs paths * scripts: toolchain: reworked download on Windows * toolchain: v17 * scripts: added colorlog for logging * Github: fix unit tests Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
@@ -13,19 +13,22 @@ if not [%FBT_NOENV%] == [] (
|
||||
exit /b 0
|
||||
)
|
||||
|
||||
set "FLIPPER_TOOLCHAIN_VERSION=16"
|
||||
set "FBT_TOOLCHAIN_ROOT=%FBT_ROOT%\toolchain\x86_64-windows"
|
||||
set "FLIPPER_TOOLCHAIN_VERSION=17"
|
||||
|
||||
if [%FBT_TOOLCHAIN_ROOT%] == [] (
|
||||
set "FBT_TOOLCHAIN_ROOT=%FBT_ROOT%\toolchain\x86_64-windows"
|
||||
)
|
||||
|
||||
if not exist "%FBT_TOOLCHAIN_ROOT%" (
|
||||
powershell -ExecutionPolicy Bypass -File "%FBT_ROOT%\scripts\toolchain\windows-toolchain-download.ps1" "%flipper_toolchain_version%"
|
||||
powershell -ExecutionPolicy Bypass -File "%FBT_ROOT%\scripts\toolchain\windows-toolchain-download.ps1" "%flipper_toolchain_version%" "%FBT_TOOLCHAIN_ROOT%"
|
||||
)
|
||||
if not exist "%FBT_TOOLCHAIN_ROOT%\VERSION" (
|
||||
powershell -ExecutionPolicy Bypass -File "%FBT_ROOT%\scripts\toolchain\windows-toolchain-download.ps1" "%flipper_toolchain_version%"
|
||||
powershell -ExecutionPolicy Bypass -File "%FBT_ROOT%\scripts\toolchain\windows-toolchain-download.ps1" "%flipper_toolchain_version%" "%FBT_TOOLCHAIN_ROOT%"
|
||||
)
|
||||
|
||||
set /p REAL_TOOLCHAIN_VERSION=<"%FBT_TOOLCHAIN_ROOT%\VERSION"
|
||||
if not "%REAL_TOOLCHAIN_VERSION%" == "%FLIPPER_TOOLCHAIN_VERSION%" (
|
||||
powershell -ExecutionPolicy Bypass -File "%FBT_ROOT%\scripts\toolchain\windows-toolchain-download.ps1" "%flipper_toolchain_version%"
|
||||
powershell -ExecutionPolicy Bypass -File "%FBT_ROOT%\scripts\toolchain\windows-toolchain-download.ps1" "%flipper_toolchain_version%" "%FBT_TOOLCHAIN_ROOT%"
|
||||
)
|
||||
|
||||
|
||||
|
@@ -5,7 +5,7 @@
|
||||
# public variables
|
||||
DEFAULT_SCRIPT_PATH="$(pwd -P)";
|
||||
SCRIPT_PATH="${SCRIPT_PATH:-$DEFAULT_SCRIPT_PATH}";
|
||||
FBT_TOOLCHAIN_VERSION="${FBT_TOOLCHAIN_VERSION:-"16"}";
|
||||
FBT_TOOLCHAIN_VERSION="${FBT_TOOLCHAIN_VERSION:-"17"}";
|
||||
FBT_TOOLCHAIN_PATH="${FBT_TOOLCHAIN_PATH:-$SCRIPT_PATH}";
|
||||
|
||||
fbtenv_show_usage()
|
||||
@@ -62,7 +62,7 @@ fbtenv_check_sourced()
|
||||
fbtenv_show_usage;
|
||||
return 1;
|
||||
fi
|
||||
case ${0##*/} in dash|-dash|bash|-bash|ksh|-ksh|sh|-sh|*.sh|fbt)
|
||||
case ${0##*/} in dash|-dash|bash|-bash|ksh|-ksh|sh|-sh|*.sh|fbt|ufbt)
|
||||
return 0;;
|
||||
esac
|
||||
fbtenv_show_usage;
|
||||
@@ -76,8 +76,8 @@ fbtenv_chck_many_source()
|
||||
return 0;
|
||||
fi
|
||||
fi
|
||||
echo "Warning! FBT environment script sourced more than once!";
|
||||
echo "This may signal that you are making mistakes, please open a new shell!";
|
||||
echo "Warning! FBT environment script was sourced more than once!";
|
||||
echo "You might be doing things wrong, please open a new shell!";
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -93,8 +93,8 @@ fbtenv_set_shell_prompt()
|
||||
|
||||
fbtenv_check_script_path()
|
||||
{
|
||||
if [ ! -x "$SCRIPT_PATH/fbt" ]; then
|
||||
echo "Please source this script being into flipperzero-firmware root directory, or specify 'SCRIPT_PATH' manually";
|
||||
if [ ! -x "$SCRIPT_PATH/fbt" ] && [ ! -x "$SCRIPT_PATH/ufbt" ] ; then
|
||||
echo "Please source this script from [u]fbt root directory, or specify 'SCRIPT_PATH' variable manually";
|
||||
echo "Example:";
|
||||
printf "\tSCRIPT_PATH=lang/c/flipperzero-firmware source lang/c/flipperzero-firmware/scripts/fbtenv.sh\n";
|
||||
echo "If current directory is right, type 'unset SCRIPT_PATH' and try again"
|
||||
@@ -108,7 +108,7 @@ fbtenv_get_kernel_type()
|
||||
SYS_TYPE="$(uname -s)";
|
||||
ARCH_TYPE="$(uname -m)";
|
||||
if [ "$ARCH_TYPE" != "x86_64" ] && [ "$SYS_TYPE" != "Darwin" ]; then
|
||||
echo "Now we provide toolchain only for x86_64 arhitecture, sorry..";
|
||||
echo "We only provide toolchain for x86_64 CPUs, sorry..";
|
||||
return 1;
|
||||
fi
|
||||
if [ "$SYS_TYPE" = "Darwin" ]; then
|
||||
@@ -119,10 +119,10 @@ fbtenv_get_kernel_type()
|
||||
TOOLCHAIN_ARCH_DIR="$FBT_TOOLCHAIN_PATH/toolchain/x86_64-linux";
|
||||
TOOLCHAIN_URL="https://update.flipperzero.one/builds/toolchain/gcc-arm-none-eabi-10.3-x86_64-linux-flipper-$FBT_TOOLCHAIN_VERSION.tar.gz";
|
||||
elif echo "$SYS_TYPE" | grep -q "MINGW"; then
|
||||
echo "In MinGW shell use \"fbt.cmd\" instead of \"fbt\"";
|
||||
echo "In MinGW shell use \"[u]fbt.cmd\" instead of \"[u]fbt\"";
|
||||
return 1;
|
||||
else
|
||||
echo "Your system is not recognized. Sorry.. Please report us your configuration.";
|
||||
echo "Your system configuration is not supported. Sorry.. Please report us your configuration.";
|
||||
return 1;
|
||||
fi
|
||||
return 0;
|
||||
@@ -142,7 +142,7 @@ fbtenv_check_rosetta()
|
||||
|
||||
fbtenv_check_tar()
|
||||
{
|
||||
printf "Checking tar..";
|
||||
printf "Checking for tar..";
|
||||
if ! tar --version > /dev/null 2>&1; then
|
||||
echo "no";
|
||||
return 1;
|
||||
@@ -153,7 +153,7 @@ fbtenv_check_tar()
|
||||
|
||||
fbtenv_check_downloaded_toolchain()
|
||||
{
|
||||
printf "Checking downloaded toolchain tgz..";
|
||||
printf "Checking if downloaded toolchain tgz exists..";
|
||||
if [ ! -f "$FBT_TOOLCHAIN_PATH/toolchain/$TOOLCHAIN_TAR" ]; then
|
||||
echo "no";
|
||||
return 1;
|
||||
@@ -204,7 +204,7 @@ fbtenv_unpack_toolchain()
|
||||
|
||||
fbtenv_clearing()
|
||||
{
|
||||
printf "Clearing..";
|
||||
printf "Cleaning up..";
|
||||
if [ -n "${FBT_TOOLCHAIN_PATH:-""}" ]; then
|
||||
rm -rf "${FBT_TOOLCHAIN_PATH:?}/toolchain/"*.tar.gz;
|
||||
rm -rf "${FBT_TOOLCHAIN_PATH:?}/toolchain/"*.part;
|
||||
|
@@ -1,34 +1,46 @@
|
||||
Set-StrictMode -Version 2.0
|
||||
$ErrorActionPreference = "Stop"
|
||||
[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
|
||||
$repo_root = (Get-Item "$PSScriptRoot\..\..").FullName
|
||||
# TODO: fix
|
||||
$download_dir = (Get-Item "$PSScriptRoot\..\..").FullName
|
||||
$toolchain_version = $args[0]
|
||||
$toolchain_url = "https://update.flipperzero.one/builds/toolchain/gcc-arm-none-eabi-10.3-x86_64-windows-flipper-$toolchain_version.zip"
|
||||
$toolchain_zip = "gcc-arm-none-eabi-10.3-x86_64-windows-flipper-$toolchain_version.zip"
|
||||
$toolchain_dir = "gcc-arm-none-eabi-10.3-x86_64-windows-flipper"
|
||||
$toolchain_target_path = $args[1]
|
||||
|
||||
if (Test-Path -LiteralPath "$repo_root\toolchain\x86_64-windows") {
|
||||
$toolchain_url = "https://update.flipperzero.one/builds/toolchain/gcc-arm-none-eabi-10.3-x86_64-windows-flipper-$toolchain_version.zip"
|
||||
$toolchain_dist_folder = "gcc-arm-none-eabi-10.3-x86_64-windows-flipper"
|
||||
$toolchain_zip = "$toolchain_dist_folder-$toolchain_version.zip"
|
||||
|
||||
$toolchain_zip_temp_path = "$download_dir\$toolchain_zip"
|
||||
$toolchain_dist_temp_path = "$download_dir\$toolchain_dist_folder"
|
||||
|
||||
if (Test-Path -LiteralPath "$toolchain_target_path") {
|
||||
Write-Host -NoNewline "Removing old Windows toolchain.."
|
||||
Remove-Item -LiteralPath "$repo_root\toolchain\x86_64-windows" -Force -Recurse
|
||||
Remove-Item -LiteralPath "$toolchain_target_path" -Force -Recurse
|
||||
Write-Host "done!"
|
||||
}
|
||||
if (!(Test-Path -Path "$repo_root\$toolchain_zip" -PathType Leaf)) {
|
||||
if (!(Test-Path -Path "$toolchain_zip_temp_path" -PathType Leaf)) {
|
||||
Write-Host -NoNewline "Downloading Windows toolchain.."
|
||||
$wc = New-Object net.webclient
|
||||
$wc.Downloadfile("$toolchain_url", "$repo_root\$toolchain_zip")
|
||||
$wc.Downloadfile("$toolchain_url", "$toolchain_zip_temp_path")
|
||||
Write-Host "done!"
|
||||
}
|
||||
|
||||
if (!(Test-Path -LiteralPath "$repo_root\toolchain")) {
|
||||
New-Item "$repo_root\toolchain" -ItemType Directory
|
||||
if (!(Test-Path -LiteralPath "$toolchain_target_path\..")) {
|
||||
New-Item "$toolchain_target_path\.." -ItemType Directory -Force
|
||||
}
|
||||
|
||||
Write-Host -NoNewline "Extracting Windows toolchain.."
|
||||
# This is faster than Expand-Archive
|
||||
Add-Type -Assembly "System.IO.Compression.Filesystem"
|
||||
[System.IO.Compression.ZipFile]::ExtractToDirectory("$repo_root\$toolchain_zip", "$repo_root\")
|
||||
Move-Item -Path "$repo_root\$toolchain_dir" -Destination "$repo_root\toolchain\x86_64-windows"
|
||||
[System.IO.Compression.ZipFile]::ExtractToDirectory("$toolchain_zip_temp_path", "$download_dir")
|
||||
# Expand-Archive -LiteralPath "$toolchain_zip_temp_path" -DestinationPath "$download_dir"
|
||||
|
||||
Write-Host -NoNewline "moving.."
|
||||
Move-Item -LiteralPath "$toolchain_dist_temp_path" -Destination "$toolchain_target_path"
|
||||
Write-Host "done!"
|
||||
|
||||
Write-Host -NoNewline "Cleaning up temporary files.."
|
||||
Remove-Item -LiteralPath "$repo_root\$toolchain_zip" -Force
|
||||
Remove-Item -LiteralPath "$toolchain_zip_temp_path" -Force
|
||||
Write-Host "done!"
|
||||
|
||||
# dasdasd
|
Reference in New Issue
Block a user