Author: Vitaly Lipatov 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 )