CMakeLists.txt 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11)
  2. project(evrcc)
  3. if(CMAKE_CROSSCOMPILING)
  4. set(CMAKE_C_FLAGS "-O3 -D__ARM_ARCH__=7 -DANDROID")
  5. add_definitions(-mcpu=cortex-a8 -mfpu=neon)
  6. endif(CMAKE_CROSSCOMPILING)
  7. #include(CMakeSymbols)
  8. #include(CMakeStdOpt)
  9. set(DSP_ARM_DIR dsp_arm)
  10. set(DSP_MATH_DIR dspmath)
  11. set(CODE_DIR code)
  12. if(CMAKE_CROSSCOMPILING)
  13. enable_language(ASM-ATT)
  14. set(DSP_ARM_SRC
  15. ${DSP_ARM_DIR}/abs_s.s
  16. ${DSP_ARM_DIR}/dsp_math.c
  17. ${DSP_ARM_DIR}/l_add.s
  18. ${DSP_ARM_DIR}/l_sub.s
  19. ${DSP_ARM_DIR}/l_mac.s
  20. ${DSP_ARM_DIR}/l_msu.s
  21. ${DSP_ARM_DIR}/l_shr.s
  22. ${DSP_ARM_DIR}/l_shl.s
  23. ${DSP_ARM_DIR}/divide_s.s
  24. ${DSP_ARM_DIR}/l_abs.s
  25. ${DSP_ARM_DIR}/l_mult.s
  26. ${DSP_ARM_DIR}/mac_r.s
  27. ${DSP_ARM_DIR}/sub.s
  28. ${DSP_ARM_DIR}/add.s
  29. ${DSP_ARM_DIR}/mult_r.s
  30. ${DSP_ARM_DIR}/negate.s
  31. ${DSP_ARM_DIR}/norm_s.s
  32. ${DSP_ARM_DIR}/shr_r.s
  33. ${DSP_ARM_DIR}/shift_r.s
  34. ${DSP_ARM_DIR}/msu_r.s
  35. ${DSP_ARM_DIR}/l_negate.s
  36. ${DSP_ARM_DIR}/l_shr_r.s
  37. ${DSP_ARM_DIR}/l_shift_r.s
  38. ${DSP_ARM_DIR}/norm_l.s
  39. ${DSP_ARM_DIR}/mult.s
  40. ${DSP_ARM_DIR}/round32.s
  41. ${DSP_ARM_DIR}/shl.s
  42. ${DSP_ARM_DIR}/shr.s
  43. ${DSP_ARM_DIR}/saturate.s
  44. ${DSP_ARM_DIR}/l_mpy_ls.s
  45. ${DSP_ARM_DIR}/l_mpy_ll.s
  46. ${DSP_ARM_DIR}/div_32.s
  47. ${DSP_ARM_DIR}/fft_tabs.s
  48. ${DSP_ARM_DIR}/c_fft.s
  49. ${DSP_ARM_DIR}/test.s
  50. )
  51. set(DSP_MATH_SRC
  52. ${DSP_MATH_DIR}/mathadv.c
  53. ${DSP_MATH_DIR}/ehwutl.c
  54. ${DSP_MATH_DIR}/globdefs.c
  55. )
  56. else(CMAKE_CROSSCOMPILING)
  57. set(DSP_MATH_SRC
  58. ${DSP_MATH_DIR}/mathevrc.c
  59. ${DSP_MATH_DIR}/mathadv.c
  60. ${DSP_MATH_DIR}/ehwutl.c
  61. ${DSP_MATH_DIR}/globdefs.c
  62. ${DSP_MATH_DIR}/mathdp31.c)
  63. endif(CMAKE_CROSSCOMPILING)
  64. set(CODE_SRC
  65. ${CODE_DIR}/acb_ex.c
  66. ${CODE_DIR}/acelp_pf.c
  67. ${CODE_DIR}/apf.c
  68. ${CODE_DIR}/auto.c
  69. ${CODE_DIR}/a2lsp.c
  70. ${CODE_DIR}/bitpack.c
  71. ${CODE_DIR}/bitupack.c
  72. ${CODE_DIR}/bl_intrp.c
  73. ${CODE_DIR}/bqiir.c
  74. ${CODE_DIR}/c3_10pf.c
  75. ${CODE_DIR}/c8_35pf.c
  76. ${CODE_DIR}/comacb.c
  77. ${CODE_DIR}/convh.c
  78. ${CODE_DIR}/cshift.c
  79. ${CODE_DIR}/d3_10pf.c
  80. ${CODE_DIR}/d8_35pf.c
  81. ${CODE_DIR}/decode.c
  82. ${CODE_DIR}/d_fer.c
  83. ${CODE_DIR}/d_no_fer.c
  84. ${CODE_DIR}/d_rate_1.c
  85. ${CODE_DIR}/durbin.c
  86. ${CODE_DIR}/encode.c
  87. ${CODE_DIR}/fcbgq.c
  88. ${CODE_DIR}/fer.c
  89. ${CODE_DIR}/filter.c
  90. ${CODE_DIR}/fndppf.c
  91. ${CODE_DIR}/getext1k.c
  92. ${CODE_DIR}/getgain.c
  93. ${CODE_DIR}/getres.c
  94. ${CODE_DIR}/impulser.c
  95. ${CODE_DIR}/interpol.c
  96. ${CODE_DIR}/intr_cos.c
  97. ${CODE_DIR}/inv_sqrt.c
  98. ${CODE_DIR}/lpcana.c
  99. ${CODE_DIR}/lspmaq.c
  100. ${CODE_DIR}/lsp2a.c
  101. ${CODE_DIR}/maxeloc.c
  102. ${CODE_DIR}/mdfyorig.c
  103. ${CODE_DIR}/mod.c
  104. ${CODE_DIR}/ns127.c
  105. ${CODE_DIR}/pit_shrp.c
  106. ${CODE_DIR}/pktoav.c
  107. ${CODE_DIR}/pre_enc.c
  108. ${CODE_DIR}/putacbc.c
  109. ${CODE_DIR}/r_fft.c
  110. ${CODE_DIR}/rda.c
  111. ${CODE_DIR}/rom.c
  112. ${CODE_DIR}/synfltr.c
  113. ${CODE_DIR}/weight.c
  114. ${CODE_DIR}/w2res.c
  115. ${CODE_DIR}/zeroinpt.c
  116. ${CODE_DIR}/globs.c
  117. ${CODE_DIR}/e_globs.c
  118. ${CODE_DIR}/d_globs.c
  119. )
  120. if(CMAKE_CROSSCOMPILING)
  121. set(EVRCC_SRC ${DSP_ARM_SRC} ${DSP_MATH_SRC} ${CODE_SRC} evrcc.c evrcpacket.c)
  122. else(CMAKE_CROSSCOMPILING)
  123. set(EVRCC_SRC ${DSP_MATH_SRC} ${CODE_SRC} evrcc.c evrcpacket.c)
  124. endif(CMAKE_CROSSCOMPILING)
  125. add_library(evrcc SHARED ${EVRCC_SRC} ${EVRCC_HEADER})
  126. if(CMAKE_CROSSCOMPILING)
  127. else()
  128. target_compile_options(evrcc PRIVATE "-fvisibility=hidden")
  129. endif()
  130. target_include_directories(evrcc
  131. PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
  132. PRIVATE include
  133. PRIVATE ${DSP_MATH_DIR}
  134. PRIVATE ${CODE_DIR}
  135. )
  136. install(TARGETS evrcc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
  137. target_link_libraries(evrcc m)
  138. add_executable(evrc_codec evrc_codec.cpp)
  139. target_link_libraries(evrc_codec evrcc)
  140. target_link_libraries(evrc_codec m)
  141. install(TARGETS evrc_codec DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
  142. #add_symbols(evrcc)