16b11bb81e
If automatic signing is enabled (which it is by default), then Xcode will happily set up the required profile if you open and run the application in Xcode. To get the same behavior for xcodebuild, and hence from Creator, since it's calling our Makefile wrapper around xcodebuild, we need to pass the -allowProvisioningUpdates flag to xcodebuild. Fixes: QTBUG-95565 Pick-to: 6.2 6.2.0 5.15 Change-Id: I9325bb228bdfb4d07658eff8f41798f7b5a6955c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
113 lines
3.7 KiB
Makefile
113 lines
3.7 KiB
Makefile
|
|
# We don't want xcodebuild to run in parallel
|
|
.NOTPARALLEL:
|
|
|
|
# Functions
|
|
targets = $(foreach target, $(EXPORT_SUBTARGETS), $(target)-$(strip $(1)))
|
|
toupper = $(shell echo $1 | tr '[:lower:]' '[:upper:]')
|
|
tolower = $(shell echo $1 | tr '[:upper:]' '[:lower:]')
|
|
basesdk = $(shell echo $1 | sed 's/[0-9.]*$$//')
|
|
|
|
# Explicit comma variable
|
|
, := ,
|
|
|
|
# Default targets
|
|
first: build
|
|
all: build_all
|
|
|
|
.DEFAULT_GOAL = first
|
|
|
|
# Top level targets
|
|
build: build_first
|
|
clean: clean_first
|
|
install: install_first
|
|
check: check_first
|
|
distclean: clean_all
|
|
|
|
$(EXPORT_SUBTARGETS): % : %-build
|
|
|
|
# Generic targets
|
|
%_first: $(EXPORT_PRE_TARGETDEPS) $(firstword $(call targets, %)) ;
|
|
%_all: $(EXPORT_PRE_TARGETDEPS) $(call targets, %) ;
|
|
|
|
# Actions
|
|
%-build: ACTION = build
|
|
%-build: xcodebuild-% ;
|
|
|
|
%-clean: ACTION = clean
|
|
%-clean: xcodebuild-% ;
|
|
|
|
%-install: ACTION = install
|
|
%-install: xcodebuild-% ;
|
|
|
|
# Simulator doesn't support archiving
|
|
%-simulator-install: ACTION = build
|
|
simulator-install: ACTION = build
|
|
|
|
# Limit check to a single configuration
|
|
%-device-check: check-device ;
|
|
%-simulator-check: check-simulator ;
|
|
|
|
# SDK
|
|
%-device: SDK = $(DEVICE_SDK)
|
|
%-simulator: SDK = $(SIMULATOR_SDK)
|
|
|
|
# Configuration
|
|
release-%: CONFIGURATION = Release
|
|
debug-%: CONFIGURATION = Debug
|
|
|
|
MAKEFILE_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
|
|
|
|
# Test and build (device) destinations
|
|
ifneq ($(filter check%,$(MAKECMDGOALS)),)
|
|
ifeq ($(DEVICES),)
|
|
$(info Enumerating test destinations (you may override this by setting DEVICES explicitly), please wait...)
|
|
DESTINATIONS_INCLUDE = /tmp/device_destinations.mk
|
|
$(shell $(MAKEFILE_DIR)device_destinations.sh $(TARGET) $(EXPORT_DEVICE_FILTER) > $(DESTINATIONS_INCLUDE))
|
|
include $(DESTINATIONS_INCLUDE)
|
|
endif
|
|
endif
|
|
|
|
%-simulator: DEVICES = $(firstword $(SIMULATOR_DEVICES))
|
|
%-device: DEVICES = $(HARDWARE_DEVICES)
|
|
|
|
GENERIC_DEVICE_DESTINATION := $(EXPORT_GENERIC_DEVICE_DESTINATION)
|
|
GENERIC_SIMULATOR_DESTINATION := "id=$(shell $(MAKEFILE_DIR)devices.py $(EXPORT_DEVICE_FILTER) | tail -n 1)"
|
|
|
|
%-simulator: DESTINATION = $(if $(DESTINATION_ID),"id=$(DESTINATION_ID)",$(GENERIC_SIMULATOR_DESTINATION))
|
|
%-device: DESTINATION = $(if $(DESTINATION_ID),"id=$(DESTINATION_ID)",$(GENERIC_DEVICE_DESTINATION))
|
|
|
|
XCODE_VERSION_MAJOR := $(shell xcodebuild -version | grep Xcode | sed -e 's/Xcode //' | sed -e 's/\..*//')
|
|
|
|
ifeq ($(shell test $(XCODE_VERSION_MAJOR) -gt 7; echo $$?),0)
|
|
XCODEBUILD_FLAGS += $(shell echo "$(MAKEFLAGS)" | sed -e 's/\([^ ]*\).*/\1/' | grep -qv 's' || echo -quiet)
|
|
endif
|
|
|
|
ifeq ($(shell test $(XCODE_VERSION_MAJOR) -ge 9; echo $$?),0)
|
|
XCODEBUILD_FLAGS += -allowProvisioningUpdates
|
|
endif
|
|
|
|
# Xcodebuild
|
|
|
|
DESTINATION_MESSAGE = "Running $(call tolower,$(CONFIGURATION)) $(ACTION) \
|
|
on '$(DESTINATION_NAME)' ($(DESTINATION_ID))$(if $(DESTINATION_OS),$(,) $(DESTINATION_PLATFORM) $(DESTINATION_OS),)"
|
|
|
|
xcodebuild-%:
|
|
@$(if $(DESTINATION_NAME), echo $(DESTINATION_MESSAGE),)
|
|
xcodebuild $(ACTION) $(XCODEBUILD_FLAGS) -project $(TARGET).xcodeproj -scheme $(TARGET) $(if $(SDK), -sdk $(SDK),) $(if $(CONFIGURATION), -configuration $(CONFIGURATION),) $(if $(DESTINATION), -destination $(DESTINATION) -destination-timeout 1,) $(if $(DESTINATION_ID),, ENABLE_ONLY_ACTIVE_RESOURCES=NO) $(if $(INSTALL_ROOT), DSTROOT=$(INSTALL_ROOT),)
|
|
|
|
xcodebuild-check-device_%: DESTINATION_ID=$(lastword $(subst _, ,$@))
|
|
|
|
# Special check target (requires SECONDEXPANSION due to devices)
|
|
.SECONDEXPANSION:
|
|
check-%: ACTION = test
|
|
check-%: $$(foreach device, $$(DEVICES), xcodebuild-check-device_$$(device)) ;
|
|
@echo $(if $^, Ran $(call tolower,$(CONFIGURATION)) tests on $(words $^) $(SDK) destination\(s\): $(DEVICES), No compatible test devices found for \'$(SDK)\' SDK && false)
|
|
|
|
# Determined by device
|
|
check-%: SDK =
|
|
|
|
# Default to debug for testing
|
|
check-%: CONFIGURATION = Debug
|
|
|