diff options
Diffstat (limited to 'bindings/python/Android.mk')
-rw-r--r-- | bindings/python/Android.mk | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/bindings/python/Android.mk b/bindings/python/Android.mk new file mode 100644 index 0000000..2cfd13d --- /dev/null +++ b/bindings/python/Android.mk @@ -0,0 +1,81 @@ +# Copyright (c) 2015, Intel Corporation +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors +# may be used to endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +LOCAL_PATH := $(call my-dir) + +# Low-level python wrapper +include $(CLEAR_VARS) +# When importing a python module from a shared library, the name of the lib has +# to be exactly the same as the module name it contains. SWIG generates a +# python module called "PyPfw" that relies on the one that we are building as a +# shared library here, and that is named "_PyPfw" +# See https://docs.python.org/2/extending/extending.html#the-module-s-method-table-and-initialization-function +LOCAL_MODULE := _PyPfw + +LOCAL_CPP_EXTENSION := .cxx + +LOCAL_SHARED_LIBRARIES := libparameter_host +LOCAL_STATIC_LIBRARIES := libxmlserializer_host + +LOCAL_C_INCLUDES := \ + prebuilts/python/linux-x86/2.7.5/include/python2.7 \ + $(HOST_OUT_HEADERS)/parameter + +# The 'unused-but-set-variable' warning must be disabled because SWIG generates +# files that do not respect that constraint. +LOCAL_CFLAGS := -Wno-unused-but-set-variable -fexceptions + +# Undefined symbols will be resolved at runtime +LOCAL_ALLOW_UNDEFINED_SYMBOLS := true + +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_OWNER := intel + +LOCAL_MODULE_CLASS := SHARED_LIBRARIES +LOCAL_IS_HOST_MODULE := true + +generated-sources-dir := $(call local-generated-sources-dir) + +LOCAL_GENERATED_SOURCES := $(generated-sources-dir)/pfw_wrap.cxx $(generated-sources-dir)/pfw_wrap.h + +LOCAL_EXPORT_C_INCLUDE_DIRS := $(generated-sources-dir) + +$(generated-sources-dir)/pfw_wrap.h: $(generated-sources-dir)/pfw_wrap.cxx + +# The PyPfw.py file is generated in the directory given by -outdir switch, thus +# this directory must be put in the python path to be reachable +$(generated-sources-dir)/pfw_wrap.cxx: $(LOCAL_PATH)/pfw.i + @echo "Generating Python binding files" + mkdir -p $(dir $@) # surprisingly, path is not generated by build system + prebuilts/misc/linux-x86_64/swig/swig \ + -Iprebuilts/misc/common/swig/include/2.0.11/python/ \ + -Iprebuilts/misc/common/swig/include/2.0.11/ \ + -Wall -Werror -v -python -c++ -outdir $(HOST_LIBRARY_PATH)/ -o $@ $^ + +include $(BUILD_HOST_SHARED_LIBRARY) + |