CMakeLists.avx_wasm.txt 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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.14)
  4. project(testavx)
  5. list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake)
  6. ################ dependencies ################
  7. find_package(Binaryen 111 REQUIRED)
  8. ################ AOM ################
  9. set(ENABLE_CCACHE ON)
  10. set(ENABLE_DOCS OFF CACHE BOOL "ENABLE_DOCS" FORCE)
  11. set(ENABLE_EXAMPLES OFF CACHE BOOL "ENABLE_EXAMPLES" FORCE)
  12. set(ENABLE_NEON OFF CACHE BOOL "ENABLE_EXAMPLES" FORCE)
  13. set(ENABLE_NEON_ASM OFF CACHE BOOL "ENABLE_EXAMPLES" FORCE)
  14. set(ENABLE_VSX OFF CACHE BOOL "ENABLE_EXAMPLES" FORCE)
  15. set(ENABLE_MMX OFF CACHE BOOL "ENABLE_EXAMPLES" FORCE)
  16. set(AOM_TARGET_CPU generic)
  17. set(CONFIG_ACCOUNTING 1 CACHE NUMBER "" FORCE)
  18. set(CONFIG_INSPECTION 1 CACHE NUMBER "" FORCE)
  19. set(CONFIG_MULTITHREAD 0 CACHE NUMBER "" FORCE)
  20. set(CONFIG_RUNTIME_CPU_DETECT 0 CACHE NUMBER "" FORCE)
  21. set(CONFIG_UNIT_TESTS 0 CACHE NUMBER "" FORCE)
  22. set(CONFIG_WEBM_IO 0 CACHE NUMBER "" FORCE)
  23. add_subdirectory(third_party/aom third_party/aom/bin EXCLUDE_FROM_ALL)
  24. ################ AV ################
  25. add_executable(${PROJECT_NAME}
  26. test.c
  27. decode-av1.c
  28. )
  29. target_include_directories(${PROJECT_NAME}
  30. PRIVATE
  31. third_party/aom/
  32. ${CMAKE_CURRENT_BINARY_DIR}/third_party/aom/bin
  33. )
  34. set_target_properties(${PROJECT_NAME}
  35. PROPERTIES
  36. OUTPUT_NAME ${PROJECT_NAME}.wasm
  37. )
  38. target_link_options(${PROJECT_NAME}
  39. PRIVATE
  40. LINKER:--allow-undefined
  41. LINKER:--export=__heap_base
  42. LINKER:--export=__data_end
  43. LINKER:--initial-memory=33554432
  44. LINKER:-z,stack-size=25165824
  45. )
  46. target_link_libraries(${PROJECT_NAME}
  47. PRIVATE
  48. aom
  49. )
  50. add_dependencies(${PROJECT_NAME} aom)
  51. add_custom_target(${PROJECT_NAME}_opt ALL
  52. COMMAND
  53. ${Binaryen_WASM_OPT} -Oz --enable-simd -o ${PROJECT_NAME}.opt.wasm ${PROJECT_NAME}.wasm
  54. BYPRODUCTS
  55. ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.opt.wasm
  56. WORKING_DIRECTORY
  57. ${CMAKE_CURRENT_BINARY_DIR}
  58. )
  59. add_dependencies(${PROJECT_NAME}_opt ${PROJECT_NAME})