There are two separate projects provided in the XPMP2 repository:
XPMP2-Sample/libso that is thereafter accessible by the stand-alone XPMP2-Sample project;
XPMP2-Sample.xplbinary, same as with the following stand-alone project.
Using either project works similarly when it comes to building.
For the main XPMP2 projects start in the XPMP2 root folder.
For the XPMP2-Sample stand-alone project start in the
Then, there are two options to build from sources:
|IDE||Visual Studio 2019||XCode 12||-|
|Docker||Mingw64||clang, SDK 11.1||Focal and Bionic|
XPMP2-Samplefolder to only build the sample plugin (“File > Open > Folder”, see here for VS’s “Open Folder” functionality)
Results are in
XPMP2.lib library is also copied into
XPMP2-Sample/lib to be available in a subsequent build
of the sample plugin.
My development environment is Mac OS, so expect the XCode environment to be
maintained best. Open
XPMP2-Sample/XPMP2-Sample.xcodeproj in XCode.
In the XCode Build Settings you may want to change the definition
of the User-Defined build macro
XPLANE11_ROOT: Put in the path to your
X-Plane 11 installation’s root path, then the XPMP2 binaries will be
installed right there in the appropriate
A docker environment based on Ubuntu 20.04 and 18.04 is provided, which can build all 3 platforms, Linux even in two flavors.
cdto the project’s
dockerfolder, and enter
makefor all XPMP2 library targets on all platforms, or
XPMP2-Sample/docker, and enter
makefor the sample plugin only on all platforms.
make targets are available:
linbuilds Linux on Ubuntu 20.04
lin-bionicbuilds Linux on Ubuntu 18.04
macbuilds MacOS using
clangas cross compiler
winbuilds Windows using a Mingw64 cross compiler setup
bash_focalstarts a bash prompt in the Ubuntu 20.04 docker container
bash_bionicstarts a bash prompt in the Ubuntu 18.04 docker container
Find results in the respective
build-<platform> folder, the
XPMP2 library right there,
the Sample and Remote plugins in their proper
The resulting library/framework are also copied into
XPMP2-Sample/lib/<platform> so it is accessible if building the Sample plugin from the Sample project only.
For more details and background information on the provided Docker environments