Skip to content

Commit

Permalink
Implement "whole-archive" hook for mbed-lib and LINCOM command
Browse files Browse the repository at this point in the history
  • Loading branch information
ivankravets committed May 14, 2015
1 parent 96b06db commit 4ce09f1
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions platformio/builder/scripts/frameworks/mbed.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,25 @@ def get_build_flags(data):
return flags


def _mbed_whole_archive_hook(flags):
if not isinstance(flags, list):
return flags

for pos, flag in enumerate(flags[:]):
if isinstance(flag, basestring):
continue
flags.insert(pos, "-Wl,-whole-archive")
flags.insert(pos + 2, "-Wl,-no-whole-archive")

return flags


env.Replace(
_mbed_whole_archive_hook=_mbed_whole_archive_hook,
_LIBFLAGS="${_mbed_whole_archive_hook(%s)}" % env.get("_LIBFLAGS")[2:-1]
)


board_type = env.subst("$BOARD")
variant = MBED_VARIANTS[
board_type] if board_type in MBED_VARIANTS else board_type.upper()
Expand All @@ -187,6 +206,8 @@ def get_build_flags(data):
variant_dir = join("$PLATFORMFW_DIR", "variant", variant)

env.Replace(
_mbed_whole_archive_hook=_mbed_whole_archive_hook,
_LIBFLAGS="${_mbed_whole_archive_hook(%s)}" % env.get("_LIBFLAGS")[2:-1],
CPPFLAGS=build_flags.get("CPPFLAGS", []),
CFLAGS=build_flags.get("CFLAGS", []),
CXXFLAGS=build_flags.get("CXXFLAGS", []),
Expand Down

0 comments on commit 4ce09f1

Please sign in to comment.