@@ -17,14 +17,21 @@ RPATH_OPTION="-Wl,-rpath,'\$ORIGIN',--disable-new-dtags"
17
17
# Shell quoting madness to survive through qmake and make ...
18
18
RPATH_OPTION_2=" -Wl,-rpath,'\\ '\\\$\\\$ ORIGIN\\ '',--disable-new-dtags"
19
19
20
+ if [ " $OSTYPE " == " linux-gnu" ]; then
21
+ export LIBRARY_PATH=$CONDA_BUILD_SYSROOT /lib:$CONDA_PREFIX /lib
22
+ else # macOS
23
+ export LIBRARY_PATH=$CONDA_PREFIX /lib
24
+ export MACOSX_DEPLOYMENT_TARGET=11.0
25
+ fi
26
+
20
27
# Download and extract the Poppler source code
21
28
22
29
POPPLER=poppler-$POPPLER_VERSION
23
30
curl -O https://poppler.freedesktop.org/$POPPLER .tar.xz
24
- tar -xf $POPPLER .tar.xz
31
+ tar -xvf $POPPLER .tar.xz
25
32
# Patch Poppler to avoid building the tests. Newer Poppler versions have a config
26
33
# variable for this.
27
- sed -i ' s/add_subdirectory(test)//g' $POPPLER /CMakeLists.txt
34
+ sed -iback ' s/add_subdirectory(test)//g' $POPPLER /CMakeLists.txt
28
35
29
36
30
37
pushd $POPPLER
@@ -61,10 +68,12 @@ CMAKE_OPTIONS+=" -DBUILD_QT5_TESTS=OFF"
61
68
# Install locally
62
69
CMAKE_OPTIONS+=" -DCMAKE_INSTALL_PREFIX==../../../installed-poppler"
63
70
71
+ if [ " $OSTYPE " == " linux-gnu" ]; then
72
+ export LDFLAGS=$RPATH_OPTION
73
+ fi
74
+
64
75
# Generate Poppler Makefile
65
- LDFLAGS=$RPATH_OPTION \
66
76
PKG_CONFIG_LIBDIR=$CONDA_PREFIX /lib/pkgconfig \
67
- LIBRARY_PATH=$CONDA_BUILD_SYSROOT /lib:$CONDA_PREFIX /lib \
68
77
cmake -S . -B build $CMAKE_OPTIONS
69
78
70
79
# Build Poppler
@@ -73,23 +82,44 @@ make -j$(nproc)
73
82
make install
74
83
popd
75
84
85
+ export -n LDFLAGS
86
+
76
87
popd
77
88
78
89
# Now build python-poppler-qt5. Add a RUNPATH just like for poppler.
79
- PKG_CONFIG_LIBDIR=installed-poppler/lib64/pkgconfig:$CONDA_PREFIX /lib/pkgconfig \
80
- LIBRARY_PATH=$CONDA_BUILD_SYSROOT /lib:$CONDA_PREFIX /lib \
81
- sip-wheel --verbose --link-args=$RPATH_OPTION_2 --build-dir=build
90
+ if [ " $OSTYPE " == " linux-gnu" ]; then
91
+ SIP_EXTRA_ARGS=" --link-args=$RPATH_OPTION_2 "
92
+ POPPLER_LIB_DIR=installed-poppler/lib64
93
+ else
94
+ SIP_EXTRA_ARGS=
95
+ POPPLER_LIB_DIR=installed-poppler/lib
96
+ fi
97
+
98
+ PKG_CONFIG_LIBDIR=$POPPLER_LIB_DIR /pkgconfig:$CONDA_PREFIX /lib/pkgconfig \
99
+ sip-wheel --verbose $SIP_EXTRA_ARGS --build-dir=build
82
100
83
101
# Unpack wheel to tinker with it
84
102
WHEEL=(python_poppler_qt5* .whl)
85
- wheel unpack $WHEEL
103
+ wheel unpack " $WHEEL "
86
104
pushd python_poppler_qt5-$PYTHON_POPPLER_QT5_VERSION
87
105
88
106
# Vendor libopenjp2 and libjpeg
89
- cp ../installed-poppler/lib64/* .so* \
90
- $CONDA_PREFIX /lib/libopenjp2.so* \
91
- $CONDA_PREFIX /lib/libjpeg.so* \
92
- PyQt5/Qt5/lib/
107
+ if [ " $OSTYPE " == " linux-gnu" ]; then
108
+ LIB_FILES=" ../$POPPLER_LIB_DIR /*.so* $CONDA_PREFIX /lib/libopenjp2.so* $CONDA_PREFIX /lib/libjpeg.so*"
109
+ else
110
+ LIB_FILES=" ../$POPPLER_LIB_DIR /*.dylib* $CONDA_PREFIX /lib/libopenjp2.dylib* $CONDA_PREFIX /lib/libjpeg.dylib*"
111
+ fi
112
+
113
+ cp $LIB_FILES PyQt5/Qt5/lib/
114
+
115
+ pushd PyQt5/Qt5/lib
116
+ if [ " $OSTYPE " != " linux-gnu" ]; then
117
+ for file in _popplerqt5* .so poppler* .dylib; do
118
+ install_name_tool -delete_rpath " $CONDA_PREFIX /lib" " $file "
119
+ install_name_tool -add_rpath " @loader_path" " $file "
120
+ done
121
+ fi
122
+ popd
93
123
94
124
# Repack the wheel
95
125
popd
0 commit comments