This is a "Hello World" example plugin for use with X-Plane and can serve as a basis for your own plugin development. Its code is originally taken from X-Plane's developer site.
Added are an IDE project for XCode as well as a CMakeList.txt
setup
for use with MS Visual Studio, the provided Docker environment for cross platform build,
and GitHub Actions.
The project is based on
- X-Plane SDK to integrate with X-Plane
- Laminar's Hello World example
- GitHub Actions
- and countless blog entries with crucial tips&tricks of various developers and CD/CI engineers, which I unfortunately missed to keep track of.
- MacOS: Just open
HelloWorld.xcodeproj
in Xcode. - MS Visual Studio: Do "File > Open > Folder..." on the project's main folder.
VS will initialize based on
CMakeList.txt
andCMakeSettings.json
.
For Cross Compile in a Docker environment for Linux, Mac, and Windows see docker/README.md
.
Essentially this boils down to installing Docker Desktop, then:
cd docker
make
The GitHub workflow .github/workflows/build.yml
builds the plugin in GitHubs CD/CI environment.
build.yml
calls a number of custom composite actions available in .github/actions
,
each coming with its own README.md
.
The workflow builds Linux, MacOS, and Windows plugin binaries and provides them as artifacts, so you can download the result from the Actions tab on GitHub.
For MacOS, the plugin can be signed and notarized, provided that the required Repository Secrets are defined in the repository's settings (Settings > Secrets > Actions):
MACOS_CERTIFICATE
: Base64-encoded .p12 certificate as explained hereMACOS_CERT_PWD
: The password for the above .p12 certificate file exportNOTARIZATION_USERNAME
: Apple ID for notarization service (parameter--apple-id
tonotarytool
)NOTARIZATION_TEAM
: Team ID for notarization service (parameter--team-id
tonotarytool
)NOTARIZATION_PASSWORD
: App-specific password for notarization service (parameter--password
tonotarytool
)