mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2025-12-12 12:42:30 +04:00
ufbt: fixed FAP_SRC_DIR (#2970)
* fbt, ufbt: fixed "_appdir" internal property and FAP_SRC_DIR not working in ufbt environment * fbt, ufbt: reworked CompileIcons(); added app's own root to app's #include path * fbt: cleaner resolve_real_dir_node Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
@@ -8,11 +8,14 @@ from SCons.Errors import StopError
|
||||
|
||||
|
||||
def icons_emitter(target, source, env):
|
||||
icons_src = env.GlobRecursive("*.png", env["ICON_SRC_DIR"])
|
||||
icons_src += env.GlobRecursive("frame_rate", env["ICON_SRC_DIR"])
|
||||
|
||||
target = [
|
||||
target[0].File(env.subst("${ICON_FILE_NAME}.c")),
|
||||
target[0].File(env.subst("${ICON_FILE_NAME}.h")),
|
||||
]
|
||||
return target, source
|
||||
return target, icons_src
|
||||
|
||||
|
||||
def proto_emitter(target, source, env):
|
||||
@@ -104,17 +107,12 @@ def proto_ver_generator(target, source, env):
|
||||
|
||||
|
||||
def CompileIcons(env, target_dir, source_dir, *, icon_bundle_name="assets_icons"):
|
||||
# Gathering icons sources
|
||||
icons_src = env.GlobRecursive("*.png", source_dir)
|
||||
icons_src += env.GlobRecursive("frame_rate", source_dir)
|
||||
|
||||
icons = env.IconBuilder(
|
||||
return env.IconBuilder(
|
||||
target_dir,
|
||||
source_dir,
|
||||
None,
|
||||
ICON_SRC_DIR=source_dir,
|
||||
ICON_FILE_NAME=icon_bundle_name,
|
||||
)
|
||||
env.Depends(icons, icons_src)
|
||||
return icons
|
||||
|
||||
|
||||
def generate(env):
|
||||
@@ -137,7 +135,7 @@ def generate(env):
|
||||
BUILDERS={
|
||||
"IconBuilder": Builder(
|
||||
action=Action(
|
||||
'${PYTHON3} ${ASSETS_COMPILER} icons ${ABSPATHGETTERFUNC(SOURCE)} ${TARGET.dir} --filename "${ICON_FILE_NAME}"',
|
||||
'${PYTHON3} ${ASSETS_COMPILER} icons ${ICON_SRC_DIR} ${TARGET.dir} --filename "${ICON_FILE_NAME}"',
|
||||
"${ICONSCOMSTR}",
|
||||
),
|
||||
emitter=icons_emitter,
|
||||
|
||||
@@ -11,7 +11,7 @@ from fbt.appmanifest import FlipperApplication, FlipperAppType, FlipperManifestE
|
||||
from fbt.elfmanifest import assemble_manifest_data
|
||||
from fbt.fapassets import FileBundler
|
||||
from fbt.sdk.cache import SdkCache
|
||||
from fbt.util import extract_abs_dir_path
|
||||
from fbt.util import resolve_real_dir_node
|
||||
from SCons.Action import Action
|
||||
from SCons.Builder import Builder
|
||||
from SCons.Errors import UserError
|
||||
@@ -50,7 +50,8 @@ class AppBuilder:
|
||||
|
||||
def _setup_app_env(self):
|
||||
self.app_env = self.fw_env.Clone(
|
||||
FAP_SRC_DIR=self.app._appdir, FAP_WORK_DIR=self.app_work_dir
|
||||
FAP_SRC_DIR=self.app._appdir,
|
||||
FAP_WORK_DIR=self.app_work_dir,
|
||||
)
|
||||
self.app_env.VariantDir(self.app_work_dir, self.app._appdir, duplicate=False)
|
||||
|
||||
@@ -119,7 +120,7 @@ class AppBuilder:
|
||||
CPPDEFINES=lib_def.cdefines,
|
||||
CPPPATH=list(
|
||||
map(
|
||||
lambda cpath: extract_abs_dir_path(self.app._appdir.Dir(cpath)),
|
||||
lambda cpath: resolve_real_dir_node(self.app._appdir.Dir(cpath)),
|
||||
lib_def.cincludes,
|
||||
)
|
||||
),
|
||||
@@ -133,7 +134,7 @@ class AppBuilder:
|
||||
def _build_app(self):
|
||||
self.app_env.Append(
|
||||
LIBS=[*self.app.fap_libs, *self.private_libs],
|
||||
CPPPATH=self.app_env.Dir(self.app_work_dir),
|
||||
CPPPATH=[self.app_env.Dir(self.app_work_dir), self.app._appdir],
|
||||
)
|
||||
|
||||
app_sources = list(
|
||||
|
||||
Reference in New Issue
Block a user