Maya MatchMove Solver can be built on Microsoft Windows. We have provided a Windows Batch build script and CMake script which are configurable and readable.
To use the pre-made build scripts, you can use the following commands to build the entire project and dependencies:
On Windows:
> CD <project root>
> scripts\build_mmSolver_windows64_mayaXXXX.batNote: Replace XXXX, with the Maya version to build for.
The sections below explain the process in more detail.
All commands in this install guide are assumed to be run inside a Windows Command Prompt, with Visual Studio environment variables set.
For example, from the Start Menu on Microsoft Windows 10, go to
Programs (list) > Microsoft Visual Studio 2012 > VS2012 x64 Cross Tools Command Prompt.
This will open a Command Prompt for you to type commands below.
It is important you use the x64 Command Prompt, not
Developer, x86 or ARM.
mmSolver has a few dependencies, and are listed in BUILD.md.
The third-party dependencies are downloaded and built for
mmSolver automatically using the standard build script
<project root>/scripts/build_mmSolver_windows64_mayaXXXX.bat
(see below).
Using the CMake configuration, you can override the third-party
dependencies Git repositories URLs as needed - use cmake-gui to see
and configure the CMake variables.
Run these commands, on Windows:
> CD <project root>
> scripts\build_mmSolver_windows64_mayaXXXX.bat
# Run tests (optional, but encouraged)
> CD <project root>
> "C:\Program Files\Autodesk\MayaVERSION\bin\mayapy.exe" tests\runTests.py > tests.logNote: Replace XXXX, with the Maya version to build for.
Following the steps above you will have the Maya plug-in compiled, and
installed into your %USERPROFILE%\maya\MAYA_VERSION\modules directory.
If you use the build script, you can automatically run the test suite
after compiling and installing. Make sure to turn on the variable
RUN_TESTS in the .bash or .bat scripts.
After all parts of the mmSolver are installed and can be found by
Maya, try running the test suite to confirm everything is working as
expected.
On Windows:
> CD <project root>
> "C:\Program Files\Autodesk\MayaVERSION\bin\mayapy.exe" tests\runTests.py > tests.logMake sure you use the same Maya version 'mayapy' for testing as you have build for.
Note: On Windows, 'cmd.exe' is very slow printing text to the console, therefore redirecting to a log file ('> file.log' below) will improve performance of the test suite greatly.
For more information about testing, see the Testing section in DEVELOPER.md.
If you wish to build a (.zip) package for users to download, there are a number of steps to ensure are run correctly in specific environments. The commands below are one-liner commands to set up everything from scratch and build, then package.
The directories below are hard-coded for the author's computer, you may need to change the paths for your environment.
Run in the Git Bash terminal for Windows:
# Maya 2016
$ mkdir -p ~/dev/mayaMatchMoveSolver_maya2016Deploy_windows64 ; cd ~/dev/ ; git clone git@github.com:david-cattermole/mayaMatchMoveSolver.git mayaMatchMoveSolver_maya2016Deploy_windows64
$ cd ~/dev/mayaMatchMoveSolver_maya2016Deploy_windows64/; git fetch --all; git checkout -f develop; git reset --hard HEAD ; git pull; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ;
# Maya 2017
$ mkdir -p ~/dev/mayaMatchMoveSolver_maya2017Deploy_windows64 ; cd ~/dev/ ; git clone git@github.com:david-cattermole/mayaMatchMoveSolver.git mayaMatchMoveSolver_maya2017Deploy_windows64
$ cd ~/dev/mayaMatchMoveSolver_maya2017Deploy_windows64/; git fetch --all; git checkout -f develop; git reset --hard HEAD ; git pull; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ;
# Maya 2018
$ mkdir -p ~/dev/mayaMatchMoveSolver_maya2018Deploy_windows64 ; cd ~/dev/ ; git clone git@github.com:david-cattermole/mayaMatchMoveSolver.git mayaMatchMoveSolver_maya2018Deploy_windows64
$ cd ~/dev/mayaMatchMoveSolver_maya2018Deploy_windows64/; git fetch --all; git checkout -f develop; git reset --hard HEAD ; git pull; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ;
# Maya 2019
$ mkdir -p ~/dev/mayaMatchMoveSolver_maya2019Deploy_windows64 ; cd ~/dev/ ; git clone git@github.com:david-cattermole/mayaMatchMoveSolver.git mayaMatchMoveSolver_maya2019Deploy_windows64
$ cd ~/dev/mayaMatchMoveSolver_maya2019Deploy_windows64/; git fetch --all; git checkout -f develop; git reset --hard HEAD ; git pull ; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ;
# Maya 2020
$ mkdir -p ~/dev/mayaMatchMoveSolver_maya2020Deploy_windows64 ; cd ~/dev/ ; git clone git@github.com:david-cattermole/mayaMatchMoveSolver.git mayaMatchMoveSolver_maya2020Deploy_windows64
$ cd ~/dev/mayaMatchMoveSolver_maya2020Deploy_windows64/; git fetch --all; git checkout -f develop; git reset --hard HEAD ; git pull ; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ;
# Maya 2022
$ mkdir -p ~/dev/mayaMatchMoveSolver_maya2022Deploy_windows64 ; cd ~/dev/ ; git clone git@github.com:david-cattermole/mayaMatchMoveSolver.git mayaMatchMoveSolver_maya2022Deploy_windows64
$ cd ~/dev/mayaMatchMoveSolver_maya2022Deploy_windows64/; git fetch --all; git checkout -f develop; git reset --hard HEAD ; git pull ; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ;
# Maya 2023
$ mkdir -p ~/dev/mayaMatchMoveSolver_maya2023Deploy_windows64 ; cd ~/dev/ ; git clone git@github.com:david-cattermole/mayaMatchMoveSolver.git mayaMatchMoveSolver_maya2023Deploy_windows64
$ cd ~/dev/mayaMatchMoveSolver_maya2023Deploy_windows64/; git fetch --all; git checkout -f develop; git reset --hard HEAD ; git pull ; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ;
# Maya 2024
$ mkdir -p ~/dev/mayaMatchMoveSolver_maya2024Deploy_windows64 ; cd ~/dev/ ; git clone git@github.com:david-cattermole/mayaMatchMoveSolver.git mayaMatchMoveSolver_maya2024Deploy_windows64
$ cd ~/dev/mayaMatchMoveSolver_maya2024Deploy_windows64/; git fetch --all; git checkout -f develop; git reset --hard HEAD ; git pull ; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ;
Run in the Windows Command Prompt:
REM Maya 2016 - Visual Studio 2012
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2016Deploy_windows64 && scripts\build_mmSolver_windows64_maya2016.bat
REM Maya 2017 - Visual Studio 2012
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2017Deploy_windows64 && scripts\build_mmSolver_windows64_maya2017.bat
REM Maya 2018 - Visual Studio 2015:
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2018Deploy_windows64 && scripts\build_mmSolver_windows64_maya2018.bat
REM Maya 2019 - Visual Studio 2015:
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2019Deploy_windows64 && scripts\build_mmSolver_windows64_maya2019.bat
REM Maya 2020 - Visual Studio 2017:
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2020Deploy_windows64 && scripts\build_mmSolver_windows64_maya2020.bat
REM Maya 2022 - Visual Studio 2019:
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2022Deploy_windows64 && scripts\build_mmSolver_windows64_maya2022.bat
REM Maya 2023 - Visual Studio 2019:
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2023Deploy_windows64 && scripts\build_mmSolver_windows64_maya2023.bat
REM Maya 2024 - Visual Studio 2022:
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2024Deploy_windows64 && scripts\build_mmSolver_windows64_maya2024.batNOTE: Starting in mmSolver v0.4.0, the Visual Studio compiler version required for each Maya version will be automatically invoked. The path for Visual Studio is assumed to be the default installation path, if you use a different install path for Visual Studio, you may need to edit the (.bat) build script.
Package files can then be uploaded from the "%userprofile%\dev\mayaMatchMoveSolver_maya*Deploy_windows64\packages" folder.