Use the projects grouping feature of linphone-cmake-builder.

This commit is contained in:
Ghislain MARY 2015-10-13 16:27:05 +02:00
parent 17274a4f45
commit 94e103798d
12 changed files with 21 additions and 79 deletions

View file

@ -50,6 +50,7 @@ class IOSTarget(prepare.Target):
self.toolchain_file = 'toolchains/toolchain-ios-' + arch + '.cmake'
self.output = 'liblinphone-sdk/' + arch + '-apple-darwin.ios'
self.additional_args = [
'-DLINPHONE_BUILDER_GROUP_EXTERNAL_SOURCE_PATH_BUILDERS=YES',
'-DLINPHONE_BUILDER_EXTERNAL_SOURCE_PATH=' +
current_path + '/submodules'
]
@ -278,56 +279,16 @@ def generate_makefile(platforms, generator):
arch_targets += """
{arch}: {arch}-build
{arch}-build: $(addprefix {arch}-build-, $(packages))
{arch}-build:
\t{generator} WORK/ios-{arch}/cmake
\t@echo "Done"
{arch}-clean: $(addprefix {arch}-clean-, $(packages))
WORK/ios-{arch}/build.done:
\t$(MAKE) {arch}-build && touch WORK/ios-{arch}/build.done
{arch}-dev: WORK/ios-{arch}/build.done
\t{generator} WORK/ios-{arch}/Build/linphone_builder
\t@echo "Done"
{arch}-veryclean: $(addprefix {arch}-veryclean-, $(packages))
\t@echo "Done"
{arch}-build-%: package-in-list-%
\trm -f WORK/ios-{arch}/Stamp/EP_$*/EP_$*-update; \\
\t{generator} WORK/ios-{arch}/cmake EP_$*
{arch}-clean-%: package-in-list-%
\t{generator} WORK/ios-{arch}/Build/$* clean; \\
\trm -f WORK/ios-{arch}/Stamp/EP_$*/EP_$*-build; \\
\trm -f WORK/ios-{arch}/Stamp/EP_$*/EP_$*-install;
{arch}-veryclean-%: package-in-list-%
\ttest -f WORK/ios-{arch}/Build/$*/install_manifest.txt && \\
\tcat WORK/ios-{arch}/Build/$*/install_manifest.txt | xargs rm; \\
\trm -rf WORK/ios-{arch}/Build/$*/*; \\
\trm -f WORK/ios-{arch}/Stamp/EP_$*/*; \\
\techo "Run 'make {arch}-build-$*' to rebuild $* correctly.";
{arch}-veryclean-ffmpeg:
\t{generator} WORK/ios-{arch}/Build/ffmpeg uninstall; \\
\trm -rf WORK/ios-{arch}/Build/ffmpeg/*; \\
\trm -f WORK/ios-{arch}/Stamp/EP_ffmpeg/*; \\
\techo "Run 'make {arch}-build-ffmpeg' to rebuild ffmpeg correctly.";
{arch}-clean-openh264:
\tcd WORK/ios-{arch}/Build/openh264; \\
\t$(MAKE) -f ../../../../submodules/externals/openh264/Makefile clean; \\
\trm -f WORK/ios-{arch}/Stamp/EP_openh264/EP_openh264-build; \\
\trm -f WORK/ios-{arch}/Stamp/EP_openh264/EP_openh264-install;
{arch}-veryclean-openh264:
\trm -rf liblinphone-sdk/{arch}-apple-darwin.ios/include/wels; \\
\trm -f liblinphone-sdk/{arch}-apple-darwin.ios/lib/libopenh264.*; \\
\trm -rf WORK/ios-{arch}/Build/openh264/*; \\
\trm -f WORK/ios-{arch}/Stamp/EP_openh264/*; \\
\techo "Run 'make {arch}-build-openh264' to rebuild openh264 correctly.";
{arch}-veryclean-vpx:
\trm -rf liblinphone-sdk/{arch}-apple-darwin.ios/include/vpx; \\
\trm -f liblinphone-sdk/{arch}-apple-darwin.ios/lib/libvpx.*; \\
\trm -rf WORK/ios-{arch}/Build/vpx/*; \\
\trm -f WORK/ios-{arch}/Stamp/EP_vpx/*; \\
\techo "Run 'make {arch}-build-vpx' to rebuild vpx correctly.";
""".format(arch=arch, generator=generator)
multiarch = ""
for arch in platforms[1:]:
@ -341,33 +302,14 @@ def generate_makefile(platforms, generator):
""".format(first_arch=platforms[0], arch=arch)
makefile = """
archs={archs}
packages={packages}
LINPHONE_IPHONE_VERSION=$(shell git describe --always)
.PHONY: all
.SILENT: sdk
#turn off parallelism because it is not yet handled properly
.NOTPARALLEL:
all: build
package-in-list-%:
\tif ! grep -q " $* " <<< " $(packages) "; then \\
\t\techo "$* not in list of available packages: $(packages)"; \\
\t\texit 3; \\
\tfi
build-%: package-in-list-% $(addsuffix -build-%, $(archs))
\t@echo "Build of $* terminated"
clean-%: package-in-list-% $(addsuffix -clean, $(archs))
\t@echo "Clean of $* terminated"
veryclean-%: package-in-list-% $(addsuffix -veryclean, $(archs))
\t@echo "Veryclean of $* terminated"
clean: $(addprefix clean-,$(packages))
veryclean: $(addprefix veryclean-,$(packages))
dev: $(addsuffix -dev, $(archs))
\t$(MAKE) sdk
sdk:
\tfor arch in $(archs); do {generator} WORK/ios-$$arch/cmake EP_dummy_libraries; done && \\

@ -1 +1 @@
Subproject commit 0efd4dfd5b37fb28ba1ecbabcc8d37defddfd517
Subproject commit c9e603882c3b6bd2b387f17ba8c003ffb4f218fe

@ -1 +1 @@
Subproject commit 7f0b84802a6e1d1f99efb95de4d9b460069a3f23
Subproject commit 4c9fc9539a06483da62938e8ae0ea48b18d026e6

@ -1 +1 @@
Subproject commit e5ddd892561b0c5df25b7036bd9229fe6a6ea81a
Subproject commit cde0af647557dd73a74d868779b7906c78b31e0d

@ -1 +1 @@
Subproject commit a6bb1eb6dab5541cdded6a1f0326539234954c5d
Subproject commit 91b61e39fb9c5d3dc78691f3d6e4f1d65c8b0d2a

@ -1 +1 @@
Subproject commit 4e3ea86c90cf125f1348dc4f296540d1696e5851
Subproject commit 2bc233d95b367c2cbd00240a0703de0f5b3c7b37

@ -1 +1 @@
Subproject commit c2a0886a9350004e3da94d968cae9978c7472a9d
Subproject commit e56ef9f86989bafa9a0e808ed4b34c2264c6e10d

@ -1 +1 @@
Subproject commit b5a2b070259ef0c4f404fa8ca87752b8b1259d76
Subproject commit bf4815c4cf9574afeae7c6b28347b747085019fc

@ -1 +1 @@
Subproject commit 9be271700b377a251b95e9d8dbe0e8b878a403ac
Subproject commit 78ed115b583ee43473f982d370d85d2f86754dac

@ -1 +1 @@
Subproject commit dd9dd3e81719972232d9d4df7bc5e7c5282722bb
Subproject commit 49306ca4566480e08a0b64f1323bfc9f354d41bf

@ -1 +1 @@
Subproject commit eecba24b5559c89e123991ab1f32f35649b7ebe8
Subproject commit 9f7b3128b9c6b396c89d784ba5ddfa68be05607a

@ -1 +1 @@
Subproject commit e8fd6adb59e9015c1bfe58e364565016ef26122c
Subproject commit 2e9b11b8255a305adcc8e94ff3f77b6a2c08418e