CMakeLists.txt 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. # Copyright (C) 2019 Intel Corporation. All rights reserved.
  2. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  3. cmake_minimum_required (VERSION 3.0)
  4. project(bench-meshoptimizer)
  5. ################ WASI-SDK ################
  6. find_path(WASI_SDK_HOME
  7. NAMES wasi-sdk
  8. PATHS /opt/
  9. REQUIRED
  10. )
  11. if (NOT WASI_SDK_HOME)
  12. message(FATAL_ERROR
  13. "can not find wasi-sdk. "
  14. "please download it from "
  15. "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz "
  16. "and install it under /opt/wasi-sdk"
  17. )
  18. endif()
  19. #
  20. # check clang version
  21. execute_process(COMMAND
  22. ${WASI_SDK_HOME}/wasi-sdk/bin/clang --version
  23. OUTPUT_VARIABLE clang_full_version_string
  24. )
  25. string(REGEX REPLACE ".*clang version ([0-9]+\\.[0-9]+).*" "\\1"
  26. CLANG_VERSION_STRING ${clang_full_version_string}
  27. )
  28. message("cur clang version is ${CLANG_VERSION_STRING}")
  29. if(CLANG_VERSION_STRING VERSION_LESS 11.0)
  30. message(FATAL_ERROR
  31. "please install latest wai-sdk to get a clang-11 at least"
  32. )
  33. endif()
  34. ################ BINARYEN ################
  35. find_program(WASM_OPT
  36. NAMES wasm-opt
  37. PATHS /opt/binaryen-version_97/bin /opt/binaryen/bin
  38. )
  39. if (NOT WASM_OPT)
  40. message(FATAL_ERROR
  41. "can not find wasm-opt. "
  42. "please download it from "
  43. "https://github.com/WebAssembly/binaryen/releases/download/version_97/binaryen-version_97-x86_64-linux.tar.gz "
  44. "and install it under /opt"
  45. )
  46. endif()
  47. ################ MESHOPTIMIZER ################
  48. include(ExternalProject)
  49. ExternalProject_Add(codecbench
  50. PREFIX codecbench
  51. GIT_REPOSITORY https://github.com/zeux/meshoptimizer.git
  52. GIT_TAG master
  53. GIT_SHALLOW ON
  54. GIT_PROGRESS ON
  55. SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/meshoptimizer
  56. UPDATE_COMMAND git clean -fd && git checkout -- *
  57. && ${CMAKE_COMMAND} -E echo "Applying patch"
  58. && git apply ${CMAKE_CURRENT_SOURCE_DIR}/codecbench.patch
  59. CONFIGURE_COMMAND ${CMAKE_COMMAND}
  60. -DWASI_SDK_PREFIX=${WASI_SDK_HOME}/wasi-sdk
  61. -DCMAKE_TOOLCHAIN_FILE=${WASI_SDK_HOME}/wasi-sdk/share/cmake/wasi-sdk.cmake
  62. ${CMAKE_CURRENT_SOURCE_DIR}/meshoptimizer
  63. BUILD_COMMAND make codecbench.opt
  64. INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ./codecbench.opt.wasm ${CMAKE_CURRENT_SOURCE_DIR}/build/codecbench.wasm
  65. )