Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion CMakeModules/BuildElixir.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ macro(pack_runnable avm_name main)
else()
set(INCLUDE_LINES "")
endif()
set(PACKBEAM_PRUNE_ARGS "")
if(AVM_PRUNE_RUNNABLES)
set(PACKBEAM_PRUNE_ARGS "-p")
endif()

foreach(archive_name ${ARGN})
if(${archive_name} STREQUAL "exavmlib")
Expand All @@ -94,7 +98,7 @@ macro(pack_runnable avm_name main)
add_custom_command(
OUTPUT ${avm_name}.avm
DEPENDS ${avm_name}_main ${ARCHIVE_TARGETS} PackBEAM Elixir.${main}.beam ${ARCHIVES}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create -p -s Elixir.${main} ${INCLUDE_LINES} ${avm_name}.avm Elixir.${main}.beam ${ARCHIVES}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create ${PACKBEAM_PRUNE_ARGS} -s Elixir.${main} ${INCLUDE_LINES} ${avm_name}.avm Elixir.${main}.beam ${ARCHIVES}
COMMENT "Packing runnable ${avm_name}.avm"
VERBATIM
)
Expand Down
12 changes: 10 additions & 2 deletions CMakeModules/BuildErlang.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -285,11 +285,15 @@ macro(pack_runnable avm_name main)
else()
set(INCLUDE_LINES "")
endif()
set(PACKBEAM_PRUNE_ARGS "")
if(AVM_PRUNE_RUNNABLES)
set(PACKBEAM_PRUNE_ARGS "-p")
endif()

add_custom_command(
OUTPUT ${avm_name}.avm
DEPENDS ${avm_name}_main ${main}.beam ${pack_runnable_${avm_name}_archives} ${pack_runnable_${avm_name}_archive_targets} PackBEAM
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create -p -s ${main} ${INCLUDE_LINES} ${avm_name}.avm ${main}.beam ${pack_runnable_${avm_name}_archives}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create ${PACKBEAM_PRUNE_ARGS} -s ${main} ${INCLUDE_LINES} ${avm_name}.avm ${main}.beam ${pack_runnable_${avm_name}_archives}
COMMENT "Packing runnable ${avm_name}.avm"
VERBATIM
)
Expand Down Expand Up @@ -417,11 +421,15 @@ macro(pack_uf2 avm_name main)
else()
set(INCLUDE_LINES "")
endif()
set(PACKBEAM_PRUNE_ARGS "")
if(AVM_PRUNE_RUNNABLES)
set(PACKBEAM_PRUNE_ARGS "-p")
endif()

add_custom_command(
OUTPUT ${avm_name}.avm
DEPENDS ${avm_name}_main ${main}.beam ${pack_uf2_${avm_name}_archives} ${pack_uf2_${avm_name}_archive_targets} PackBEAM
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create ${INCLUDE_LINES} -p -s ${main} ${avm_name}.avm ${main}.beam ${pack_uf2_${avm_name}_archives}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create ${INCLUDE_LINES} ${PACKBEAM_PRUNE_ARGS} -s ${main} ${avm_name}.avm ${main}.beam ${pack_uf2_${avm_name}_archives}
COMMENT "Packing runnable ${avm_name}.avm"
VERBATIM
)
Expand Down
6 changes: 5 additions & 1 deletion CMakeModules/BuildGleam.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ macro(pack_gleam_runnable avm_name main)
else()
set(INCLUDE_LINES "")
endif()
set(PACKBEAM_PRUNE_ARGS "")
if(AVM_PRUNE_RUNNABLES)
set(PACKBEAM_PRUNE_ARGS "-p")
endif()

foreach(archive_name ${ARGN})
if(${archive_name} STREQUAL "gleam_avm")
Expand All @@ -75,7 +79,7 @@ macro(pack_gleam_runnable avm_name main)
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/gleam.toml ${CMAKE_CURRENT_SOURCE_DIR}/manifest.toml ${CMAKE_CURRENT_BINARY_DIR}/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src
COMMAND gleam export erlang-shipment
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create -p -s ${main} ${INCLUDE_LINES} ${avm_name}.avm ${BEAMS} ${ARCHIVES}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create ${PACKBEAM_PRUNE_ARGS} -s ${main} ${INCLUDE_LINES} ${avm_name}.avm ${BEAMS} ${ARCHIVES}
COMMENT "Packing gleam runnable ${avm_name}.avm"
)

Expand Down
3 changes: 3 additions & 0 deletions examples/elixir/stm32/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,7 @@ project(examples_elixir_stm32)

include(BuildElixir)

# STM32 examples bundle runtime libs in the same AVM and targets are flash-constrained.
set(AVM_PRUNE_RUNNABLES ON)

pack_runnable(MultiBlink MultiBlink estdlib eavmlib exavmlib)
3 changes: 3 additions & 0 deletions examples/erlang/stm32/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ project(examples_erlang_stm32)

include(BuildErlang)

# STM32 examples bundle runtime libs in the same AVM and targets are flash-constrained.
set(AVM_PRUNE_RUNNABLES ON)

pack_runnable(blink_weact_studio_blackpill blink_weact_studio_blackpill eavmlib)
pack_runnable(blink_weact_studio_h562 blink_weact_studio_h562 eavmlib)
pack_runnable(blink_weact_studio_h743 blink_weact_studio_h743 eavmlib)
Expand Down
Loading