external/cairo/ExternalPackage_cairo.mk  |    2 +-
 external/cairo/ExternalPackage_pixman.mk |    2 +-
 external/cairo/ExternalProject_cairo.mk  |    6 ++++++
 external/cairo/ExternalProject_pixman.mk |    6 ++++++
 external/cairo/UnpackedTarball_cairo.mk  |    4 +---
 5 files changed, 15 insertions(+), 5 deletions(-)

New commits:
commit d6773eccb382c0c6b9d78f406c96230c5f40f44c
Author:     Hossein <[email protected]>
AuthorDate: Tue Dec 2 15:12:36 2025 +0100
Commit:     Hossein <[email protected]>
CommitDate: Fri Dec 5 17:50:24 2025 +0100

    Fix cairo / pixman build for headless macOS
    
    The library .dylib file path was not found when building cairo for
    macOS. Now it is possible to build cairo for macOS.
    
    Built library files for cario and pixman are adjusted using the tool
    install_name_tool, and also solenv/bin/macosx-change-install-names.pl
    perl script which also uses install_name_tool indirectly.
    
    From now on, macOS no longer uses the name 'libcairo' for built library
    file, and it will use 'libcairo-lo' like the other platforms. This removes
    the need for handling macOS differently from the other platforms.
    
    To use headless mode, these options should be added to autogen.input:
    
    --enable-headless
    --without-system-fontconfig
    --without-system-freetype
    
    Change-Id: I1895ba651a07b1dbd8488fa973ec1d90c24de63b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194931
    Tested-by: Jenkins
    Reviewed-by: Dan Williams <[email protected]>
    Reviewed-by: Hossein <[email protected]>

diff --git a/external/cairo/ExternalPackage_cairo.mk 
b/external/cairo/ExternalPackage_cairo.mk
index 588f2689fe42..2110f4cdb556 100644
--- a/external/cairo/ExternalPackage_cairo.mk
+++ b/external/cairo/ExternalPackage_cairo.mk
@@ -13,7 +13,7 @@ $(eval $(call 
gb_ExternalPackage_use_external_project,cairo,cairo))
 
 ifneq ($(DISABLE_DYNLOADING),TRUE)
 ifeq ($(OS),MACOSX)
-$(eval $(call 
gb_ExternalPackage_add_file,cairo,$(LIBO_LIB_FOLDER)/libcairo.2.dylib,src/.libs/libcairo.2.dylib))
+$(eval $(call 
gb_ExternalPackage_add_file,cairo,$(LIBO_LIB_FOLDER)/libcairo-lo.2.dylib,builddir/src/libcairo-lo.2.dylib))
 else
 $(eval $(call 
gb_ExternalPackage_add_file,cairo,$(LIBO_LIB_FOLDER)/libcairo-lo.so.2,builddir/src/libcairo-lo.so.2.1180$(CAIRO_VERSION_MICRO).$(CAIRO_VERSION_MICRO)))
 endif
diff --git a/external/cairo/ExternalPackage_pixman.mk 
b/external/cairo/ExternalPackage_pixman.mk
index c2f2dd549e33..75aa4f5c350b 100644
--- a/external/cairo/ExternalPackage_pixman.mk
+++ b/external/cairo/ExternalPackage_pixman.mk
@@ -13,7 +13,7 @@ $(eval $(call 
gb_ExternalPackage_use_external_project,pixman,pixman))
 
 ifneq ($(DISABLE_DYNLOADING),TRUE)
 ifeq ($(OS),MACOSX)
-$(eval $(call 
gb_ExternalPackage_add_file,pixman,$(LIBO_LIB_FOLDER)/libpixman-1.0.dylib,pixman/.libs/libpixman-1.0.46.4.dylib))
+$(eval $(call 
gb_ExternalPackage_add_file,pixman,$(LIBO_LIB_FOLDER)/libpixman-1.0.dylib,builddir/pixman/libpixman-1.0.dylib))
 else
 $(eval $(call 
gb_ExternalPackage_add_file,pixman,$(LIBO_LIB_FOLDER)/libpixman-1.so.0,builddir/pixman/libpixman-1.so.0.46.4))
 endif
diff --git a/external/cairo/ExternalProject_cairo.mk 
b/external/cairo/ExternalProject_cairo.mk
index be54cd53eced..681544068a9b 100644
--- a/external/cairo/ExternalProject_cairo.mk
+++ b/external/cairo/ExternalProject_cairo.mk
@@ -108,6 +108,12 @@ $(call gb_ExternalProject_get_state_target,cairo,build) :
                        $(if $(filter-out 
$(BUILD_PLATFORM),$(HOST_PLATFORM))$(WSL),--cross-file cross-file.txt) && \
                $(MESON) compile -C builddir \
                        $(if $(verbose),--verbose) \
+                       $(if $(filter MACOSX,$(OS)), \
+                               && install_name_tool -id 
@__________________________________________________OOO/libcairo-lo.2.dylib \
+                                       
$(gb_UnpackedTarball_workdir)/cairo/builddir/src/libcairo-lo.2.dylib \
+                               && $(PERL) 
$(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl OOO \
+                                       
$(gb_UnpackedTarball_workdir)/cairo/builddir/src/libcairo-lo.2.dylib \
+                       ) \
        )
        $(call gb_Trace_EndRange,cairo,EXTERNAL)
 
diff --git a/external/cairo/ExternalProject_pixman.mk 
b/external/cairo/ExternalProject_pixman.mk
index e74865b91719..c925994782db 100644
--- a/external/cairo/ExternalProject_pixman.mk
+++ b/external/cairo/ExternalProject_pixman.mk
@@ -62,6 +62,12 @@ $(call gb_ExternalProject_get_state_target,pixman,build) :
                        $(if $(filter-out 
$(BUILD_PLATFORM),$(HOST_PLATFORM))$(WSL),--cross-file cross-file.txt) && \
                $(MESON) compile -C builddir \
                        $(if $(verbose),--verbose) \
+                       $(if $(filter MACOSX,$(OS)), \
+                               && install_name_tool -id 
@__________________________________________________OOO/libpixman-1.0.dylib \
+                                       
$(gb_UnpackedTarball_workdir)/pixman/builddir/pixman/libpixman-1.0.dylib \
+                               && $(PERL) 
$(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl OOO \
+                                       
$(gb_UnpackedTarball_workdir)/pixman/builddir/pixman/libpixman-1.0.dylib \
+                       ) \
        )
        $(call gb_Trace_EndRange,pixman,EXTERNAL)
 
diff --git a/external/cairo/UnpackedTarball_cairo.mk 
b/external/cairo/UnpackedTarball_cairo.mk
index c3300586100d..215874761923 100644
--- a/external/cairo/UnpackedTarball_cairo.mk
+++ b/external/cairo/UnpackedTarball_cairo.mk
@@ -30,11 +30,9 @@ $(eval $(call gb_UnpackedTarball_add_patches,cairo,\
     external/cairo/cairo/disable-cairo-utilities.patch.1 \
 ))
 
-ifneq ($(OS),MACOSX)
 $(eval $(call gb_UnpackedTarball_add_patches,cairo,\
     external/cairo/cairo/libcairo-bundled-soname.patch.1 \
 ))
-endif
 
 ifeq ($(ENABLE_CAIRO_RGBA),TRUE)
 $(eval $(call gb_UnpackedTarball_add_patches,cairo,\
@@ -42,7 +40,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,cairo,\
 ))
 endif
 
-ifneq (,$(filter MACOSX ANDROID iOS,$(OS)))
+ifneq (,$(filter ANDROID iOS,$(OS)))
 $(eval $(call 
gb_UnpackedTarball_add_file,cairo,.,external/cairo/cairo/dummy_pkg_config))
 endif
 

Reply via email to