build(cmake): always use CMake install directory variables

Signed-off-by: k4yt3x <i@k4yt3x.com>
This commit is contained in:
k4yt3x 2025-01-10 00:00:00 +00:00
parent b40beef9ab
commit 49ce40b05f
No known key found for this signature in database
4 changed files with 22 additions and 41 deletions

View File

@ -326,79 +326,60 @@ target_link_libraries(libvideo2x PRIVATE
librife-ncnn-vulkan librife-ncnn-vulkan
) )
# Determine the installation directories
if(WIN32)
set(install_bin_destination .)
set(install_include_destination include/libvideo2x)
set(install_lib_destination .)
set(install_model_destination .)
set(install_cmake_destination cmake/Video2X)
else()
set(install_bin_destination "${CMAKE_INSTALL_BINDIR}")
set(install_include_destination "${CMAKE_INSTALL_INCLUDEDIR}/libvideo2x")
set(install_lib_destination "${CMAKE_INSTALL_LIBDIR}")
set(install_model_destination "${CMAKE_INSTALL_DATADIR}/video2x")
set(install_cmake_destination "${CMAKE_INSTALL_LIBDIR}/cmake/Video2X")
endif()
# Common installation rules for libvideo2x and models # Common installation rules for libvideo2x and models
install(TARGETS libvideo2x install(TARGETS libvideo2x
EXPORT Video2XTargets EXPORT Video2XTargets
RUNTIME DESTINATION "${install_bin_destination}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
LIBRARY DESTINATION "${install_lib_destination}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${install_lib_destination}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
INCLUDES DESTINATION "${install_include_destination}" INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/libvideo2x"
) )
# Install the header files from the include directory # Install the header files from the include directory
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/libvideo2x/" install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/libvideo2x/"
DESTINATION "${install_include_destination}" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/libvideo2x"
FILES_MATCHING PATTERN "*.h" FILES_MATCHING PATTERN "*.h"
) )
# Install the generated version.h file # Install the generated version.h file
install(FILES install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/libvideo2x/version.h" "${CMAKE_CURRENT_BINARY_DIR}/libvideo2x/version.h"
DESTINATION "${install_include_destination}" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/libvideo2x"
) )
# Export targets and create CMake package config # Export targets and create CMake package config
install(EXPORT Video2XTargets install(EXPORT Video2XTargets
FILE Video2XTargets.cmake FILE Video2XTargets.cmake
NAMESPACE Video2X:: NAMESPACE Video2X::
DESTINATION "${install_cmake_destination}" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Video2X"
) )
# Generate the CMake package config file # Generate the CMake package config file
configure_package_config_file( configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/Video2XConfig.cmake.in" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Video2XConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/Video2XConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/Video2XConfig.cmake"
INSTALL_DESTINATION "${install_cmake_destination}" INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Video2X"
) )
# Install the CMake package config file # Install the CMake package config file
install(FILES install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/Video2XConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/Video2XConfig.cmake"
DESTINATION "${install_cmake_destination}" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Video2X"
) )
# Install model files # Install model files
install(DIRECTORY "${CMAKE_SOURCE_DIR}/models" DESTINATION "${install_model_destination}") install(DIRECTORY "${CMAKE_SOURCE_DIR}/models"
DESTINATION "${CMAKE_INSTALL_DATADIR}/video2x"
)
# Platform-specific installation rules # Platform-specific installation rules
if(WIN32) if(WIN32)
file(GLOB ffmpeg_dlls "${ffmpeg_base_path}/bin/*.dll") file(GLOB ffmpeg_dlls "${ffmpeg_base_path}/bin/*.dll")
install(FILES install(FILES ${ffmpeg_dlls} DESTINATION "${CMAKE_INSTALL_BINDIR}")
${ffmpeg_dlls}
"${ncnn_base_path}/bin/ncnn.dll" if(NOT VIDEO2X_USE_EXTERNAL_BOOST)
${ncnn_vulkan_libs} install(FILES "${ncnn_base_path}/bin/ncnn.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}")
DESTINATION "${install_bin_destination}" endif()
)
else()
install(FILES
${ncnn_vulkan_libs}
DESTINATION "${install_lib_destination}"
)
endif() endif()
# Build the video2x CLI executable # Build the video2x CLI executable
@ -491,7 +472,7 @@ if(VIDEO2X_BUILD_CLI)
target_link_libraries(video2x PRIVATE Boost::program_options) target_link_libraries(video2x PRIVATE Boost::program_options)
# Install the video2x executable # Install the video2x executable
install(TARGETS video2x RUNTIME DESTINATION "${install_bin_destination}") install(TARGETS video2x RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
# Install the Boost DLL # Install the Boost DLL
if(WIN32 AND NOT VIDEO2X_USE_EXTERNAL_BOOST) if(WIN32 AND NOT VIDEO2X_USE_EXTERNAL_BOOST)
@ -506,6 +487,6 @@ if(VIDEO2X_BUILD_CLI)
set(boost_dll_path "${boost_base_path}/boost_program_options-vc143-mt-gd-x64-1_86.dll") set(boost_dll_path "${boost_base_path}/boost_program_options-vc143-mt-gd-x64-1_86.dll")
endif() endif()
install(FILES "${boost_dll_path}" DESTINATION "${install_bin_destination}") install(FILES "${boost_dll_path}" DESTINATION "${CMAKE_INSTALL_BINDIR}")
endif() endif()
endif() endif()

@ -1 +1 @@
Subproject commit 501e631792349f23b9a2d5ac5ec350d7798cff88 Subproject commit d9c5a7eb4c8475af6110496c27c3d1f702f9b96a

@ -1 +1 @@
Subproject commit d4ad3cc138357a90507121379aa052eb98003b9c Subproject commit c1f255524f79566c40866b38e5e65b40adf77eee

@ -1 +1 @@
Subproject commit a8296af6cd2216db920bfa396d70582c668e44ff Subproject commit f2207f7331d455e0a284fd45a5dfa7eb2989cca3