A basic python3 external built using the Max min-api
To build externals, you will need some form of compiler support on your system.
- On the Mac this means Xcode 10 or higher (you can get from the App Store for free).
- On Windows this means Visual Studio 2017 or 2019 (you can download a free version from Microsoft). The installer for Visual Studio 2017 offers an option to install Git, which you should choose to do.
You will also need to install a recent version of CMake (version 3.19 or higher).
./build.sh
Run cmake -G Xcode ..
Next run cmake --build .
or open the Xcode project from this "build" folder and use the GUI.
Note: you can add the -j4
option where "4" is the number of cores to use. This can help to speed up your builds, though sometimes the error output is interleaved in such a way as to make troubleshooting more difficult.
You can run cmake --help
to get a list of the options available. Assuming some version of Visual Studio 2019, the commands to generate the projects will look like this:
cmake -G "Visual Studio 16 2019" ..
Or using Visual Studio 2017 it will look like this:
cmake -G "Visual Studio 15 2017 Win64" ..
Having generated the projects, you can now build by opening the .sln file in the build folder with the Visual Studio app (just double-click the .sln file) or you can build on the command line like this:
cmake --build . --config Release
On the command line you can run all unit tests using Cmake:
- on debug builds:
ctest -C Debug .
- on release builds:
ctest -C Release .
Or you can run an individual test, which is simply a command line program:
cd ..
cd tests
- mac example:
./test_dcblocker_tilde -s
- win example:
test_dcblocker_tilde.exe -s
Or you can run them with your IDE's debugger by selecting the "RUN_TESTS" target.
Continuous Integration (CI) is a process by which each code check-in is verified by an automated build and automated tests to allow developers to detect problems early and distribute software easily.
The min-pymx project applies CI using Github Actions.
- Min Documentation Hub For guides, references, and resources
- Min Wiki For additional topics, advanced configuration, and user submissions