Building Python bindings for ADLX
This guide outlines the steps to build a Python binding wrapper for ADLX, a prerequisite to programming with ADLX in a Python application.
Prerequisite(s)
-
ADLX SDK is installed.
-
Visual Studio 2019 is installed.
-
Python 3.9 is installed.
-
pybind11 is installed.
-
The path to the Python 3.9 installation is added to the PYHOME system environment variable.
To build ADLX bindings in Python
-
Create a folder for your Python ADLX binding wrapper, for example
ADLXPybind
. -
Create a new file in the
ADLXPybind
folder and title itbind.cpp
. -
Edit
bind.cpp
and bind the interfaces you wish to wrap usingpybind11
. To create bindings for event notifications, inherit the respective listener interface.For example, inherit IADLXDisplayListChangedListener .
Note: Refer to the Python samples bind.cpp file for an example of a Python binding.
-
Create a C++ Dynamic Link Library project named
ADLXPybind
and configure the project as follows:-
Key
Value
Observations
Advanced > Target File Extension
.pyd
Use .pyd as the extension
VC++ Directories > Include Directories
$(PYHOME)/include , $(PYHOME)/Lib/site-packages/pybind11/include,
Add Path of python include and path of pybind11 include
VC++ Directories > Library Directories
$(PYHOME)/libs
Add path of python libs
C/C++ > Precompiled Header
Not Using Precompiled Headers
Do not use precompiled headers
Linker > Inpit
python39.lib
Add python lib
-
-
Add the
bind.cpp
file to the project -
Add the following files to the project:
-
SDK/Platform/Windows/WinAPIs.cpp
-
SDK/ADLXHelper/Windows/Cpp/ADLXHelper.h
-
SDK/ADLXHelper/Windows/Cpp/ADLXHelper.cpp
-
-
Build the project.
Result: The
ADLXPybind.pyd
is built in the"$(SolutionDir)$(Platform)$/(Configuration)/"
folder.