diff options
author | Mike Frysinger <vapier@google.com> | 2015-10-09 14:33:21 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@google.com> | 2015-10-09 14:33:21 -0400 |
commit | 9f2b516f9e08a5d68ee61863dd9b795b443e1f81 (patch) | |
tree | 10880f023c9dcccff568a87d861c325b6817c4aa | |
parent | ba029f6bf802b0988cd58819be36a9e44e2bedb5 (diff) | |
download | integration-9f2b516f9e08a5d68ee61863dd9b795b443e1f81.tar.gz |
toolchain: add a C++ wrapper
We need some extra flags when building C++, so create a new wrapper for it.
BUG=24803386
TEST=emerge glog/gflags works
Change-Id: I795e1bfd28c78150a2950b0c6b6e4d2b225406fd
-rw-r--r-- | 3rd-party-binary.mk | 2 | ||||
-rw-r--r-- | Android.mk | 1 | ||||
-rw-r--r-- | portage/Android.mk | 2 | ||||
-rw-r--r-- | tests/Android.mk | 8 | ||||
-rw-r--r-- | tests/test-cxx.cc | 9 | ||||
-rw-r--r-- | toolchain/3rd-party-g++.in | 10 | ||||
-rw-r--r-- | toolchain/Android.mk | 25 |
7 files changed, 55 insertions, 2 deletions
diff --git a/3rd-party-binary.mk b/3rd-party-binary.mk index 880e4b8..ea34c65 100644 --- a/3rd-party-binary.mk +++ b/3rd-party-binary.mk @@ -1,5 +1,5 @@ LOCAL_CC := $(HOST_OUT_EXECUTABLES)/3rd-party-gcc -LOCAL_CXX := $(LOCAL_CC) +LOCAL_CXX := $(HOST_OUT_EXECUTABLES)/3rd-party-g++ LOCAL_ADDITIONAL_DEPENDENCIES := 3rd-party-packages include $(BUILD_EXECUTABLE) @@ -4,6 +4,7 @@ LOCAL_PATH := $(call my-dir) ifneq ($(PRODUCT_3RD_PARTY_PACKAGES),) 3RD_PARTY_CC := $(HOST_OUT_EXECUTABLES)/3rd-party-gcc +3RD_PARTY_CXX := $(HOST_OUT_EXECUTABLES)/3rd-party-g++ 3RD_PARTY_PKG_CONFIG := $(HOST_OUT_EXECUTABLES)/3rd-party-pkg-config TARGET_OUT_GENTOO := $(TARGET_OUT_INTERMEDIATES)/gentoo diff --git a/portage/Android.mk b/portage/Android.mk index a24768a..3918ea1 100644 --- a/portage/Android.mk +++ b/portage/Android.mk @@ -54,7 +54,7 @@ $(make.conf): $(LOCAL_PATH)/make.conf.in $(make.profile) $(hide)mkdir -p $(dir $@) $(hide)sed \ -e 's:@CC@:$(notdir $(3RD_PARTY_CC)):g' \ - -e 's:@CXX@:$(notdir $(TARGET_CXX)):g' \ + -e 's:@CXX@:$(notdir $(3RD_PARTY_CXX)):g' \ -e 's:@AR@:$(notdir $(TARGET_AR)):g' \ -e 's:@RANLIB@:$(notdir $(TARGET_RANLIB)):g' \ -e 's:@LD@:$(notdir $(TARGET_LD)):g' \ diff --git a/tests/Android.mk b/tests/Android.mk index 648619c..4de6200 100644 --- a/tests/Android.mk +++ b/tests/Android.mk @@ -7,3 +7,11 @@ LOCAL_SRC_FILES := hello.c LOCAL_LDLIBS := -liniparser include external/gentoo/integration/3rd-party-binary.mk + +include $(CLEAR_VARS) + +LOCAL_MODULE := 3rd-party-test-cxx +LOCAL_SRC_FILES := test-cxx.cc +LOCAL_CPP_EXTENSION := .cc + +include external/gentoo/integration/3rd-party-binary.mk diff --git a/tests/test-cxx.cc b/tests/test-cxx.cc new file mode 100644 index 0000000..9060df4 --- /dev/null +++ b/tests/test-cxx.cc @@ -0,0 +1,9 @@ +/* Simple test program for C++ code. */ + +#include <iostream> + +int main(int argc, char *argv[]) +{ + std::cout << "success!" << std::endl; + return 0; +} diff --git a/toolchain/3rd-party-g++.in b/toolchain/3rd-party-g++.in new file mode 100644 index 0000000..a60334f --- /dev/null +++ b/toolchain/3rd-party-g++.in @@ -0,0 +1,10 @@ +#!/bin/sh +exec \ + "${ANDROID_TOOLCHAIN}/@CXX@" \ + @CXXFLAGS@ \ + @LDFLAGS@ \ + --sysroot "${ANDROID_PRODUCT_OUT}/@ROOT_SUBDIR@" \ + -Wl,-rpath,/system/usr/lib \ + -Wl,-lc++ \ + -frtti \ + "$@" diff --git a/toolchain/Android.mk b/toolchain/Android.mk index e0c46fb..70d3286 100644 --- a/toolchain/Android.mk +++ b/toolchain/Android.mk @@ -26,6 +26,31 @@ LOCAL_GENERATED_SOURCES += $(3RD_PARTY_CC) include $(CLEAR_VARS) +LOCAL_MODULE := 3rd-party-g++ +LOCAL_MODULE_CLASS := EXECUTABLES +LOCAL_IS_HOST_MODULE := true + +include $(BUILD_SYSTEM)/base_rules.mk + +compiler = $(intermediates)/$(LOCAL_MODULE) +$(compiler): $(LOCAL_PATH)/$(LOCAL_MODULE).in + $(hide)mkdir -p $(dir $@) + $(hide)sed \ + -e 's:@CXX@:$(notdir $(TARGET_CXX)):' \ + -e 's:@CXXFLAGS@:$(foreach p,$(TARGET_C_INCLUDES) external/libcxx/include external/libcxxabi/include,-isystem "$${ANDROID_BUILD_TOP}/$(p)"):' \ + -e 's:@CFLAGS@:$(foreach p,$(TARGET_C_INCLUDES),-isystem "$${ANDROID_BUILD_TOP}/$(p)"):' \ + -e 's:@LDFLAGS@:-B"$(patsubst $(PRODUCT_OUT)/%,$${ANDROID_PRODUCT_OUT}/%,$(TARGET_OUT_INTERMEDIATE_LIBRARIES))":' \ + -e 's:@ROOT_SUBDIR@:$(3RD_PARTY_ROOT_SUBDIR):g' \ + $< > $@.tmp \ + && chmod a+rx $@.tmp && mv $@.tmp $@ + +LOCAL_BUILT_MODULE = $(compiler) +LOCAL_GENERATED_SOURCES += $(3RD_PARTY_CXX) + +3RD_PARTY_WRAPPERS += $(HOST_OUT_EXECUTABLES)/$(LOCAL_MODULE) + +include $(CLEAR_VARS) + LOCAL_MODULE := 3rd-party-pkg-config LOCAL_MODULE_CLASS := EXECUTABLES LOCAL_IS_HOST_MODULE := true |