Fix libjpeg-turbo linking on systems that only have shared libjpeg installed

This commit is contained in:
Georg Hagen
2024-05-30 09:53:07 +02:00
parent 0ce6e31a0d
commit 6761845f99

View File

@@ -11,20 +11,29 @@ else ()
)
execute_process(
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}/deps_ljt
RESULT_VARIABLE build_result
RESULT_VARIABLE build_result
)
if (NOT ${build_result} EQUAL "0")
message(FATAL_ERROR "Failed to build libjpeg-turbo!")
endif()
if (NOT ${build_result} EQUAL "0")
message(FATAL_ERROR "Failed to build libjpeg-turbo!")
endif()
set(libjpeg-turbo_BUILT "built libjpeg-turbo" CACHE INTERNAL ON)
endif ()
function(LinkLibJpegTurbo TARGET)
if (libjpeg-turbo_BUILT)
list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/deps_ljt/INSTALL/lib/cmake)
endif()
find_package(libjpeg-turbo REQUIRED)
target_link_libraries(${TARGET} PUBLIC libjpeg-turbo::turbojpeg-static)
if (libjpeg-turbo_BUILT)
list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/deps_ljt/INSTALL/lib/cmake)
endif()
find_package(libjpeg-turbo REQUIRED)
message("${libjpeg-turbo_LIBRARIES}")
if (TARGET libjpeg-turbo::turbojpeg-static)
target_link_libraries(${TARGET} PUBLIC libjpeg-turbo::turbojpeg-static)
message("Linking static libjpeg-turbo")
elseif (TARGET libjpeg-turbo::turbojpeg)
target_link_libraries(${TARGET} PUBLIC libjpeg-turbo::turbojpeg)
message("Linking shared libjpeg-turbo")
else ()
message(FATAL_ERROR "Neither static nor shared libjpeg-turbo exists")
endif ()
endfunction()