head 1.2; access; symbols pkgsrc-2026Q1:1.2.0.10 pkgsrc-2026Q1-base:1.2 pkgsrc-2025Q4:1.2.0.8 pkgsrc-2025Q4-base:1.2 pkgsrc-2025Q3:1.2.0.6 pkgsrc-2025Q3-base:1.2 pkgsrc-2025Q2:1.2.0.4 pkgsrc-2025Q2-base:1.2 pkgsrc-2025Q1:1.2.0.2 pkgsrc-2025Q1-base:1.2; locks; strict; comment @# @; 1.2 date 2025.03.01.12.16.44; author adam; state Exp; branches; next 1.1; commitid 3yxw2FbTAsBNrmLF; 1.1 date 2025.02.04.11.22.48; author wiz; state Exp; branches; next ; commitid sxYk6qAVyGh7X8IF; desc @@ 1.2 log @Fix linker flags detection @ text @$NetBSD: patch-lib_jxl.cmake,v 1.1 2025/02/04 11:22:48 wiz Exp $ CMAKE_REQUIRED_LINK_OPTIONS is better suited for tests than CMAKE_EXE_LINKER_FLAGS. https://github.com/libjxl/libjxl/pull/4133 Not all linkers support --version-script, so test for it --- lib/jxl.cmake.orig 2024-11-26 13:02:35.000000000 +0000 +++ lib/jxl.cmake @@@@ -224,9 +224,14 @@@@ set_target_properties(jxl_dec PROPERTIES # Check whether the linker support excluding libs set(LINKER_EXCLUDE_LIBS_FLAG "-Wl,--exclude-libs=ALL") include(CheckCSourceCompiles) -list(APPEND CMAKE_EXE_LINKER_FLAGS ${LINKER_EXCLUDE_LIBS_FLAG}) +list(APPEND CMAKE_REQUIRED_LINK_OPTIONS ${LINKER_EXCLUDE_LIBS_FLAG}) check_c_source_compiles("int main(){return 0;}" LINKER_SUPPORT_EXCLUDE_LIBS) -list(REMOVE_ITEM CMAKE_EXE_LINKER_FLAGS ${LINKER_EXCLUDE_LIBS_FLAG}) +list(REMOVE_ITEM CMAKE_REQUIRED_LINK_OPTIONS ${LINKER_VERSION_SCRIPT_FLAG}) + +set(LINKER_VERSION_SCRIPT_FLAG "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/jxl/jxl.version") +list(APPEND CMAKE_REQUIRED_LINK_OPTIONS ${LINKER_VERSION_SCRIPT_FLAG}) +check_c_source_compiles("int main(){return 0;}" LINKER_VERSION_SCRIPT) +list(REMOVE_ITEM CMAKE_REQUIRED_LINK_OPTIONS ${LINKER_VERSION_SCRIPT_FLAG}) if(NOT BUILD_SHARED_LIBS) target_compile_definitions(jxl PUBLIC -DJXL_STATIC_DEFINE) @@@@ -245,8 +250,10 @@@@ foreach(target IN ITEMS jxl jxl_dec) elseif(WIN32) # Nothing needed here, we use __declspec(dllexport) (jxl_export.h) else() + if(LINKER_VERSION_SCRIPT) set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/jxl/jxl.version") + endif(LINKER_VERSION_SCRIPT) endif() # APPLE # This hides the default visibility symbols from static libraries bundled into # the shared library. In particular this prevents exposing symbols from hwy @ 1.1 log @graphics/libjxl: import libjxl-0.11.1 Packaged in wip by nros and myself. Library for reading and writing JPEG XL images. JPEG XL (.jxl) is the next generation , general-purpose image compression codec by the JPEG committee. @ text @d1 1 a1 1 $NetBSD$ d3 2 a4 1 All linkers do not support --version-script, so test for it d6 3 a8 1 --- lib/jxl.cmake.orig 2024-01-05 16:54:25.540798120 +0000 d10 6 a15 1 @@@@ -216,6 +216,11 @@@@ list(APPEND CMAKE_EXE_LINKER_FLAGS ${LIN d17 3 a19 2 list(REMOVE_ITEM CMAKE_EXE_LINKER_FLAGS ${LINKER_EXCLUDE_LIBS_FLAG}) d21 1 a21 1 +list(APPEND CMAKE_EXE_LINKER_FLAGS ${LINKER_VERSION_SCRIPT_FLAG}) d23 2 a24 2 +list(REMOVE_ITEM CMAKE_EXE_LINKER_FLAGS ${LINKER_VERSION_SCRIPT_FLAG}) + d27 1 a27 2 target_compile_definitions(jxl_dec PUBLIC -DJXL_STATIC_DEFINE) @@@@ -233,8 +238,10 @@@@ foreach(target IN ITEMS jxl jxl_dec) d34 1 a34 1 + endif() # LINKER_VERSION_SCRIPT @