opencv/3rdparty/libpng/CMakeLists.txt

99 lines
3.0 KiB
CMake
Raw Normal View History

# ----------------------------------------------------------------------------
# CMake file for libpng. See root CMakeLists.txt
#
# ----------------------------------------------------------------------------
2015-12-10 23:03:48 +08:00
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})
2011-04-27 00:03:02 +08:00
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()
2017-10-06 01:36:38 +08:00
if(";${CPU_BASELINE_FINAL};" MATCHES "SSE2"
2016-09-09 00:41:11 +08:00
AND (NOT MSVC OR (MSVC_VERSION GREATER 1799))) # MSVS2013+ (issue #7232)
2017-10-06 01:36:38 +08:00
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()
# ----------------------------------------------------------------------------------
2012-06-08 11:15:08 +08:00
# Define the library target:
# ----------------------------------------------------------------------------------
2012-08-28 08:44:09 +08:00
if(MSVC)
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
endif(MSVC)
2012-02-24 21:53:22 +08:00
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)
2012-06-08 16:11:17 +08:00
2012-02-24 21:53:22 +08:00
set_target_properties(${PNG_LIBRARY}
2012-06-08 11:15:08 +08:00
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}
2012-06-08 11:15:08 +08:00
)
if(ENABLE_SOLUTION_FOLDERS)
2012-02-24 21:53:22 +08:00
set_target_properties(${PNG_LIBRARY} PROPERTIES FOLDER "3rdparty")
endif()
2012-06-08 11:15:08 +08:00
if(NOT BUILD_SHARED_LIBS)
ocv_install_target(${PNG_LIBRARY} EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev)
endif()
2019-04-02 22:47:03 +08:00
ocv_install_3rdparty_licenses(libpng LICENSE README)