[Outgrade submodule] cmake: Temporary revert new build procedure until full migration

Revert "prepare.py: update README"

This reverts commit e47b87d6e1.

Revert "Update linphone-cmake-builder submodule."

This reverts commit f340644f63.

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

This reverts commit 94e103798d.
This commit is contained in:
Gautier Pelloux-Prayer 2015-10-15 17:01:04 +02:00
parent e47b87d6e1
commit 5faeeeef44
11 changed files with 94 additions and 31 deletions

View file

@ -47,7 +47,7 @@ You can also choose to enable/disable features one by one (custom audio/video co
You can for instance enable X264 by using: You can for instance enable X264 by using:
./prepare.py -DENABLE_NON_FREE_CODECS=ON -DENABLE_X264=ON [other options] ./prepare.py -DENABLE_X264=ON [other options]
## Built architectures ## Built architectures
@ -74,7 +74,7 @@ After the SDK is built, just open the Linphone Xcode project with Xcode, and pre
The liblinphone SDK is compiled with third parties code that are subject to patent license, specially: AMR, SILK G729 and H264 codecs. The liblinphone SDK is compiled with third parties code that are subject to patent license, specially: AMR, SILK G729 and H264 codecs.
Linphone controls the embedding of these codecs by generating dummy libraries when there are not available. You can enable them using `prepare.py` Linphone controls the embedding of these codecs by generating dummy libraries when there are not available. You can enable them using `prepare.py`
script (see `--enable-non-free-codecs` option). Before embedding patent codecs in the final application, **make sure to have the right to do so**. script (see `--enable-non-free-codecs` option). Before embedding these 4 codecs in the final application, **make sure to have the right to do so**.
# Testing the application # Testing the application
@ -85,7 +85,7 @@ Simply press `⌘U` and the default simulator / device will launch and try to pa
# Limitations and known bugs # Limitations and known bugs
* Video capture will not work in simulator (simulator limitation). * Video capture will not work in simulator (not implemented in it).
# Debugging the SDK # Debugging the SDK

View file

@ -50,7 +50,6 @@ class IOSTarget(prepare.Target):
self.toolchain_file = 'toolchains/toolchain-ios-' + arch + '.cmake' self.toolchain_file = 'toolchains/toolchain-ios-' + arch + '.cmake'
self.output = 'liblinphone-sdk/' + arch + '-apple-darwin.ios' self.output = 'liblinphone-sdk/' + arch + '-apple-darwin.ios'
self.additional_args = [ self.additional_args = [
'-DLINPHONE_BUILDER_GROUP_EXTERNAL_SOURCE_PATH_BUILDERS=YES',
'-DLINPHONE_BUILDER_EXTERNAL_SOURCE_PATH=' + '-DLINPHONE_BUILDER_EXTERNAL_SOURCE_PATH=' +
current_path + '/submodules' current_path + '/submodules'
] ]
@ -279,16 +278,56 @@ def generate_makefile(platforms, generator):
arch_targets += """ arch_targets += """
{arch}: {arch}-build {arch}: {arch}-build
{arch}-build: {arch}-build: $(addprefix {arch}-build-, $(packages))
\t{generator} WORK/ios-{arch}/cmake
\t@echo "Done" \t@echo "Done"
WORK/ios-{arch}/build.done: {arch}-clean: $(addprefix {arch}-clean-, $(packages))
\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" \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) """.format(arch=arch, generator=generator)
multiarch = "" multiarch = ""
for arch in platforms[1:]: for arch in platforms[1:]:
@ -302,14 +341,33 @@ WORK/ios-{arch}/build.done:
""".format(first_arch=platforms[0], arch=arch) """.format(first_arch=platforms[0], arch=arch)
makefile = """ makefile = """
archs={archs} archs={archs}
packages={packages}
LINPHONE_IPHONE_VERSION=$(shell git describe --always) LINPHONE_IPHONE_VERSION=$(shell git describe --always)
.PHONY: all .PHONY: all
.SILENT: sdk .SILENT: sdk
#turn off parallelism because it is not yet handled properly
.NOTPARALLEL:
all: build all: build
dev: $(addsuffix -dev, $(archs)) package-in-list-%:
\t$(MAKE) sdk \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))
sdk: sdk:
\tfor arch in $(archs); do {generator} WORK/ios-$$arch/cmake EP_dummy_libraries; done && \\ \tfor arch in $(archs); do {generator} WORK/ios-$$arch/cmake EP_dummy_libraries; done && \\
@ -362,30 +420,35 @@ zipres:
help-prepare-options: help-prepare-options:
\t@echo "prepare.py was previously executed with the following options:" \t@echo "prepare.py was previously executed with the following options:"
\t@echo "\t{options}" \t@echo " {options}"
help: help-prepare-options help: help-prepare-options
\t@echo "" \t@echo ""
\t@echo "(please read the README.md file first)" \t@echo "(please read the README.md file first)"
\t@echo "" \t@echo ""
\t@echo "Available architectures: {archs}" \t@echo "Available architectures: {archs}"
\t@echo "Available packages: {packages}"
\t@echo "" \t@echo ""
\t@echo "=== Available targets ===" \t@echo "Available targets:"
\t@echo "" \t@echo ""
\t@echo " * all or build (default): builds all architectures and creates the liblinphone SDK." \t@echo " * all or build: builds all architectures and creates the liblinphone SDK"
\t@echo " * dev: rebuilds liblinphone for all architectures. You must invoke 'sdk' target after this." \t@echo " * sdk: creates the liblinphone SDK. Use this only after a full build"
\t@echo " * sdk: creates the liblinphone SDK. Use this only after a full build."
\t@echo " * zipsdk: generates a ZIP archive of liblinphone-sdk/apple-darwin containing the SDK. Use this only after SDK is built." \t@echo " * zipsdk: generates a ZIP archive of liblinphone-sdk/apple-darwin containing the SDK. Use this only after SDK is built."
\t@echo " * zipres: creates a tar.gz file with all the resources (images)." \t@echo " * zipres: creates a tar.gz file with all the resources (images)"
\t@echo "" \t@echo ""
\t@echo "=== Advanced usage ===" \t@echo "=== Advanced usage ==="
\t@echo "" \t@echo ""
\t@echo " * [{arch_opts}]-build: rebuilds everything for a single architecture. You must invoke 'sdk' target after this." \t@echo " * build-[package]: builds the package for all architectures"
\t@echo " * [{arch_opts}]-dev: rebuilds liblinphone for a single architecture. You must invoke 'sdk' target after this." \t@echo " * clean-[package]: cleans package compilation for all architectures"
\t@echo " * veryclean-[package]: cleans the package for all architectures"
\t@echo ""
\t@echo " * [{arch_opts}]-build-[package]: builds a package for the selected architecture"
\t@echo " * [{arch_opts}]-clean-[package]: cleans package compilation for the selected architecture"
\t@echo " * [{arch_opts}]-veryclean-[package]: cleans the package for the selected architecture"
\t@echo "" \t@echo ""
""".format(archs=' '.join(platforms), arch_opts='|'.join(platforms), """.format(archs=' '.join(platforms), arch_opts='|'.join(platforms),
first_arch=platforms[0], options=' '.join(sys.argv), first_arch=platforms[0], options=' '.join(sys.argv),
arch_targets=arch_targets, arch_targets=arch_targets, packages=' '.join(packages),
multiarch=multiarch, generator=generator) multiarch=multiarch, generator=generator)
f = open('Makefile', 'w') f = open('Makefile', 'w')
f.write(makefile) f.write(makefile)

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

@ -1 +1 @@
Subproject commit 58a2a71ee6d4bc5f0a4f77958375a832b18253ed Subproject commit e5ddd892561b0c5df25b7036bd9229fe6a6ea81a

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

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

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

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

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

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

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