Skip to content

Commit 1a9c401

Browse files
committed
Unify the two dependency scripts, for starters
1 parent 10ebe70 commit 1a9c401

File tree

3 files changed

+78
-119
lines changed

3 files changed

+78
-119
lines changed

.github/workflows/wheels.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ jobs:
2929
- name: Build wheels
3030
uses: pypa/[email protected]
3131
env:
32-
CIBW_BEFORE_ALL_LINUX: sh install-deps.sh
33-
CIBW_BEFORE_ALL_MACOS: sh install-deps-mac.sh
34-
CIBW_ENVIRONMENT: LIBGIT2_VERSION=1.3.0 LIBSSH2_VERSION=1.10.0 DYLD_LIBRARY_PATH=/usr/local/lib
32+
CIBW_BEFORE_ALL: sh install-deps.sh
33+
CIBW_ENVIRONMENT: LIBGIT2_VERSION=1.3.0 LIBSSH2_VERSION=1.10.0
34+
CIBW_ENVIRONMENT_MACOS: LIBGIT2_VERSION=1.3.0 LIBSSH2_VERSION=1.10.0 DYLD_LIBRARY_PATH=/usr/local/lib OPENSSL_VERSION=3.0.0
3535
CIBW_SKIP: "*-musllinux*"
3636
CIBW_REPAIR_WHEEL_COMMAND_MACOS: "DYLD_LIBRARY_PATH=/usr/local/lib delocate-listdeps {wheel} && DYLD_LIBRARY_PATH=/usr/local/lib delocate-wheel --require-archs {delocate_archs} -w {dest_dir} {wheel}"
3737
CIBW_ARCHS_MACOS: x86_64 universal2

install-deps-mac.sh

-106
This file was deleted.

install-deps.sh

+75-10
Original file line numberDiff line numberDiff line change
@@ -80,17 +80,61 @@ if [ -n "$ZLIB_VERSION" ]; then
8080
cd ..
8181
fi
8282

83+
# Install openssl
84+
if [ -n "$OPENSSL_VERSION" ]; then
85+
FILENAME=openssl-$OPENSSL_VERSION
86+
wget https://www.openssl.org/source/$FILENAME.tar.gz -N --no-check-certificate
87+
88+
tar xf $FILENAME.tar.gz
89+
mv $FILENAME openssl-x86
90+
91+
tar xf $FILENAME.tar.gz
92+
mv $FILENAME openssl-arm
93+
94+
cd openssl-x86
95+
./Configure darwin64-x86_64-cc shared
96+
make
97+
cd ../openssl-arm
98+
./Configure enable-rc5 zlib darwin64-arm64-cc no-asm
99+
make
100+
cd ..
101+
102+
mkdir openssl-universal
103+
104+
LIBSSL=$(basename openssl-x86/libssl.*.dylib)
105+
lipo -create openssl-x86/libssl.*.dylib openssl-arm/libssl.*.dylib -output openssl-universal/$LIBSSL
106+
LIBCRYPTO=$(basename openssl-x86/libcrypto.*.dylib)
107+
lipo -create openssl-x86/libcrypto.*.dylib openssl-arm/libcrypto.*.dylib -output openssl-universal/$LIBCRYPTO
108+
cd openssl-universal
109+
install_name_tool -id "@rpath/$LIBSSL" $LIBSSL
110+
install_name_tool -id "@rpath/$LIBCRYPTO" $LIBCRYPTO
111+
OPENSSL_PREFIX=$(pwd)
112+
cd ..
113+
fi
114+
83115
# Install libssh2
84116
if [ -n "$LIBSSH2_VERSION" ]; then
85117
FILENAME=libssh2-$LIBSSH2_VERSION
86118
wget https://www.libssh2.org/download/$FILENAME.tar.gz -N --no-check-certificate
87119
tar xf $FILENAME.tar.gz
88120
cd $FILENAME
89-
cmake . \
90-
-DCMAKE_INSTALL_PREFIX=$PREFIX \
91-
-DBUILD_SHARED_LIBS=ON \
92-
-DBUILD_EXAMPLES=OFF \
93-
-DBUILD_TESTING=OFF
121+
if [ "$KERNEL" = "Darwin" ]; then
122+
cmake . \
123+
-DCMAKE_INSTALL_PREFIX=$PREFIX \
124+
-DBUILD_SHARED_LIBS=ON \
125+
-DBUILD_EXAMPLES=OFF \
126+
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
127+
-DOPENSSL_CRYPTO_LIBRARY="../openssl-universal/$LIBCRYPTO" \
128+
-DOPENSSL_SSL_LIBRARY="../openssl-universal/$LIBSSL" \
129+
-DOPENSSL_INCLUDE_DIR="../openssl-x86/include" \
130+
-DBUILD_TESTING=OFF
131+
else
132+
cmake . \
133+
-DCMAKE_INSTALL_PREFIX=$PREFIX \
134+
-DBUILD_SHARED_LIBS=ON \
135+
-DBUILD_EXAMPLES=OFF \
136+
-DBUILD_TESTING=OFF
137+
fi
94138
cmake --build . --target install
95139
cd ..
96140
LIBSSH2_PREFIX=$PREFIX
@@ -102,11 +146,32 @@ if [ -n "$LIBGIT2_VERSION" ]; then
102146
wget https://github.com/libgit2/libgit2/archive/refs/tags/v$LIBGIT2_VERSION.tar.gz -N -O $FILENAME.tar.gz
103147
tar xf $FILENAME.tar.gz
104148
cd $FILENAME
105-
CMAKE_PREFIX_PATH=$OPENSSL_PREFIX:$LIBSSH2_PREFIX cmake . \
106-
-DBUILD_SHARED_LIBS=ON \
107-
-DBUILD_CLAR=OFF \
108-
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
109-
-DCMAKE_BUILD_TYPE=$BUILD_TYPE
149+
if [ "$KERNEL" = "Darwin" ]; then
150+
CMAKE_PREFIX_PATH=$OPENSSL_PREFIX:$LIBSSH2_PREFIX cmake . \
151+
-DBUILD_SHARED_LIBS=ON \
152+
-DBUILD_CLAR=OFF \
153+
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
154+
-DOPENSSL_CRYPTO_LIBRARY="../openssl-universal/$LIBCRYPTO" \
155+
-DOPENSSL_SSL_LIBRARY="../openssl-universal/$LIBSSL" \
156+
-DOPENSSL_INCLUDE_DIR="../openssl-x86/include" \
157+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE
158+
else
159+
CMAKE_PREFIX_PATH=$OPENSSL_PREFIX:$LIBSSH2_PREFIX cmake . \
160+
-DBUILD_SHARED_LIBS=ON \
161+
-DBUILD_CLAR=OFF \
162+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE
163+
fi
110164
cmake --build . --target install
111165
cd ..
112166
fi
167+
168+
if [ "$KERNEL" = "Darwin" ]; then
169+
if [ "$GITHUB_ACTIONS" != "true" ]; then
170+
echo "Refusing to install Universal openssl locally!"
171+
exit 1
172+
fi
173+
# This is gross
174+
cp -r $OPENSSL_PREFIX/*.dylib /usr/local/lib
175+
cp -r $LIBSSH2_PREFIX/lib/*.dylib /usr/local/lib
176+
cp -r $FILENAME/*.dylib /usr/local/lib
177+
fi

0 commit comments

Comments
 (0)