This is an automated email from the ASF dual-hosted git repository. dinglei pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/rocketmq-ons-cpp.git
commit afad560872a4bae6a7eb762af8ace5d08a451e77 Author: ShannonDing <[email protected]> AuthorDate: Wed Jul 24 20:00:08 2019 +0800 Support --- CMakeLists.txt | 11 +++++++++++ build.sh | 1 + src/main/java/org/apache/rocketmq/graalvm/CInterface.java | 9 +++++++++ 3 files changed, 21 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6cef86b..49d90cb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,17 @@ project(${PROJECT_NAME} VERSION ${CLIENT_VERSION} set(CMAKE_CXX_STANDARD 11) set(CMAKE_BUILD_TYPE Debug) +if (CONAN_LIBCXX STREQUAL "libstdc++11") + message("Using -D_GLIBCXX_USE_CXX11_ABI=1") + add_definitions(-D_GLIBCXX_USE_CXX11_ABI=1) +elseif (CONAN_LIBCXX STREQUAL "libstdc++") + message("Using -D_GLIBCXX_USE_CXX11_ABI=0") + add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) +else () + message("As Default -D_GLIBCXX_USE_CXX11_ABI=0, not set.") + #add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) +endif () + include(CTest) option(BUILD_TESTS "Build tests" ON) diff --git a/build.sh b/build.sh index 0b23ca1..ae8e4c4 100755 --- a/build.sh +++ b/build.sh @@ -11,6 +11,7 @@ native-image --shared -H:Path=./build \ -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 \ diff --git a/src/main/java/org/apache/rocketmq/graalvm/CInterface.java b/src/main/java/org/apache/rocketmq/graalvm/CInterface.java index f93a396..f0a7ca7 100644 --- a/src/main/java/org/apache/rocketmq/graalvm/CInterface.java +++ b/src/main/java/org/apache/rocketmq/graalvm/CInterface.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.parser.ParserConfig; import com.alibaba.fastjson.serializer.SerializeConfig; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -61,6 +62,14 @@ public class CInterface { */ return Collections.singletonList("<rocketmq/rocketmq.h>"); } + + public List<String> getMacroDefinitions() { + if ("true".equalsIgnoreCase(System.getProperty("OPEN_DUAL_ABI"))) { + System.out.println("-D_GLIBCXX_USE_CXX11_ABI=1"); + return Arrays.asList("-D_GLIBCXX_USE_CXX11_ABI=1"); + } + return Arrays.asList("-D_GLIBCXX_USE_CXX11_ABI=0"); + } } @CStruct("message") interface CMessage extends PointerBase {
