[Qt] Add toolchain support

Enables cross-compilation.
This commit is contained in:
Thiago Marcos P. Santos
2016-04-22 16:26:13 +03:00
parent 4c548fe0bb
commit 8b9f84d815
3 changed files with 58 additions and 24 deletions

View File

@@ -46,3 +46,9 @@ function print_qt_flags {
CONFIG+=" 'qt_rcc%': '$(pkg-config QtCore --variable=rcc_location)',"$LN
fi
}
CONFIGURE_SUPLATFORM=platform/qt/scripts/configure-${SUBPLATFORM}.sh
if [ -f $CONFIGURE_SUPLATFORM ]; then
source $CONFIGURE_SUPLATFORM
fi

View File

@@ -0,0 +1,21 @@
#!/usr/bin/env bash
set -e
set -o pipefail
if [ -z ${MASON_SYSROOT:-} ]; then
exit 0
fi
export PATH="`pwd`/.mason:${PATH}"
export MASON_DIR="`pwd`/.mason"
export PATH=`mason env PATH`
echo CXX=\"`which $(mason env CXX)`\"
echo CC=\"`which $(mason env CC)`\"
echo LD=\"`which $(mason env LD)`\"
echo LINK=\"`which $(mason env CXX)`\"
echo AR=\"`which $(mason env AR)`\"
echo RANLIB=\"`which $(mason env RANLIB)`\"
echo STRIP=\"`which $(mason env STRIP)`\"

View File

@@ -16,38 +16,45 @@ else
export SUBPLATFORM ?= $(shell uname -m)
endif
ifneq ($(PLATFORM),node)
export MASON_PLATFORM = $(PLATFORM)
export MASON_PLATFORM_VERSION = $(SUBPLATFORM)
export PLATFORM_SLUG = $(PLATFORM)-$(SUBPLATFORM)
else ifeq ($(shell uname -s), Darwin)
export MASON_PLATFORM = osx
export MASON_PLATFORM_VERSION = $(SUBPLATFORM)
export PLATFORM_SLUG = node-osx-$(SUBPLATFORM)
else ifeq ($(shell uname -s), Linux)
export MASON_PLATFORM = linux
export MASON_PLATFORM_VERSION = $(SUBPLATFORM)
export PLATFORM_SLUG = node-linux-$(SUBPLATFORM)
ifeq ($(PLATFORM),node)
ifeq ($(shell uname -s), Darwin)
export MASON_PLATFORM ?= osx
export MASON_PLATFORM_VERSION = $(SUBPLATFORM)
export PLATFORM_SLUG = node-osx-$(SUBPLATFORM)
else ifeq ($(shell uname -s), Linux)
export MASON_PLATFORM ?= linux
export MASON_PLATFORM_VERSION = $(SUBPLATFORM)
export PLATFORM_SLUG = node-linux-$(SUBPLATFORM)
endif
endif
export PLATFORM_OUTPUT = ./build/$(PLATFORM_SLUG)
export PLATFORM_CONFIG_INPUT = platform/$(MASON_PLATFORM)/scripts/configure.sh
export PLATFORM_CONFIG_OUTPUT = $(PLATFORM_OUTPUT)/config.gypi
ifeq ($(PLATFORM),qt)
ifeq ($(shell uname -s), Darwin)
export MASON_PLATFORM = osx
export MASON_PLATFORM_VERSION = $(SUBPLATFORM)
export PLATFORM_SLUG = qt-osx-$(SUBPLATFORM)
export PLATFORM_CONFIG_INPUT = platform/qt/scripts/configure.sh
export MASON_PLATFORM ?= osx
ifneq ($(MASON_PLATFORM), osx)
export GYP_FLAVOR_SUFFIX = -$(MASON_PLATFORM)
endif
else ifeq ($(shell uname -s), Linux)
export MASON_PLATFORM = linux
export MASON_PLATFORM_VERSION = $(SUBPLATFORM)
export PLATFORM_SLUG = qt-linux-$(SUBPLATFORM)
export PLATFORM_CONFIG_INPUT = platform/qt/scripts/configure.sh
export MASON_PLATFORM ?= linux
endif
export MASON_PLATFORM_VERSION = $(SUBPLATFORM)
export PLATFORM_SLUG = qt-$(MASON_PLATFORM)-$(SUBPLATFORM)
export PLATFORM_CONFIG_INPUT = platform/qt/scripts/configure.sh
# Cross compilation support
ENV = $(shell MASON_PLATFORM_VERSION=$(SUBPLATFORM) ./platform/qt/scripts/toolchain.sh)
endif
# Defaults if not set
export PLATFORM_OUTPUT ?= ./build/$(PLATFORM_SLUG)
export PLATFORM_CONFIG_INPUT ?= platform/$(MASON_PLATFORM)/scripts/configure.sh
export PLATFORM_CONFIG_OUTPUT ?= $(PLATFORM_OUTPUT)/config.gypi
export MASON_PLATFORM ?= $(PLATFORM)
export MASON_PLATFORM_VERSION ?= $(SUBPLATFORM)
export PLATFORM_SLUG ?= $(PLATFORM)-$(SUBPLATFORM)
ifneq (,$(findstring clang,$(CXX)))
CXX_HOST = "clang"
else ifneq (,$(findstring g++,$(CXX)))