From: Boyuan Yang <byang@debian.org>
Date: Fri, 8 Nov 2024 08:03:55 -0500
Subject: CMakeLists.txt: Apply SONAME and multiarch

---
 CMakeLists.txt | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1b81f43..3f2b945 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,9 +5,11 @@
 include(CheckCSourceCompiles)
 
 project ( YUV C CXX )	# "C" is required even for C++ projects
-cmake_minimum_required( VERSION 2.8.12 )
+cmake_minimum_required( VERSION 3.2 )
 option( UNIT_TEST "Built unit tests" OFF )
 
+include(GNUInstallDirs)
+
 set ( ly_base_dir	${PROJECT_SOURCE_DIR} )
 set ( ly_src_dir	${ly_base_dir}/source )
 set ( ly_inc_dir	${ly_base_dir}/include )
@@ -188,6 +190,10 @@ endif()
 add_executable      ( cpuid ${ly_base_dir}/util/cpuid.c )
 target_link_libraries  ( cpuid ${ly_lib_static} )
 
+# Debian-specific: for library version, use ${YUV_VERSION}
+include ( CM_linux_packages.cmake )
+set_target_properties( ${ly_lib_shared} PROPERTIES VERSION ${YUV_VERSION} SOVERSION 0 )
+
 # this creates the conversion tool
 add_executable			( yuvconvert ${ly_base_dir}/util/yuvconvert.cc )
 target_link_libraries	( yuvconvert ${ly_lib_static} )
@@ -246,10 +252,10 @@ endif()
 
 
 # install the conversion tool, .so, .a, and all the header files
-install ( TARGETS yuvconvert DESTINATION bin )
-install ( TARGETS ${ly_lib_static}						DESTINATION lib )
-install ( TARGETS ${ly_lib_shared} LIBRARY DESTINATION lib RUNTIME DESTINATION bin ARCHIVE DESTINATION lib )
-install ( DIRECTORY ${PROJECT_SOURCE_DIR}/include/		DESTINATION include )
+install ( TARGETS yuvconvert DESTINATION ${CMAKE_INSTALL_BINDIR} )
+install ( TARGETS ${ly_lib_static}						DESTINATION ${CMAKE_INSTALL_LIBDIR} )
+install ( TARGETS ${ly_lib_shared} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION bin ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} )
+install ( DIRECTORY ${PROJECT_SOURCE_DIR}/include/		DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
 
 # create the .deb and .rpm packages using cpack
 include ( CM_linux_packages.cmake )
