From 1ea8f7d2170e8b1b1238a750842dde699ff91f8f Mon Sep 17 00:00:00 2001 From: Go Kudo Date: Wed, 5 Mar 2025 16:03:53 +0900 Subject: [PATCH 1/2] Allow build libjpeg compat library on Apple platforms --- AUTHORS | 1 + lib/jpegli.cmake | 19 +++++++++++++------ lib/jpegli/jpeg.list.62 | 4 ++++ lib/jpegli/jpeg.list.8 | 2 ++ 4 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 lib/jpegli/jpeg.list.62 create mode 100644 lib/jpegli/jpeg.list.8 diff --git a/AUTHORS b/AUTHORS index a51b3b65..2297d439 100644 --- a/AUTHORS +++ b/AUTHORS @@ -57,6 +57,7 @@ Gerhard Huber Galaxy4594 <164440799+Galaxy4594@users.noreply.github.com> gi-man Gilles Devillers (GilDev) +Go Kudo Heiko Becker Ivan Kokorev Jim Robinson diff --git a/lib/jpegli.cmake b/lib/jpegli.cmake index e6993c7f..453a18a0 100644 --- a/lib/jpegli.cmake +++ b/lib/jpegli.cmake @@ -106,7 +106,7 @@ endif() # Build libjpeg.so that links to libjpeg-static # -if (JPEGXL_ENABLE_JPEGLI_LIBJPEG AND NOT APPLE AND NOT WIN32 AND NOT EMSCRIPTEN) +if (JPEGXL_ENABLE_JPEGLI_LIBJPEG AND NOT WIN32 AND NOT EMSCRIPTEN) add_library(jpegli-libjpeg-obj OBJECT "${JPEGXL_INTERNAL_JPEGLI_WRAPPER_SOURCES}") target_compile_options(jpegli-libjpeg-obj PRIVATE ${JPEGXL_INTERNAL_FLAGS}) target_compile_options(jpegli-libjpeg-obj PUBLIC ${JPEGXL_COVERAGE_FLAGS}) @@ -130,12 +130,19 @@ set_target_properties(jpeg PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/jpegli" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/jpegli") -# Add a jpeg.version file as a version script to tag symbols with the +# Add a jpeg.version or jpeg.list file as a version script to tag symbols with the # appropriate version number. -set_target_properties(jpeg PROPERTIES - LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/jpegli/jpeg.version.${JPEGLI_LIBJPEG_LIBRARY_SOVERSION}) -set_property(TARGET jpeg APPEND_STRING PROPERTY - LINK_FLAGS " -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/jpegli/jpeg.version.${JPEGLI_LIBJPEG_LIBRARY_SOVERSION}") +if (LINUX) + set_target_properties(jpeg PROPERTIES + LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/jpegli/jpeg.version.${JPEGLI_LIBJPEG_LIBRARY_SOVERSION}) + set_property(TARGET jpeg APPEND_STRING PROPERTY + LINK_FLAGS " -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/jpegli/jpeg.version.${JPEGLI_LIBJPEG_LIBRARY_SOVERSION}") +elseif(APPLE) + set_target_properties(jpeg PROPERTIES + LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/jpegli/jpeg.list.${JPEGLI_LIBJPEG_LIBRARY_SOVERSION}) + set_property(TARGET jpeg APPEND_STRING PROPERTY + LINK_FLAGS " -Wl,-exported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/jpegli/jpeg.list.${JPEGLI_LIBJPEG_LIBRARY_SOVERSION}") +endif() if (JPEGXL_INSTALL_JPEGLI_LIBJPEG) install(TARGETS jpeg diff --git a/lib/jpegli/jpeg.list.62 b/lib/jpegli/jpeg.list.62 new file mode 100644 index 00000000..773976f7 --- /dev/null +++ b/lib/jpegli/jpeg.list.62 @@ -0,0 +1,4 @@ +_jpeg* +_tj* +_jpeg_mem_src* +_jpeg_mem_dest* diff --git a/lib/jpegli/jpeg.list.8 b/lib/jpegli/jpeg.list.8 new file mode 100644 index 00000000..4ddc63d8 --- /dev/null +++ b/lib/jpegli/jpeg.list.8 @@ -0,0 +1,2 @@ +_jpeg* +_tj* From 8bf256e9c9015c8a38afc1e0127a819246090e9e Mon Sep 17 00:00:00 2001 From: Go Kudo Date: Wed, 5 Mar 2025 16:50:27 +0900 Subject: [PATCH 2/2] Allow build libjpeg compat library on Emscripten --- lib/jpegli.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/jpegli.cmake b/lib/jpegli.cmake index 453a18a0..319aaa79 100644 --- a/lib/jpegli.cmake +++ b/lib/jpegli.cmake @@ -106,7 +106,7 @@ endif() # Build libjpeg.so that links to libjpeg-static # -if (JPEGXL_ENABLE_JPEGLI_LIBJPEG AND NOT WIN32 AND NOT EMSCRIPTEN) +if (JPEGXL_ENABLE_JPEGLI_LIBJPEG AND NOT WIN32) add_library(jpegli-libjpeg-obj OBJECT "${JPEGXL_INTERNAL_JPEGLI_WRAPPER_SOURCES}") target_compile_options(jpegli-libjpeg-obj PRIVATE ${JPEGXL_INTERNAL_FLAGS}) target_compile_options(jpegli-libjpeg-obj PUBLIC ${JPEGXL_COVERAGE_FLAGS})