2022-12-29 20:29:17 +01:00
|
|
|
CMAKE_MINIMUM_REQUIRED(VERSION 3.14.0 FATAL_ERROR)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
|
|
|
|
include_directories(
|
|
|
|
${INCLUDE_DIRECTORIES}
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../include
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../depends/relic/include
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/../depends/relic/include
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../depends/catch2/include
|
|
|
|
)
|
|
|
|
|
|
|
|
file(GLOB_RECURSE WRAP_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/wrappers/*.h)
|
|
|
|
file(GLOB_RECURSE WRAP_SRC ${CMAKE_CURRENT_SOURCE_DIR}/wrappers/*.cpp)
|
|
|
|
|
2023-03-16 17:34:17 +01:00
|
|
|
add_executable(blsjstmp ${CMAKE_CURRENT_SOURCE_DIR}/jsbindings.cpp
|
2022-12-29 20:29:17 +01:00
|
|
|
${WRAP_HEADERS} ${WRAP_SRC} ${CMAKE_CURRENT_SOURCE_DIR}/helpers.h ${CMAKE_CURRENT_SOURCE_DIR}/helpers.cpp
|
|
|
|
)
|
|
|
|
add_custom_target(install_npm_dependencies npm ci)
|
2023-03-16 17:34:17 +01:00
|
|
|
add_dependencies(blsjstmp install_npm_dependencies)
|
|
|
|
target_link_libraries(blsjstmp PRIVATE dashbls)
|
2022-12-29 20:29:17 +01:00
|
|
|
|
|
|
|
# Copy necessary files for the npm package
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/package.json package.json COPYONLY)
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/package-lock.json package-lock.json COPYONLY)
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/blsjs.d.ts blsjs.d.ts COPYONLY)
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/README.md README.md COPYONLY)
|
2023-03-16 17:34:17 +01:00
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/bundle_wasm_for_web.js bundle_wasm_for_web.js COPYONLY)
|
2022-12-29 20:29:17 +01:00
|
|
|
|
|
|
|
# Copy test files
|
2023-03-16 17:34:17 +01:00
|
|
|
file(GLOB JS_BINDINGS_TESTS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/tests/ ${CMAKE_CURRENT_SOURCE_DIR}/tests/*)
|
2022-12-29 20:29:17 +01:00
|
|
|
foreach(file ${JS_BINDINGS_TESTS})
|
|
|
|
message(FILE ${file})
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tests/${file} tests/${file} COPYONLY)
|
|
|
|
endforeach()
|
|
|
|
|
2023-03-16 17:34:17 +01:00
|
|
|
set_target_properties(blsjstmp PROPERTIES LINK_FLAGS "--bind -Oz --closure 1 -s MODULARIZE=1 -s NODEJS_CATCH_EXIT=1 -s NODEJS_CATCH_REJECTION=1")
|
|
|
|
add_custom_command(TARGET blsjstmp POST_BUILD COMMAND npm run build:web)
|