VirtualBox

source: vbox/trunk/src/VBox/Main/glue/python/Config.kmk@ 103054

Last change on this file since 103054 was 103028, checked in by vboxsync, 11 months ago

Main/Python: Big revamp to modernize our vboxapi Python package to now use a so-called src-layout, which also can be used with pip directly. Also added compatibility w/ Python 3.12 where distutils are not shipped anymore. We also now do have automatic linting for our code, which hopefully should improve quality in this area. Moved some Python-related files into an own sub folder so that it's more clear to which these belong to. The "sdk/installer" directories also have an own "python" sub directory where the stuff resides now. The Windows installer also uses "sdk/installer" instead of "sdk/install", to match the other platforms. bugref:10579

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.4 KB
Line 
1# $Id: Config.kmk 103028 2024-01-24 15:53:59Z vboxsync $
2## @file
3# kBuild Configuration file for Main glue for Python.
4#
5
6#
7# Copyright (C) 2024 Oracle and/or its affiliates.
8#
9# This file is part of VirtualBox base platform packages, as
10# available from https://www.virtualbox.org.
11#
12# This program is free software; you can redistribute it and/or
13# modify it under the terms of the GNU General Public License
14# as published by the Free Software Foundation, in version 3 of the
15# License.
16#
17# This program is distributed in the hope that it will be useful, but
18# WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20# General Public License for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with this program; if not, see <https://www.gnu.org/licenses>.
24#
25# SPDX-License-Identifier: GPL-3.0-only
26#
27
28VBOX_MAIN_GLUE_PYTHON_CONFIG_KMK_INCLUDED = 1
29
30# Include the top-level configure file.
31ifndef VBOX_ROOT_CONFIG_KMK_INCLUDED
32 include $(PATH_ROOT)/Config.kmk
33endif
34
35#
36# Globals
37#
38VBOX_PATH_MAIN_GLUE_PYTHON_SRC := $(PATH_ROOT)/src/VBox/Main/glue/python
39
40#
41# List of python sources that should be linted.
42#
43VBOX_MAIN_GLUE_PYTHON_PYTHON_SOURCES :=
44VBOX_MAIN_GLUE_PYTHON_PYLINT_TARGETS :=
45
46ifdef VBOX_WITH_PYLINT
47 TESTING +=
48endif
49
50#
51# Process python sources.
52#
53VBOX_PYTHONPATH_MAIN_GLUE_PYTHON = $(PYTHONPATH):$(VBOX_PATH_MAIN_GLUE_PYTHON_SRC)
54BLDDIRS += $(PATH_TARGET)/pylint
55
56define def_vbox_main_glue_python_py_check
57 $(eval name:=$(basename $(notdir $(py))))
58
59 pylint: $(name)-py-phony.o
60 $(name).o: $(name)-py-phony.o
61 $(PATH_TARGET)/pylint/$(name).o $(name)-py-phony.o:: $(py) | $(PATH_TARGET)/pylint/
62 ifdef VBOX_WITH_PYLINT
63 $(QUIET2)$(call MSG_L1,Subjecting $(py) to pylint...)
64 $(QUIET)$(REDIRECT) -C "$(dir $(py))" -E LC_ALL=C -E PYTHONPATH="$(VBOX_PYTHONPATH_MAIN_GLUE_PYTHON)" -- \
65 $(VBOX_PYLINT) --rcfile=$(VBOX_PATH_MAIN_GLUE_PYTHON_SRC)/pylintrc $$(VBOX_PYLINT_FLAGS) $$($(py)_VBOX_PYLINT_FLAGS) ./$(notdir $(py))
66 endif
67 $(QUIET)$(APPEND) -t "$(PATH_TARGET)/pylint/$(name).o"
68 TESTING += $(name)-py-phony.o
69 VBOX_MAIN_GLUE_PYTHON_PYLINT_TARGETS += $(PATH_TARGET)/pylint/$(name).o
70endef # def_vbox_main_glue_python_py_check
71
72
73define def_vbox_main_glue_python_process_python_sources
74 if $(words $(_SUB_MAKEFILE_STACK)) <= 0 || "$1" == "FORCE"
75 $(foreach py, $(VBOX_MAIN_GLUE_PYTHON_PYTHON_SOURCES), $(eval $(def_vbox_main_glue_python_py_check)))
76 endif
77endef
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette