Group :: Development/C
RPM: libyuv
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
Patch: libyuv-alt-buildfix.patch
Download
Download
Author: Vitaly Lipatov <lav@altlinux.ru>
Date: Sun Jul 4 21:13:40 2021 +0300
fix build
diff --git a/libyuv/libyuv.pc.in b/libyuv/libyuv.pc.in
new file mode 100644
index 0000000..b3a9284
--- /dev/null
+++ b/libyuv/libyuv.pc.in
@@ -0,0 +1,4 @@
+Name: libyuv
+Description: YUV conversion and scaling functionality library
+Version: @YUV_VERSION@
+Libs: -lyuv
diff --git a/libyuv/CMakeLists.txt b/libyuv/CMakeLists.txt
index 6f37294..c1f609d 100644
--- a/libyuv/CMakeLists.txt
+++ b/libyuv/CMakeLists.txt
@@ -1,11 +1,25 @@
# CMakeLists for libyuv
# Originally created for "roxlu build system" to compile libyuv on windows
-# Run with -DTEST=ON to build unit tests
+# Run with -DUNIT_TEST=ON to build unit tests
PROJECT ( YUV C CXX ) # "C" is required even for C++ projects
-CMAKE_MINIMUM_REQUIRED( VERSION 2.8.12 )
+CMAKE_MINIMUM_REQUIRED( VERSION 2.9 )
OPTION( UNIT_TEST "Built unit tests" OFF )
+include(GNUInstallDirs)
+
+EXECUTE_PROCESS (
+ COMMAND grep --perl-regex --only-matching "(?<=LIBYUV_VERSION )[0-9]+" include/libyuv/version.h
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ OUTPUT_VARIABLE YUV_VERSION_NUMBER
+ OUTPUT_STRIP_TRAILING_WHITESPACE )
+SET ( YUV_VER_MAJOR 0 )
+SET ( YUV_VER_MINOR 0 )
+SET ( YUV_VER_PATCH ${YUV_VERSION_NUMBER} )
+SET ( YUV_VERSION ${YUV_VER_MAJOR}.${YUV_VER_MINOR}.${YUV_VER_PATCH} )
+MESSAGE ( "Building ver.: ${YUV_VERSION}" )
+
+
SET ( ly_base_dir ${PROJECT_SOURCE_DIR} )
SET ( ly_src_dir ${ly_base_dir}/source )
SET ( ly_inc_dir ${ly_base_dir}/include )
@@ -43,13 +57,22 @@ if(WIN32)
SET_TARGET_PROPERTIES ( ${ly_lib_shared} PROPERTIES IMPORT_PREFIX "lib" )
endif()
+SET_TARGET_PROPERTIES(
+ ${ly_lib_shared}
+ PROPERTIES
+ VERSION ${YUV_VERSION}
+ SOVERSION 0
+)
+
+#set(CMAKE_SKIP_BUILD_RPATH TRUE)
+
# this creates the conversion tool
ADD_EXECUTABLE ( yuvconvert ${ly_base_dir}/util/yuvconvert.cc )
-TARGET_LINK_LIBRARIES ( yuvconvert ${ly_lib_static} )
+TARGET_LINK_LIBRARIES ( yuvconvert ${ly_lib_shared} )
# this creates the yuvconstants tool
ADD_EXECUTABLE ( yuvconstants ${ly_base_dir}/util/yuvconstants.c )
-TARGET_LINK_LIBRARIES ( yuvconstants ${ly_lib_static} )
+TARGET_LINK_LIBRARIES ( yuvconstants ${ly_lib_shared} -lm )
find_package ( JPEG )
if (JPEG_FOUND)
@@ -98,13 +121,15 @@ if(UNIT_TEST)
endif()
endif()
+CONFIGURE_FILE("${ly_base_dir}/libyuv.pc.in" "${ly_base_dir}/libyuv.pc" @ONLY)
# install the conversion tool, .so, .a, and all the header files
INSTALL ( PROGRAMS ${CMAKE_BINARY_DIR}/yuvconvert DESTINATION bin )
INSTALL ( TARGETS ${ly_lib_static} DESTINATION lib )
-INSTALL ( TARGETS ${ly_lib_shared} LIBRARY DESTINATION lib RUNTIME DESTINATION bin )
+INSTALL ( TARGETS ${ly_lib_shared} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )
INSTALL ( DIRECTORY ${PROJECT_SOURCE_DIR}/include/ DESTINATION include )
+INSTALL(FILES "${ly_base_dir}/libyuv.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
# create the .deb and .rpm packages using cpack
-INCLUDE ( CM_linux_packages.cmake )
+#INCLUDE ( CM_linux_packages.cmake )