| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- # Copyright (C) 2019 Intel Corporation. All rights reserved.
- # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- cmake_minimum_required (VERSION 3.14)
- project(bwa_wasm C)
- list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake)
- ################ dependencies ################
- find_package(Binaryen 111 REQUIRED)
- ################ 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_compile_definitions(${PROJECT_NAME}
- PRIVATE
- USE_MALLOC_WRAPPERS
- __SSE__ __SSE2__ __SSE4_1__
- _WASI_EMULATED_MMAN _WASI_EMULATED_SIGNAL _WASI_EMULATED_PROCESS_CLOCKS
- )
- target_compile_options(${PROJECT_NAME}
- PRIVATE
- -Wno-unused-function
- -Wno-unused-variable
- -msimd128
- )
- 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 wasi-emulated-process-clocks)
- add_custom_target(bwa_wasm_opt ALL
- COMMAND
- ${Binaryen_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})
|