
cmake_minimum_required(VERSION 3.12)
include(ExternalProject)

project(wasme)
set(TARGET wasme-test)

# Setup WASM3 for building / linking
ExternalProject_Add(
    wasm3
    GIT_REPOSITORY https://github.com/ryankurte/wasm3.git
    GIT_TAG fix/externalproject-build
    CMAKE_ARGS -DWASIENV=1 -DBUILD_WASI=simple -DCMAKE_BUILD_TYPE=debug -DM3_USE_EXTENSIONS=1
    UPDATE_COMMAND ""
    INSTALL_COMMAND cp source/libm3.a ${CMAKE_CURRENT_BINARY_DIR}
)
ExternalProject_Get_Property(wasm3 source_dir)
include_directories(${source_dir}/source)

ExternalProject_Get_Property(wasm3 binary_dir)
link_directories(${binary_dir}/source/)
set(WASM3_LIB ${binary_dir}/source/libm3.a)

# Setup library
include_directories(inc)

set(WASME_SOURCES
    src/core.c
    src/i2c.c
)

if(NOT DEFINED WASME_NO_CXX)
set(WASME_SOURCES ${WASME_SOURCES} src/i2c_wrap.cpp)
endif()

add_library(wasme ${WASME_SOURCES})
add_dependencies(wasme wasm3)
target_link_libraries(wasme ${WASM3_LIB})

install(TARGETS wasme ARCHIVE DESTINATION .)
install(FILES ${WASM3_LIB} DESTINATION .)
