build: Add support for Xcode Archive feature.
authorBradley Sepos <bradley@bradleysepos.com>
Thu, 7 Sep 2017 16:42:34 +0000 (12:42 -0400)
committerBradley Sepos <bradley@bradleysepos.com>
Mon, 27 Nov 2017 09:13:06 +0000 (04:13 -0500)
macosx/archive.plist [new file with mode: 0644]
macosx/module.defs
macosx/module.rules
macosx/module.xcodebuild
make/include/main.rules

diff --git a/macosx/archive.plist b/macosx/archive.plist
new file mode 100644 (file)
index 0000000..e5d1ec4
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+    <key>method</key>
+    <string>developer-id</string>
+    <key>teamID</key>
+    <string></string>
+</dict>
+</plist>
index 96c913e13f15d87970061e19f00cc3e4539395f2..031d881c9133f9e25be2af6a621f04c24749b2d9 100644 (file)
@@ -4,6 +4,7 @@ $(eval $(call import.GCC,MACOSX))
 MACOSX.src/   = $(SRC/)macosx/
 MACOSX.build/ = $(BUILD/)macosx/
 MACOSX.xroot/ = $(BUILD/)xroot/
+MACOSX.xarchive/ = $(BUILD/)xroot/HandBrake/
 
 MACOSX.m4.in  = $(wildcard $(MACOSX.src/)*.m4)
 MACOSX.m4.out = $(MACOSX.m4.in:$(MACOSX.src/)%.m4=$(MACOSX.build/)%)
@@ -68,3 +69,33 @@ MACOSX.XCODE = $(strip \
         $(MACOSX.extra_cflags) \
         \
         $(2) )
+
+MACOSX.XCODE_ARCHIVE = $(strip \
+    $(XCODEBUILD.exe) \
+        $(MACOSX.project) \
+        $(foreach t,$(1),-scheme $t) \
+        $(MACOSX.configuration) \
+        $(MACOSX.xcconfig) \
+        \
+        SYMROOT='$(XCODE.symroot)' \
+        CONFIGURATION_BUILD_DIR='$(XCODE.symroot)' \
+        CONFIGURATION_TEMP_DIR='$(XCODE.symroot)' \
+        \
+        -derivedDataPath '$(MACOSX.xarchive/)' \
+        -archivePath '$(MACOSX.xarchive/)' \
+        \
+        EXTERNAL_BUILD='$(abspath $(BUILD))' \
+        EXTERNAL_CONF_ARGS='$(CONF.args)' \
+        EXTERNAL_DRIVER='$(XCODE.driver)' \
+        EXTERNAL_GOALS='$(3)' \
+        EXTERNAL_JOBS='$(BUILD.jobs)' \
+        EXTERNAL_VARS='$(-*-command-variables-*-)' \
+        \
+        $(MACOSX.extra_cflags) \
+        \
+        $(2) ) ; $(strip \
+    $(XCODEBUILD.exe) \
+        -exportArchive \
+        -exportOptionsPlist '$(MACOSX.src/)archive.plist' \
+        -exportPath '$(MACOSX.xarchive/)' \
+        -archivePath '$(MACOSX.xarchive/)' )
index 20011c03dff6666a9a32efe935f685f3218c0376..077f814d02f1230af9a9d8fab09b6942bbfecce9 100644 (file)
@@ -1,6 +1,7 @@
 $(eval $(call import.MODULE.rules,MACOSX))
 
 build: macosx.build
+archive: macosx.archive
 install: macosx.install
 uninstall: macosx.uninstall
 clean: macosx.clean
@@ -28,10 +29,17 @@ test.xclean: test.clean
 macosx.build: $(MACOSX.m4.out)
 macosx.build: $(MACOSX.osl.filelist)
 
+macosx.archive: $(MACOSX.m4.out)
+macosx.archive: $(MACOSX.osl.filelist)
+
 macosx.install: test.install
 macosx.uninstall: test.uninstall
 
 macosx.clean:
+       $(RM.exe) -rf $(MACOSX.xroot/)HandBrake/
+       $(RM.exe) -rf $(MACOSX.xroot/)HandBrake.xcarchive
+       $(RM.exe) -rf $(MACOSX.xroot/)HandBrake.app
+       $(RM.exe) -f $(MACOSX.xroot/)HandBrakeCLI
        $(RM.exe) -f $(MACOSX.m4.out)
        $(RM.exe) -f $(MACOSX.osl.filelist)
 
index bb62e80dbaa5fd074523cdfc8f076cc64aaf6801..b472b4da07d6f6795da429e97deebb8ce8dc1f6f 100644 (file)
@@ -1,10 +1,13 @@
 ## This file is processed only when shunting build through xcodebuild
 
-.PHONY: macosx.build macosx.clean macosx.install macosx.install-strip macosx.uninstall
+.PHONY: macosx.build macosx.archive macosx.clean macosx.install macosx.install-strip macosx.uninstall
 
 macosx.build:
        $(call MACOSX.XCODE,HandBrakeCLI HandBrake,build)
 
+macosx.archive:
+       $(call MACOSX.XCODE_ARCHIVE,HandBrake-Distribution,archive)
+
 macosx.clean:
        $(call MACOSX.XCODE,HandBrakeCLI HandBrake,clean)
 
@@ -25,6 +28,7 @@ macosx.uninstall:
        $(RM.exe) -f $(PREFIX/)bin/HandBrakeCLI
 
 build: macosx.build
+archive: macosx.archive
 clean: macosx.clean
 install: macosx.install
 install-strip: macosx.install-strip
@@ -33,7 +37,7 @@ xclean: clean
 
 ###############################################################################
 
-MACOSX.goals = $(filter-out build clean install,$(MAKECMDGOALS))
+MACOSX.goals = $(filter-out build archive clean install,$(MAKECMDGOALS))
 
 $(MACOSX.goals): __goals__
        @true
index 158f24a9c48a0efd420eef3a971477f838308a79..6c3cbb05bbeda669b4be387f2e646795bbb16cef 100644 (file)
@@ -15,10 +15,11 @@ endif
 
 ###############################################################################
 
-.PHONY: build clean install uninstall xclean doc report
+.PHONY: build clean archive install uninstall xclean doc report
 
 build:
 clean:
+archive:
 install:
 install-strip:
 uninstall: