mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 15:05:19 +00:00
135 lines
3.3 KiB
Plaintext
135 lines
3.3 KiB
Plaintext
![]() |
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||
|
|
||
|
cmake_minimum_required (VERSION 3.0)
|
||
|
|
||
|
project(bwa_wasm C)
|
||
|
|
||
|
################ LIBZ ################
|
||
|
set(LIBZ_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../libz)
|
||
|
add_library(z_wasm STATIC
|
||
|
${LIBZ_SRC_DIR}/adler32.c
|
||
|
${LIBZ_SRC_DIR}/compress.c
|
||
|
${LIBZ_SRC_DIR}/crc32.c
|
||
|
${LIBZ_SRC_DIR}/deflate.c
|
||
|
${LIBZ_SRC_DIR}/gzclose.c
|
||
|
${LIBZ_SRC_DIR}/gzlib.c
|
||
|
${LIBZ_SRC_DIR}/gzread.c
|
||
|
${LIBZ_SRC_DIR}/gzwrite.c
|
||
|
${LIBZ_SRC_DIR}/infback.c
|
||
|
${LIBZ_SRC_DIR}/inffast.c
|
||
|
${LIBZ_SRC_DIR}/inflate.c
|
||
|
${LIBZ_SRC_DIR}/inftrees.c
|
||
|
${LIBZ_SRC_DIR}/trees.c
|
||
|
${LIBZ_SRC_DIR}/uncompr.c
|
||
|
${LIBZ_SRC_DIR}/zutil.c
|
||
|
)
|
||
|
|
||
|
set_target_properties(z_wasm PROPERTIES LINKER_LANGUAGE C)
|
||
|
|
||
|
target_compile_definitions(z_wasm PRIVATE Z_HAVE_UNISTD_H _LARGEFILE64_SOURCE=1)
|
||
|
|
||
|
target_compile_options(z_wasm
|
||
|
PRIVATE
|
||
|
-Wno-unused-function
|
||
|
-Wno-unused-variable
|
||
|
)
|
||
|
|
||
|
target_include_directories(z_wasm
|
||
|
PUBLIC
|
||
|
${LIBZ_SRC_DIR}
|
||
|
)
|
||
|
|
||
|
################ BWA_WASM ################
|
||
|
set(BWA_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||
|
set(BWA_SOURCE
|
||
|
${BWA_SRC_DIR}/utils.c
|
||
|
${BWA_SRC_DIR}/kthread.c
|
||
|
${BWA_SRC_DIR}/kstring.c
|
||
|
${BWA_SRC_DIR}/ksw.c
|
||
|
${BWA_SRC_DIR}/bwt.c
|
||
|
${BWA_SRC_DIR}/bntseq.c
|
||
|
${BWA_SRC_DIR}/bwa.c
|
||
|
${BWA_SRC_DIR}/bwamem.c
|
||
|
${BWA_SRC_DIR}/bwamem_pair.c
|
||
|
${BWA_SRC_DIR}/bwamem_extra.c
|
||
|
${BWA_SRC_DIR}/malloc_wrap.c
|
||
|
${BWA_SRC_DIR}/QSufSort.c
|
||
|
${BWA_SRC_DIR}/bwt_gen.c
|
||
|
${BWA_SRC_DIR}/rope.c
|
||
|
${BWA_SRC_DIR}/rle.c
|
||
|
${BWA_SRC_DIR}/is.c
|
||
|
${BWA_SRC_DIR}/bwtindex.c
|
||
|
${BWA_SRC_DIR}/bwashm.c
|
||
|
${BWA_SRC_DIR}/bwase.c
|
||
|
${BWA_SRC_DIR}/bwaseqio.c
|
||
|
${BWA_SRC_DIR}/bwtgap.c
|
||
|
${BWA_SRC_DIR}/bwtaln.c
|
||
|
${BWA_SRC_DIR}/bamlite.c
|
||
|
${BWA_SRC_DIR}/bwape.c
|
||
|
${BWA_SRC_DIR}/kopen.c
|
||
|
${BWA_SRC_DIR}/pemerge.c
|
||
|
${BWA_SRC_DIR}/maxk.c
|
||
|
${BWA_SRC_DIR}/bwtsw2_core.c
|
||
|
${BWA_SRC_DIR}/bwtsw2_main.c
|
||
|
${BWA_SRC_DIR}/bwtsw2_aux.c
|
||
|
${BWA_SRC_DIR}/bwt_lite.c
|
||
|
${BWA_SRC_DIR}/bwtsw2_chain.c
|
||
|
${BWA_SRC_DIR}/fastmap.c
|
||
|
${BWA_SRC_DIR}/bwtsw2_pair.c
|
||
|
${BWA_SRC_DIR}/main.c
|
||
|
)
|
||
|
|
||
|
add_executable(${PROJECT_NAME} ${BWA_SOURCE})
|
||
|
|
||
|
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME bwa.wasm)
|
||
|
|
||
|
target_include_directories(${PROJECT_NAME}
|
||
|
PRIVATE
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/../include
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/../include/SSE
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/../include/pthread
|
||
|
)
|
||
|
|
||
|
target_compile_definitions(${PROJECT_NAME}
|
||
|
PRIVATE
|
||
|
USE_MALLOC_WRAPPERS
|
||
|
__SSE__ __SSE2__ __SSE4_1__
|
||
|
_WASI_EMULATED_MMAN _WASI_EMULATED_SIGNAL
|
||
|
)
|
||
|
|
||
|
target_compile_options(${PROJECT_NAME}
|
||
|
PRIVATE
|
||
|
-Wno-unused-function
|
||
|
-Wno-unused-variable
|
||
|
)
|
||
|
|
||
|
target_link_options(${PROJECT_NAME}
|
||
|
PRIVATE
|
||
|
-Wno-unused-command-line-argument
|
||
|
LINKER:--allow-undefined,--export=__heap_base,--export=__data_end
|
||
|
LINKER:-z,stack-size=1048576
|
||
|
)
|
||
|
|
||
|
target_link_libraries(${PROJECT_NAME} z_wasm)
|
||
|
|
||
|
find_program(WASM_OPT
|
||
|
NAMES wasm-opt
|
||
|
PATHS /opt/binaryen-version_97/bin /opt/binaryen/bin
|
||
|
)
|
||
|
|
||
|
if (NOT WASM_OPT)
|
||
|
message(WARNING "can not find wasm-opt and will not optimize any wasm module")
|
||
|
endif()
|
||
|
|
||
|
add_custom_target(bwa_wasm_opt ALL
|
||
|
COMMAND
|
||
|
${WASM_OPT} -Oz --enable-simd -o bwa.opt.wasm bwa.wasm
|
||
|
BYPRODUCTS
|
||
|
${CMAKE_CURRENT_BINARY_DIR}/bwa.opt.wasm
|
||
|
WORKING_DIRECTORY
|
||
|
${CMAKE_CURRENT_BINARY_DIR}
|
||
|
)
|
||
|
|
||
|
add_dependencies(bwa_wasm_opt ${PROJECT_NAME})
|