mirror of
https://github.com/opencv/opencv.git
synced 2024-12-13 07:59:27 +08:00
b1ea91d8bd
* Added MSA implementations for mips platforms. Intrinsics for MSA and build scripts for MIPS platforms are added. Signed-off-by: Fei Wu <fwu@wavecomp.com> * Removed some unused code in mips.toolchain.cmake. Signed-off-by: Fei Wu <fwu@wavecomp.com> * Added comments for mips toolchain configuration and disabled compiling warnings for libpng. Signed-off-by: Fei Wu <fwu@wavecomp.com> * Fixed the build error of unsupported opcode 'pause' when mips isa_rev is less than 2. Signed-off-by: Fei Wu <fwu@wavecomp.com> * 1. Removed FP16 related item in MSA option defines in OpenCVCompilerOptimizations.cmake. 2. Use CV_CPU_COMPILE_MSA instead of __mips_msa for MSA feature check in cv_cpu_dispatch.h. 3. Removed hasSIMD128() in intrin_msa.hpp. 4. Define CPU_MSA as 150. Signed-off-by: Fei Wu <fwu@wavecomp.com> * 1. Removed unnecessary CV_SIMD128_64F guarding in intrin_msa.hpp. 2. Removed unnecessary CV_MSA related code block in dotProd_8u(). Signed-off-by: Fei Wu <fwu@wavecomp.com> * 1. Defined CPU_MSA_FLAGS_ON as "-mmsa". 2. Removed CV_SIMD128_64F guardings in intrin_msa.hpp. Signed-off-by: Fei Wu <fwu@wavecomp.com> * Removed unused msa_mlal_u16() and msa_mlal_s16 from msa_macros.h. Signed-off-by: Fei Wu <fwu@wavecomp.com>
99 lines
3.0 KiB
CMake
99 lines
3.0 KiB
CMake
# ----------------------------------------------------------------------------
|
|
# CMake file for libpng. See root CMakeLists.txt
|
|
#
|
|
# ----------------------------------------------------------------------------
|
|
|
|
if(ENABLE_NEON)
|
|
project(${PNG_LIBRARY} C ASM)
|
|
else()
|
|
project(${PNG_LIBRARY} C)
|
|
endif()
|
|
|
|
if(NOT WIN32)
|
|
find_library(M_LIBRARY
|
|
NAMES m
|
|
PATHS /usr/lib /usr/local/lib
|
|
)
|
|
if(NOT M_LIBRARY)
|
|
message(STATUS "math lib 'libm' not found; floating point support disabled")
|
|
endif()
|
|
else()
|
|
# not needed on windows
|
|
set(M_LIBRARY "")
|
|
endif()
|
|
|
|
ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}" ${ZLIB_INCLUDE_DIRS})
|
|
|
|
file(GLOB lib_srcs *.c)
|
|
file(GLOB lib_hdrs *.h)
|
|
|
|
|
|
if(ARM OR AARCH64)
|
|
if(ENABLE_NEON)
|
|
if(NOT AARCH64)
|
|
list(APPEND lib_srcs arm/filter_neon.S)
|
|
endif()
|
|
list(APPEND lib_srcs arm/arm_init.c arm/filter_neon_intrinsics.c arm/palette_neon_intrinsics.c)
|
|
add_definitions(-DPNG_ARM_NEON_OPT=2)
|
|
else()
|
|
add_definitions(-DPNG_ARM_NEON_OPT=0) # NEON assembler is not supported
|
|
endif()
|
|
endif()
|
|
|
|
if(";${CPU_BASELINE_FINAL};" MATCHES "SSE2"
|
|
AND (NOT MSVC OR (MSVC_VERSION GREATER 1799))) # MSVS2013+ (issue #7232)
|
|
list(APPEND lib_srcs intel/intel_init.c intel/filter_sse2_intrinsics.c)
|
|
add_definitions(-DPNG_INTEL_SSE)
|
|
endif()
|
|
|
|
# set definitions and sources for MIPS
|
|
if(";${CPU_BASELINE_FINAL};" MATCHES "MSA")
|
|
list(APPEND lib_srcs mips/mips_init.c mips/filter_msa_intrinsics.c)
|
|
add_definitions(-DPNG_MIPS_MSA_OPT=2)
|
|
ocv_warnings_disable(CMAKE_C_FLAGS -Wshadow)
|
|
else()
|
|
add_definitions(-DPNG_MIPS_MSA_OPT=0)
|
|
endif()
|
|
|
|
if(PPC64LE OR PPC64)
|
|
# VSX3 features are backwards compatible
|
|
if(";${CPU_BASELINE_FINAL};" MATCHES "VSX.*"
|
|
AND NOT PPC64)
|
|
list(APPEND lib_srcs powerpc/powerpc_init.c powerpc/filter_vsx_intrinsics.c)
|
|
add_definitions(-DPNG_POWERPC_VSX_OPT=2)
|
|
else()
|
|
add_definitions(-DPNG_POWERPC_VSX_OPT=0)
|
|
endif()
|
|
endif()
|
|
|
|
# ----------------------------------------------------------------------------------
|
|
# Define the library target:
|
|
# ----------------------------------------------------------------------------------
|
|
|
|
if(MSVC)
|
|
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
|
|
endif(MSVC)
|
|
|
|
add_library(${PNG_LIBRARY} STATIC ${lib_srcs} ${lib_hdrs})
|
|
target_link_libraries(${PNG_LIBRARY} ${ZLIB_LIBRARIES})
|
|
|
|
ocv_warnings_disable(CMAKE_C_FLAGS -Wundef -Wcast-align -Wimplicit-fallthrough -Wunused-parameter -Wsign-compare)
|
|
|
|
set_target_properties(${PNG_LIBRARY}
|
|
PROPERTIES OUTPUT_NAME ${PNG_LIBRARY}
|
|
DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
|
|
COMPILE_PDB_NAME ${PNG_LIBRARY}
|
|
COMPILE_PDB_NAME_DEBUG "${PNG_LIBRARY}${OPENCV_DEBUG_POSTFIX}"
|
|
ARCHIVE_OUTPUT_DIRECTORY ${3P_LIBRARY_OUTPUT_PATH}
|
|
)
|
|
|
|
if(ENABLE_SOLUTION_FOLDERS)
|
|
set_target_properties(${PNG_LIBRARY} PROPERTIES FOLDER "3rdparty")
|
|
endif()
|
|
|
|
if(NOT BUILD_SHARED_LIBS)
|
|
ocv_install_target(${PNG_LIBRARY} EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev)
|
|
endif()
|
|
|
|
ocv_install_3rdparty_licenses(libpng LICENSE README)
|