@@ -80,17 +80,61 @@ if [ -n "$ZLIB_VERSION" ]; then
80
80
cd ..
81
81
fi
82
82
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
+
83
115
# Install libssh2
84
116
if [ -n " $LIBSSH2_VERSION " ]; then
85
117
FILENAME=libssh2-$LIBSSH2_VERSION
86
118
wget https://www.libssh2.org/download/$FILENAME .tar.gz -N --no-check-certificate
87
119
tar xf $FILENAME .tar.gz
88
120
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
94
138
cmake --build . --target install
95
139
cd ..
96
140
LIBSSH2_PREFIX=$PREFIX
@@ -102,11 +146,32 @@ if [ -n "$LIBGIT2_VERSION" ]; then
102
146
wget https://github.com/libgit2/libgit2/archive/refs/tags/v$LIBGIT2_VERSION .tar.gz -N -O $FILENAME .tar.gz
103
147
tar xf $FILENAME .tar.gz
104
148
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
110
164
cmake --build . --target install
111
165
cd ..
112
166
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