fix[cmake]: Fix libm / libmvec compile error

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I431aa784db20494a4df89fae366ccd428dafa7d5
This commit is contained in:
Herman Chen 2025-10-22 09:51:00 +08:00
parent 2ee4a5518b
commit d1855e020d
3 changed files with 12 additions and 24 deletions

View file

@ -120,31 +120,10 @@ endif(UNIX)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(CLANG true)
endif()
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
set(INTEL_CXX true)
endif()
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
set(GCC true)
endif()
if(INTEL_CXX AND UNIX)
# treat icpc roughly like gcc
set(GCC true)
add_definitions(-Wall -Wextra -Wshadow)
elseif(CLANG)
# treat clang roughly like gcc
set(GCC true)
add_definitions(-Wall -Wextra -Wshadow -ffast-math)
elseif(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-Wall -Wextra -Wshadow -ffast-math)
check_cxx_compiler_flag(-Wno-narrowing GCC_HAS_NO_NARROWING)
check_cxx_compiler_flag(-mstackrealign GCC_HAS_STACK_REALIGN)
if (GCC_HAS_STACK_REALIGN)
add_definitions(-mstackrealign)
endif()
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
endif()
if(GCC)
if(ARM)
if(ARMEABI_V6)
@ -184,6 +163,15 @@ if(GCC)
# save intermediate files
# add_definitions(-save-temps)
# check library mvec
find_library(LMVEC_LIB mvec)
if(LMVEC_LIB)
set(LIBM mvec m)
else()
set(LIBM m)
add_definitions(-fno-builtin-pow)
endif()
# for libary linking
set(BEGIN_WHOLE_ARCHIVE -Wl,--whole-archive)
set(END_WHOLE_ARCHIVE -Wl,--no-whole-archive)

View file

@ -63,7 +63,7 @@ endif()
set_target_properties(${MPP_SHARED} PROPERTIES FOLDER "mpp")
set_target_properties(${MPP_SHARED} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
target_link_libraries(${MPP_SHARED} mpp_codec mpp_hal mpp_vproc kmpp
${BEGIN_WHOLE_ARCHIVE} mpp_base kmpp_base osal ${END_WHOLE_ARCHIVE} m)
${BEGIN_WHOLE_ARCHIVE} mpp_base kmpp_base osal ${END_WHOLE_ARCHIVE} ${LIBM})
# build static library
add_library(${MPP_STATIC} STATIC ${MPP_SRC})

View file

@ -77,9 +77,9 @@ if(ANDROID)
# in Android pthread is in libc, also need liblog
# Android 14 requires libc++ not libstdc++
if("${ANDROID_STL}" STREQUAL "c++_static")
target_link_libraries(osal log m)
target_link_libraries(osal log ${LIBM})
else()
target_link_libraries(osal log stdc++ m)
target_link_libraries(osal log stdc++ ${LIBM})
endif()
endif(ANDROID)