Skip to content
Draft
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
18 changes: 9 additions & 9 deletions CMakeModules/BuildElixir.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ macro(pack_archive avm_name)
)

if(AVM_RELEASE)
set(INCLUDE_LINES "")
set(INCLUDE_LINES "--remove_lines")
else()
set(INCLUDE_LINES "-i")
set(INCLUDE_LINES "")
endif()

add_custom_command(
OUTPUT ${avm_name}.avm
DEPENDS ${avm_name}_beams PackBEAM
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM -a ${INCLUDE_LINES} ${avm_name}.avm ${BEAMS}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create ${INCLUDE_LINES} ${avm_name}.avm ${BEAMS}
COMMENT "Packing archive ${avm_name}.avm"
VERBATIM
)
Expand Down Expand Up @@ -74,9 +74,9 @@ macro(pack_runnable avm_name main)
)

if(AVM_RELEASE)
set(INCLUDE_LINES "")
set(INCLUDE_LINES "--remove_lines")
else()
set(INCLUDE_LINES "-i")
set(INCLUDE_LINES "")
endif()

foreach(archive_name ${ARGN})
Expand All @@ -91,7 +91,7 @@ macro(pack_runnable avm_name main)
add_custom_command(
OUTPUT ${avm_name}.avm
DEPENDS ${avm_name}_main ${ARCHIVE_TARGETS} PackBEAM
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM ${INCLUDE_LINES} ${avm_name}.avm 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}
COMMENT "Packing runnable ${avm_name}.avm"
VERBATIM
)
Expand Down Expand Up @@ -146,9 +146,9 @@ macro(pack_test avm_name main)
)

if(AVM_RELEASE)
set(INCLUDE_LINES "")
set(INCLUDE_LINES "--remove_lines")
else()
set(INCLUDE_LINES "-i")
set(INCLUDE_LINES "")
endif()

# Set up standard libraries
Expand All @@ -168,7 +168,7 @@ macro(pack_test avm_name main)
add_custom_command(
OUTPUT ${avm_name}.avm
DEPENDS ${avm_name}_main ${avm_name}_tests ${ARCHIVE_TARGETS} PackBEAM
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM ${INCLUDE_LINES} ${avm_name}.avm Elixir.${main}.beam ${TEST_BEAMS} ${ARCHIVES}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create ${INCLUDE_LINES} ${avm_name}.avm Elixir.${main}.beam ${TEST_BEAMS} ${ARCHIVES}
COMMENT "Packing test ${avm_name}.avm"
VERBATIM
)
Expand Down
34 changes: 17 additions & 17 deletions CMakeModules/BuildErlang.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,15 @@ macro(pack_archive avm_name)
endforeach()

if(AVM_RELEASE)
set(INCLUDE_LINES "")
set(INCLUDE_LINES "--remove_lines")
else()
set(INCLUDE_LINES "-i")
set(INCLUDE_LINES "")
endif()

add_custom_command(
OUTPUT ${avm_name}.avm
DEPENDS ${pack_archive_${avm_name}_beams} PackBEAM
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM -a ${INCLUDE_LINES} ${avm_name}.avm ${pack_archive_${avm_name}_beams}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create --lib ${INCLUDE_LINES} ${avm_name}.avm ${pack_archive_${avm_name}_beams}
COMMENT "Packing archive ${avm_name}.avm"
VERBATIM
)
Expand Down Expand Up @@ -146,15 +146,15 @@ macro(pack_lib avm_name)
endforeach()

if(AVM_RELEASE)
set(INCLUDE_LINES "")
set(INCLUDE_LINES "--remove_lines")
else()
set(INCLUDE_LINES "-i")
set(INCLUDE_LINES "")
endif()

add_custom_command(
OUTPUT ${avm_name}.avm
DEPENDS ${pack_lib_${avm_name}_archive_targets} ${pack_lib_${avm_name}_emu_archives} ${pack_lib_${avm_name}_archives} PackBEAM
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM -a ${INCLUDE_LINES} ${avm_name}.avm ${pack_lib_${avm_name}_emu_archives} ${pack_lib_${avm_name}_archives}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create --lib ${INCLUDE_LINES} ${avm_name}.avm ${pack_lib_${avm_name}_emu_archives} ${pack_lib_${avm_name}_archives}
COMMENT "Packing lib ${avm_name}.avm"
VERBATIM
)
Expand All @@ -173,7 +173,7 @@ macro(pack_lib avm_name)
add_custom_command(
OUTPUT ${avm_name}-${jit_target_arch_variant}.avm
DEPENDS ${pack_lib_${avm_name}_archive_targets} ${pack_lib_${avm_name}_jit_archives_${jit_target_arch_variant}} PackBEAM
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM -a ${INCLUDE_LINES} ${avm_name}-${jit_target_arch_variant}.avm ${pack_lib_${avm_name}_jit_archives_${jit_target_arch_variant}} ${pack_lib_${avm_name}_archives}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create --lib ${INCLUDE_LINES} ${avm_name}-${jit_target_arch_variant}.avm ${pack_lib_${avm_name}_jit_archives_${jit_target_arch_variant}} ${pack_lib_${avm_name}_archives}
COMMENT "Packing lib ${avm_name}-${jit_target_arch_variant}.avm"
VERBATIM
)
Expand Down Expand Up @@ -281,15 +281,15 @@ macro(pack_runnable avm_name main)
endif()

if(AVM_RELEASE)
set(INCLUDE_LINES "")
set(INCLUDE_LINES "--remove_lines")
else()
set(INCLUDE_LINES "-i")
set(INCLUDE_LINES "")
endif()

add_custom_command(
OUTPUT ${avm_name}.avm
DEPENDS ${avm_name}_main ${pack_runnable_${avm_name}_archive_targets} PackBEAM
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM ${INCLUDE_LINES} ${avm_name}.avm ${main}.beam ${pack_runnable_${avm_name}_archives}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create -p -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 @@ -322,9 +322,9 @@ macro(pack_test test_avm_name)
endforeach()

if(AVM_RELEASE)
set(INCLUDE_LINES "")
set(INCLUDE_LINES "--remove_lines")
else()
set(INCLUDE_LINES "-i")
set(INCLUDE_LINES "")
endif()

add_custom_command(
Expand All @@ -337,7 +337,7 @@ macro(pack_test test_avm_name)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${test_avm_name}.avm
DEPENDS ${pack_test_${test_avm_name}_archive_targets} PackBEAM tests.beam
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM ${INCLUDE_LINES} ${CMAKE_CURRENT_BINARY_DIR}/${test_avm_name}.avm ${CMAKE_CURRENT_BINARY_DIR}/tests.beam ${pack_test_${test_avm_name}_archives}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create ${INCLUDE_LINES} ${CMAKE_CURRENT_BINARY_DIR}/${test_avm_name}.avm ${CMAKE_CURRENT_BINARY_DIR}/tests.beam ${pack_test_${test_avm_name}_archives}
COMMENT "Packing runnable ${test_avm_name}.avm"
VERBATIM
)
Expand Down Expand Up @@ -369,15 +369,15 @@ macro(pack_eunit test_avm_name)
endforeach()

if(AVM_RELEASE)
set(INCLUDE_LINES "")
set(INCLUDE_LINES "--remove_lines")
else()
set(INCLUDE_LINES "-i")
set(INCLUDE_LINES "")
endif()

add_custom_command(
OUTPUT ${test_avm_name}.avm
DEPENDS ${pack_eunit_${test_avm_name}_archive_targets} PackBEAM ${CMAKE_BINARY_DIR}/libs/etest/src/beams/eunit.beam
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM ${INCLUDE_LINES} ${CMAKE_CURRENT_BINARY_DIR}/${test_avm_name}.avm ${CMAKE_BINARY_DIR}/libs/etest/src/beams/eunit.beam ${pack_eunit_${test_avm_name}_archives}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create ${INCLUDE_LINES} ${CMAKE_CURRENT_BINARY_DIR}/${test_avm_name}.avm ${CMAKE_BINARY_DIR}/libs/etest/src/beams/eunit.beam ${pack_eunit_${test_avm_name}_archives}
COMMENT "Packing runnable ${test_avm_name}.avm"
VERBATIM
)
Expand Down Expand Up @@ -415,7 +415,7 @@ macro(pack_uf2 avm_name main)
add_custom_command(
OUTPUT ${avm_name}.avm
DEPENDS ${avm_name}_main ${pack_uf2_${avm_name}_archive_targets} PackBEAM
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM ${avm_name}.avm ${main}.beam ${pack_uf2_${avm_name}_archives}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create -p -s ${main} ${avm_name}.avm ${main}.beam ${pack_uf2_${avm_name}_archives}
COMMENT "Packing runnable ${avm_name}.avm"
VERBATIM
)
Expand Down
12 changes: 6 additions & 6 deletions CMakeModules/BuildGleam.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ macro(pack_gleam_archive avm_name)
endforeach()

if(AVM_RELEASE)
set(INCLUDE_LINES "")
set(INCLUDE_LINES "--remove_lines")
else()
set(INCLUDE_LINES "-i")
set(INCLUDE_LINES "")
endif()

add_custom_command(
Expand All @@ -39,7 +39,7 @@ macro(pack_gleam_archive avm_name)
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 -a ${INCLUDE_LINES} ${avm_name}.avm ${BEAMS}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create --lib ${INCLUDE_LINES} ${avm_name}.avm ${BEAMS}
COMMENT "Packing gleam archive ${avm_name}.avm"
VERBATIM
)
Expand All @@ -55,9 +55,9 @@ macro(pack_gleam_runnable avm_name main)
list(APPEND BEAMS ${CMAKE_CURRENT_BINARY_DIR}/build/prod/erlang/*/ebin/*.beam)

if(AVM_RELEASE)
set(INCLUDE_LINES "")
set(INCLUDE_LINES "--remove_lines")
else()
set(INCLUDE_LINES "-i")
set(INCLUDE_LINES "")
endif()

foreach(archive_name ${ARGN})
Expand All @@ -75,7 +75,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 ${INCLUDE_LINES} ${avm_name}.avm ${BEAMS} ${ARCHIVES}
COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/packbeam create -p -s ${main} ${INCLUDE_LINES} ${avm_name}.avm ${BEAMS} ${ARCHIVES}
COMMENT "Packing gleam runnable ${avm_name}.avm"
)

Expand Down
12 changes: 9 additions & 3 deletions doc/src/build-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ Source code is organized as follows:

* `src` Contains the core AtomVM virtual machine source code;
* `lib` Contains the Erlang and Elixir core library source code;
* `tools` Contains AtomVM tooling, including the `PackBEAM` executable, as well as build support tooling;
* `tools` Contains build support tooling;
* `examples` Contains sample programs for demonstration purposes;
* `tests` Contains test code run as part of test qualification;
* `doc` Contains documentation source code and content.
Expand All @@ -73,11 +73,17 @@ The `src` directory is broken up into the core platform-independent AtomVM libra

## External dependencies

### `packbeam`

AtomVM depends on `packbeam`. It is used to pack beams as well as assets into AtomVM pack format, `.avm`. `packbeam` source code is downloaded automatically by `rebar3` from `hex` mirrors, and it is then escriptized.

It is possible to use a local copy of `packbeam` source code by setting `PACKBEAM_PATH` variable to a path to a source checkout of [`atomvm_packbeam`](https://github.com/atomvm/atomvm_packbeam) when invoking CMake.

### `uf2tool`

AtomVM depends on `uf2tool`. It is used to pack both native and Erlang/Elixir/Gleam code for RP2. uf2tool is downloaded automatically by `rebar3` from `hex` mirrors.
AtomVM depends on `uf2tool`. It is used to pack both native and Erlang/Elixir/Gleam code for RP2. `uf2tool` source code is downloaded automatically by `rebar3` from `hex` mirrors.

It is possible to use a local copy of uf2tool by setting `UF2TOOL_PATH` variable to a path to a source checkout of [`uf2tool`](https://github.com/pguyot/uf2tool) when invoking CMake.
It is possible to use a local copy of `uf2tool` source code by setting `UF2TOOL_PATH` variable to a path to a source checkout of [`uf2tool`](https://github.com/pguyot/uf2tool) when invoking CMake.

## Platform Specific Build Instructions

Expand Down
8 changes: 4 additions & 4 deletions libs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59,25 +59,25 @@ if (Dialyzer_FOUND)
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/estdlib_beams.txt
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/estdlib/src/estdlib.avm PackBEAM
COMMAND
${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM -l ${CMAKE_CURRENT_BINARY_DIR}/estdlib/src/estdlib.avm | sed -e 's|^|${CMAKE_CURRENT_BINARY_DIR}/estdlib/src/beams/|g' > ${CMAKE_CURRENT_BINARY_DIR}/estdlib_beams.txt
${CMAKE_BINARY_DIR}/tools/packbeam/packbeam list -f bare ${CMAKE_CURRENT_BINARY_DIR}/estdlib/src/estdlib.avm | sed -e 's|^|${CMAKE_CURRENT_BINARY_DIR}/estdlib/src/beams/|g' > ${CMAKE_CURRENT_BINARY_DIR}/estdlib_beams.txt
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/eavmlib_beams.txt
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/eavmlib/src/eavmlib.avm PackBEAM
COMMAND
${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM -l ${CMAKE_CURRENT_BINARY_DIR}/eavmlib/src/eavmlib.avm | sed -e 's|^|${CMAKE_CURRENT_BINARY_DIR}/eavmlib/src/beams/|g' > ${CMAKE_CURRENT_BINARY_DIR}/eavmlib_beams.txt
${CMAKE_BINARY_DIR}/tools/packbeam/packbeam list -f bare ${CMAKE_CURRENT_BINARY_DIR}/eavmlib/src/eavmlib.avm | sed -e 's|^|${CMAKE_CURRENT_BINARY_DIR}/eavmlib/src/beams/|g' > ${CMAKE_CURRENT_BINARY_DIR}/eavmlib_beams.txt
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/alisp_beams.txt
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/alisp/src/alisp.avm PackBEAM
COMMAND
${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM -l ${CMAKE_CURRENT_BINARY_DIR}/alisp/src/alisp.avm | sed -e 's|^|${CMAKE_CURRENT_BINARY_DIR}/alisp/src/beams/|g' > ${CMAKE_CURRENT_BINARY_DIR}/alisp_beams.txt
${CMAKE_BINARY_DIR}/tools/packbeam/packbeam list -f bare ${CMAKE_CURRENT_BINARY_DIR}/alisp/src/alisp.avm | sed -e 's|^|${CMAKE_CURRENT_BINARY_DIR}/alisp/src/beams/|g' > ${CMAKE_CURRENT_BINARY_DIR}/alisp_beams.txt
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/jit_beams.txt
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/jit/src/jit.avm PackBEAM
COMMAND
${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM -l ${CMAKE_CURRENT_BINARY_DIR}/jit/src/jit.avm | sed -e 's|^|${CMAKE_CURRENT_BINARY_DIR}/jit/src/beams/|g' | grep -v jit_precompile > ${CMAKE_CURRENT_BINARY_DIR}/jit_beams.txt
${CMAKE_BINARY_DIR}/tools/packbeam/packbeam list -f bare ${CMAKE_CURRENT_BINARY_DIR}/jit/src/jit.avm | sed -e 's|^|${CMAKE_CURRENT_BINARY_DIR}/jit/src/beams/|g' | grep -v jit_precompile > ${CMAKE_CURRENT_BINARY_DIR}/jit_beams.txt
)
set(dialyzer_lists
${CMAKE_CURRENT_BINARY_DIR}/estdlib_beams.txt
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ compile_erlang(test_tz)

add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/esp32_test_modules.avm"
COMMAND HostAtomVM-prefix/src/HostAtomVM-build/tools/packbeam/PackBEAM -i esp32_test_modules.avm
COMMAND HostAtomVM-prefix/src/HostAtomVM-build/tools/packbeam/packbeam create esp32_test_modules.avm
HostAtomVM-prefix/src/HostAtomVM-build/libs/atomvmlib.avm
test_esp_partition.beam
test_file.beam
Expand Down
2 changes: 1 addition & 1 deletion src/platforms/rp2/tests/test_erl_sources/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ endif()

add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/rp2_test_modules.avm"
COMMAND HostAtomVM-prefix/src/HostAtomVM-build/tools/packbeam/PackBEAM -i rp2_test_modules.avm
COMMAND HostAtomVM-prefix/src/HostAtomVM-build/tools/packbeam/packbeam create rp2_test_modules.avm
HostAtomVM-prefix/src/HostAtomVM-build/libs/atomvmlib.avm
${erlang_test_beams}
DEPENDS
Expand Down
53 changes: 20 additions & 33 deletions tools/packbeam/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#
# This file is part of AtomVM.
#
# Copyright 2018-2020 Davide Bettio <davide@uninstall.it>
# Copyright 2025 Paul Guyot <pguyot@kallisys.net>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -21,41 +21,28 @@
cmake_minimum_required (VERSION 3.13)
project (PackBEAM)

set(PACKBEAM_SOURCES
packbeam.c
)
set(PACKBEAM_PATH "" CACHE PATH "Path to PackBEAM source tree. If unset, hex package will be used")

add_executable(PackBEAM ${PACKBEAM_SOURCES})
target_compile_features(PackBEAM PUBLIC c_std_11)
if(CMAKE_COMPILER_IS_GNUCC)
target_compile_options(PackBEAM PUBLIC -Wall -pedantic -Wextra -ggdb)
if(NOT PACKBEAM_PATH STREQUAL "")
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/_checkouts)
file(CREATE_LINK ${PACKBEAM_PATH} ${CMAKE_CURRENT_BINARY_DIR}/_checkouts/packbeam SYMBOLIC)
endif()

find_package(ZLIB)
if (ZLIB_FOUND)
target_compile_definitions(PackBEAM PUBLIC WITH_ZLIB)
target_link_libraries(PackBEAM PRIVATE ${ZLIB_LIBRARIES})
endif (ZLIB_FOUND)

if((${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") OR
(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") OR
(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") OR
(${CMAKE_SYSTEM_NAME} STREQUAL "DragonFly"))
target_include_directories(PackBEAM PRIVATE ../../src/platforms/generic_unix/lib)
else()
message(FATAL_ERROR "Unsupported platform: ${CMAKE_SYSTEM_NAME}")
endif()
set(
PLATFORM_LIB_SUFFIX
${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}
add_custom_command(
OUTPUT packbeam
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/rebar.config
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/rebar.config rebar.config
COMMAND rebar3 escriptize && cp _build/default/bin/packbeam .
VERBATIM
)
target_link_libraries(PackBEAM PRIVATE libAtomVM${PLATFORM_LIB_SUFFIX})

target_include_directories(PackBEAM PUBLIC ../../src/libAtomVM)
target_link_libraries(PackBEAM PRIVATE libAtomVM)
add_custom_target(
PackBEAM ALL
DEPENDS packbeam
)

if (COVERAGE)
include(CodeCoverage)
append_coverage_compiler_flags_to_target(PackBEAM)
append_coverage_linker_flags_to_target(PackBEAM)
endif()
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/packbeam
DESTINATION bin
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
Loading
Loading