blob: 46c1102f8e889e12cd92227cbdd9011e9f5623c4 [file] [log] [blame]
#!/bin/bash
if [ -d build ]; then
rm -fr build
fi
mkdir build
native-image --shared -H:Path=./build \
--no-server \
-H:ReflectionConfigurationFiles=./tools/graal/reflection_config.json \
-H:Name=rocketmq_client_core \
-H:CLibraryPath=./src/main/c/native \
-jar ./target/rocketmq-ons-cpp-full.jar \
-Dio.netty.noUnsafe=true \
-DOPEN_DUAL_ABI=false \
--report-unsupported-elements-at-runtime \
--allow-incomplete-classpath \
-H:+ReportExceptionStackTraces \
--enable-all-security-services \
--enable-url-protocols=https \
-H:EnableURLProtocols=http \
--initialize-at-build-time \
--initialize-at-run-time=io.netty.handler.ssl.util.BouncyCastleSelfSignedCertGenerator,io.netty.handler.ssl.ReferenceCountedOpenSslClientContext,io.netty.handler.ssl.ReferenceCountedOpenSslServerContext,io.netty.handler.ssl.JdkNpnApplicationProtocolNegotiator,io.netty.handler.ssl.JdkAlpnApplicationProtocolNegotiator,io.netty.handler.ssl.util.ThreadLocalInsecureRandom,io.netty.handler.ssl.JettyNpnSslEngine,io.netty.handler.ssl.ReferenceCountedOpenSslEngine,io.netty.handler.ssl.ConscryptAlpnSslEngine,io.netty.handler.ssl.JettyAlpnSslEngine$ClientEngine,io.netty.handler.ssl.JettyAlpnSslEngine$ServerEngine,io.netty.util.internal.ObjectCleaner,io.netty.handler.ssl.util.InsecureTrustManagerFactory
mkdir -p graalvm_artifacts/
cp build/*.h graalvm_artifacts/
if test "$(uname)" = "Linux"; then
mv build/rocketmq-ons-cpp-full.so build/librocketmq_client_core.so
fi
if test "$(uname)" = "Darwin"; then
mv build/rocketmq-ons-cpp-full.dylib build/librocketmq_client_core.dylib
install_name_tool -id "@rpath/librocketmq_client_core.dylib" build/librocketmq_client_core.dylib
fi