Skip to content

Commit a047b63

Browse files
Merge branch 'build_issue156' into develop_v0.3.x
2 parents 3cda8e7 + 5fa2ba7 commit a047b63

58 files changed

Lines changed: 2154 additions & 217 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

BUILD.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ Required:
2525
- [Autodesk Maya 2016+](https://www.autodesk.com.au/products/maya/overview)
2626
- [CMinpack 1.3.6](https://github.com/devernay/cminpack/releases/tag/v1.3.6)
2727
- [Python 2.7.x or 3.x](https://www.python.org/) (for build scripts)
28-
- [Qt.py 1.1.0](https://github.com/mottosso/Qt.py/releases/tag/1.1.0) (for GUI support)
2928
- [Sphinx 1.8.3+](http://www.sphinx-doc.org/en/master/index.html) (for building documentation)
3029

3130
Optional Solver:
@@ -37,6 +36,10 @@ Optional Solver:
3736
- Note: The automatic build script for _levmar_ requires
3837
[CMake 3.4.3+](https://cmake.org/) with levmar on Windows.
3938

39+
Note: Until mmSolver v0.3.13 [Qt.py 1.1.0](https://github.com/mottosso/Qt.py/releases/tag/1.1.0)
40+
was required for GUI support, but this is now embedded inside mmSolver
41+
directly, so there is no need install it manually.
42+
4043
# Building Overview
4144

4245
An overview of compiling is:
@@ -56,9 +59,6 @@ $ cd <project root>
5659
# Download and Build CMinpack automatically.
5760
$ bash scripts/build_cminpack.bash
5861
59-
# Download Qt.py automatically.
60-
$ bash scripts/build_qtpy.bash
61-
6262
# Build mmSolver, compile UI files, compile Maya plug-in, build
6363
# documentation, create module and install to home directory.
6464
$ bash scripts/build_mmSolver_linux_mayaXXXX.bash
@@ -80,9 +80,6 @@ On Windows:
8080
# Download and Build CMinpack automatically.
8181
> scripts/build_cminpack.bat
8282
83-
# Download Qt.py automatically.
84-
> scripts/build_qtpy.bat
85-
8683
:: Build mmSolver, compile UI files, compile Maya plug-in, build
8784
:: documentation, create module and install to home directory.
8885
> scripts/build_mmSolver_windows64_mayaXXXX.bat

BUILD_LINUX.md

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,14 @@ Python 2.7.5
5454

5555
# Building Dependencies
5656

57-
`cminpack`, `levmar` and `Qt.py` can be easily downloaded and built
57+
`cminpack`, and `levmar` can be easily downloaded and built
5858
for mmSolver using build scripts provided in the `<project
5959
root>/scripts` directory.
6060

6161
On Linux:
6262
```commandline
6363
$ cd <project root>
6464
$ bash scripts/build_cminpack.bash
65-
$ bash scripts/build_qtpy.bash
6665
$ bash scripts/build_levmar.bash
6766
```
6867

@@ -71,15 +70,10 @@ directories under `<project root>/external/install`.
7170

7271
- cminpack
7372
- levmar
74-
- qtpy
7573

7674
These dependencies will automatically be found by the mmSolver build
7775
script and installed.
7876

79-
If you do not want to install `Qt.py` into mmSolver, simply do not use
80-
the build script and delete the directory `<project
81-
root>/external/install/qtpy`.
82-
8377
# Build mmSolver
8478

8579
After installing CMinpack, you can now build mmSolver.
@@ -310,27 +304,27 @@ Run in the Linux Bash terminal:
310304
# Maya 2016
311305
$ load_maya2016.sh # Example script to set up Maya environment
312306
$ mkdir -p /media/dev/mayaMatchMoveSolver_maya2016Deploy_linux ; cd /media/dev/ ; git clone git@github.com:david-cattermole/mayaMatchMoveSolver.git mayaMatchMoveSolver_maya2016Deploy_linux
313-
$ cd /media/dev/mayaMatchMoveSolver_maya2016Deploy_linux ; git fetch --all; git checkout -f master; git pull ; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ; bash scripts/build_cminpack.bash ; bash scripts/build_qtpy.bash ; bash scripts/build_mmSolver_linux_maya2016.bash
307+
$ cd /media/dev/mayaMatchMoveSolver_maya2016Deploy_linux ; git fetch --all; git checkout -f master; git pull ; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ; bash scripts/build_cminpack.bash ; bash scripts/build_mmSolver_linux_maya2016.bash
314308
315309
# Maya 2017
316310
$ load_maya2017.sh # Example script to set up Maya environment
317311
$ mkdir -p /media/dev/mayaMatchMoveSolver_maya2017Deploy_linux ; cd /media/dev/ ; git clone git@github.com:david-cattermole/mayaMatchMoveSolver.git mayaMatchMoveSolver_maya2017Deploy_linux
318-
$ cd /media/dev/mayaMatchMoveSolver_maya2017Deploy_linux ; git fetch --all; git checkout -f master; git pull ; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ; bash scripts/build_cminpack.bash ; bash scripts/build_qtpy.bash ; bash scripts/build_mmSolver_linux_maya2017.bash
312+
$ cd /media/dev/mayaMatchMoveSolver_maya2017Deploy_linux ; git fetch --all; git checkout -f master; git pull ; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ; bash scripts/build_cminpack.bash ; bash scripts/build_mmSolver_linux_maya2017.bash
319313
320314
# Maya 2018
321315
$ load_maya2018.sh # Example script to set up Maya environment
322316
$ mkdir -p /media/dev/mayaMatchMoveSolver_maya2018Deploy_linux ; cd /media/dev/ ; git clone git@github.com:david-cattermole/mayaMatchMoveSolver.git mayaMatchMoveSolver_maya2018Deploy_linux
323-
$ cd /media/dev/mayaMatchMoveSolver_maya2018Deploy_linux ; git fetch --all; git checkout -f master; git pull ; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ; bash scripts/build_cminpack.bash ; bash scripts/build_qtpy.bash ; bash scripts/build_mmSolver_linux_maya2018.bash
317+
$ cd /media/dev/mayaMatchMoveSolver_maya2018Deploy_linux ; git fetch --all; git checkout -f master; git pull ; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ; bash scripts/build_cminpack.bash ; bash scripts/build_mmSolver_linux_maya2018.bash
324318
325319
# Maya 2019
326320
$ load_maya2019.sh # Example script to set up Maya environment
327321
$ mkdir -p /media/dev/mayaMatchMoveSolver_maya2019Deploy_linux ; cd /media/dev/ ; git clone git@github.com:david-cattermole/mayaMatchMoveSolver.git mayaMatchMoveSolver_maya2019Deploy_linux
328-
$ cd /media/dev/mayaMatchMoveSolver_maya2019Deploy_linux ; git fetch --all; git checkout -f master; git pull; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ; bash scripts/build_cminpack.bash ; bash scripts/build_qtpy.bash ; bash scripts/build_mmSolver_linux_maya2019.bash
322+
$ cd /media/dev/mayaMatchMoveSolver_maya2019Deploy_linux ; git fetch --all; git checkout -f master; git pull; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ; bash scripts/build_cminpack.bash ; bash scripts/build_mmSolver_linux_maya2019.bash
329323
330324
# Maya 2020
331325
$ load_maya2020.sh # Example script to set up Maya environment
332326
$ mkdir -p /media/dev/mayaMatchMoveSolver_maya2020Deploy_linux ; cd /media/dev/ ; git clone git@github.com:david-cattermole/mayaMatchMoveSolver.git mayaMatchMoveSolver_maya2020Deploy_linux
333-
$ cd /media/dev/mayaMatchMoveSolver_maya2020Deploy_linux ; git fetch --all; git checkout -f master; git pull; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ; bash scripts/build_cminpack.bash ; bash scripts/build_qtpy.bash ; bash scripts/build_mmSolver_linux_maya2020.bash
327+
$ cd /media/dev/mayaMatchMoveSolver_maya2020Deploy_linux ; git fetch --all; git checkout -f master; git pull; rm -R --force build_* ; rm -R --force external/install/* ; rm -R --force external/working/*/ ; bash scripts/build_cminpack.bash ; bash scripts/build_mmSolver_linux_maya2020.bash
334328
```
335329

336330
Package files can then be uploaded from the

BUILD_WINDOWS.md

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,14 @@ It is *important* you use the `x64` Command Prompt, *not*
3535
mmSolver has a few dependencies, and are listed in
3636
[BUILD.md](https://github.com/david-cattermole/mayaMatchMoveSolver/blob/master/BUILD.md#dependencies).
3737

38-
`cminpack`, `levmar` and `Qt.py` can be easily downloaded and built
38+
`cminpack`, and `levmar` can be easily downloaded and built
3939
for mmSolver using build scripts provided in the `<project
4040
root>\scripts` directory.
4141

4242
On Windows:
4343
```cmd
4444
> CD <project root>
4545
> scripts\build_cminpack.bat
46-
> scripts\build_qtpy.bat
4746
> scripts\build_levmar.bat
4847
```
4948

@@ -52,15 +51,10 @@ directories under `<project root>\external\install`.
5251

5352
- cminpack
5453
- levmar
55-
- qtpy
5654

5755
These dependencies will automatically be found by the mmSolver build
5856
script and installed.
5957

60-
If you do not want to install `Qt.py` into mmSolver, simply do not use
61-
the build script and delete the directory `<project
62-
root>\external\install\qtpy`.
63-
6458
# Build mmSolver
6559

6660
After installing CMinpack, you can now build mmSolver.
@@ -317,19 +311,19 @@ Run in the Windows Command Prompt with the needed MSVC compiler environment path
317311
(For example run "VS2012 x64 Cross Tools Command Prompt" or "VS2015 x86 x64 Cross Tools Command Prompt")
318312
```cmd
319313
REM Maya 2016
320-
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2016Deploy_windows64 && scripts\build_cminpack.bat && scripts\build_qtpy.bat && scripts\build_mmSolver_windows64_maya2016.bat
314+
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2016Deploy_windows64 && scripts\build_cminpack.bat && scripts\build_mmSolver_windows64_maya2016.bat
321315
322316
REM Maya 2017
323-
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2017Deploy_windows64 && scripts\build_cminpack.bat && scripts\build_qtpy.bat && scripts\build_mmSolver_windows64_maya2017.bat
317+
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2017Deploy_windows64 && scripts\build_cminpack.bat && scripts\build_mmSolver_windows64_maya2017.bat
324318
325319
REM Maya 2018
326-
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2018Deploy_windows64 && scripts\build_cminpack.bat && scripts\build_qtpy.bat && scripts\build_mmSolver_windows64_maya2018.bat
320+
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2018Deploy_windows64 && scripts\build_cminpack.bat && scripts\build_mmSolver_windows64_maya2018.bat
327321
328322
REM Maya 2019
329-
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2019Deploy_windows64 && scripts\build_cminpack.bat && scripts\build_qtpy.bat && scripts\build_mmSolver_windows64_maya2019.bat
323+
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2019Deploy_windows64 && scripts\build_cminpack.bat && scripts\build_mmSolver_windows64_maya2019.bat
330324
331325
REM Maya 2020
332-
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2020Deploy_windows64 && scripts\build_cminpack.bat && scripts\build_qtpy.bat && scripts\build_mmSolver_windows64_maya2020.bat
326+
> cd %userprofile%\dev\mayaMatchMoveSolver_maya2020Deploy_windows64 && scripts\build_cminpack.bat && scripts\build_mmSolver_windows64_maya2020.bat
333327
```
334328

335329
Package files can then be uploaded from the

INSTALL.md

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -18,30 +18,11 @@ For a simple installation, **do not** install from the
1818
`Source code (zip)` or `Source code (tar.gz)` archives. These archives
1919
are for developers only.
2020

21-
# Install Qt.py (in a Home Environment)
21+
# Install Qt.py
2222

23-
*Maya MatchMove Solver* uses the very popular
24-
[Qt.py](https://github.com/mottosso/Qt.py) project for it's
25-
[Qt Framework](https://www.qt.io/) user interfaces.
26-
Starting with mmSolver v0.2.0, `Qt.py` is installed with mmSolver, and
27-
users do not need to install `Qt.py`.
28-
29-
# Install Qt.py (in a Professional Environment)
30-
31-
Starting with mmSolver v0.2.0, `Qt.py` is installed with mmSolver
32-
pre-build packages on GitHub.
33-
If `Qt.py` is already installed in your professional environment
34-
(studio pipeline), you will not need to install it again.
35-
36-
To remove `Qt.py` from the installation delete the folder named
37-
`python_qt` in the module directory.
38-
39-
***Warning:*** If you are installing *Maya MatchMove Solver* in a studio
40-
production environment, *Qt.py* may already be installed. Installing a
41-
custom version of *Qt.py* in to your home directory may override your
42-
pipeline provided file and may cause unexpected problems. It is
43-
recommended to check with your studio's Pipeline team **before**
44-
installing any custom software.
23+
In *Maya MatchMove Solver* v0.3.14 and above the
24+
[Qt.py](https://github.com/mottosso/Qt.py) project is now included
25+
inside mmSolver, there is no need to install it at all.
4526

4627
# Install Maya Module
4728

@@ -83,10 +64,6 @@ automatically at start-up. You will see a message in the Script
8364
Editor `# root : MM Solver Startup... #`, and a new shelf will
8465
automatically be created for you named *mmSolver*.
8566

86-
***Note:*** Please remove the `<module root>/python_qt` directory, if
87-
`Qt.py` is already installed, see the above note
88-
*Install Qt.py (in a Professional Environment)*.
89-
9067
# Project Configuration
9168

9269
By default, the tool should work without trouble, but some individuals

docs/source/conf.py.in

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ except ImportError:
2525

2626
# Mocking...
2727
autodoc_mock_imports = [
28-
'Qt',
29-
'Qt.QtCore',
30-
'Qt.QtGui',
31-
'Qt.QtWidgets',
32-
'Qt.QtCompat',
28+
'mmSolver.ui.Qt',
29+
'mmSolver.ui.Qt.QtCore',
30+
'mmSolver.ui.Qt.QtGui',
31+
'mmSolver.ui.Qt.QtWidgets',
32+
'mmSolver.ui.Qt.QtCompat',
3333
'PySide',
3434
'PySide2',
3535
'shiboken',

docs/source/licenses.rst

Lines changed: 73 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ is distributed with mmSolver. ::
455455

456456
The MIT License (MIT)
457457

458-
Copyright (c) 2016 Marcus Ottosson
458+
Copyright (c) 2016-2017 Marcus Ottosson
459459

460460
Permission is hereby granted, free of charge, to any person obtaining a copy
461461
of this software and associated documentation files (the "Software"), to deal
@@ -464,8 +464,8 @@ is distributed with mmSolver. ::
464464
copies of the Software, and to permit persons to whom the Software is
465465
furnished to do so, subject to the following conditions:
466466

467-
The above copyright notice and this permission notice shall be included in all
468-
copies or substantial portions of the Software.
467+
The above copyright notice and this permission notice shall be included in
468+
all copies or substantial portions of the Software.
469469

470470
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
471471
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
@@ -475,6 +475,76 @@ is distributed with mmSolver. ::
475475
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
476476
SOFTWARE.
477477

478+
In PySide(2), loadUi does not exist, so we implement it
479+
480+
`_UiLoader` is adapted from the qtpy project, which was further influenced
481+
by qt-helpers which was released under a 3-clause BSD license which in turn
482+
is based on a solution at:
483+
484+
- https://gist.github.com/cpbotha/1b42a20c8f3eb9bb7cb8
485+
486+
The License for this code is as follows:
487+
488+
qt-helpers - a common front-end to various Qt modules
489+
490+
Copyright (c) 2015, Chris Beaumont and Thomas Robitaille
491+
492+
All rights reserved.
493+
494+
Redistribution and use in source and binary forms, with or without
495+
modification, are permitted provided that the following conditions are
496+
met:
497+
498+
* Redistributions of source code must retain the above copyright
499+
notice, this list of conditions and the following disclaimer.
500+
* Redistributions in binary form must reproduce the above copyright
501+
notice, this list of conditions and the following disclaimer in the
502+
documentation and/or other materials provided with the
503+
distribution.
504+
* Neither the name of the Glue project nor the names of its contributors
505+
may be used to endorse or promote products derived from this software
506+
without specific prior written permission.
507+
508+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
509+
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
510+
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
511+
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
512+
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
513+
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
514+
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
515+
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
516+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
517+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
518+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
519+
520+
Which itself was based on the solution at
521+
522+
https://gist.github.com/cpbotha/1b42a20c8f3eb9bb7cb8
523+
524+
which was released under the MIT license:
525+
526+
Copyright (c) 2011 Sebastian Wiesner <lunaryorn@gmail.com>
527+
Modifications by Charl Botha <cpbotha@vxlabs.com>
528+
529+
Permission is hereby granted, free of charge, to any person obtaining a
530+
copy of this software and associated documentation files
531+
(the "Software"),to deal in the Software without restriction,
532+
including without limitation
533+
the rights to use, copy, modify, merge, publish, distribute, sublicense,
534+
and/or sell copies of the Software, and to permit persons to whom the
535+
Software is furnished to do so, subject to the following conditions:
536+
537+
The above copyright notice and this permission notice shall be included
538+
in all copies or substantial portions of the Software.
539+
540+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
541+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
542+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
543+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
544+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
545+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
546+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
547+
478548
FindMaya (CMake)
479549
----------------
480550

external/CMakeLists.txt

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -63,19 +63,3 @@ add_custom_target(
6363
DEPENDS ${LEVMAR_EXTRACTED_FILE}
6464
COMMENT "Unpacking LevMar package..."
6565
)
66-
67-
68-
# Extract Qt.py
69-
set(PY_SCRIPT "${CMAKE_SOURCE_DIR}/../scripts/get_qtpy.py")
70-
add_custom_command(
71-
OUTPUT ${QTPY_EXTRACTED_FILE}
72-
COMMAND ${CMAKE_COMMAND} -E remove_directory ${QTPY_EXTRACTED_FILE}
73-
COMMAND python ${PY_SCRIPT} ${ARCHIVES_DIR} ${WORKING_DIR} ${PATCHES_DIR}
74-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
75-
DEPENDS ${QTPY_DOWNLOAD_FILE}
76-
)
77-
add_custom_target(
78-
qtpy_package ALL
79-
DEPENDS ${QTPY_EXTRACTED_FILE}
80-
COMMENT "Unpacking Qt.py package..."
81-
)

modules/mayaMatchMoveSolver_linux.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,4 @@ MMSOLVER_DEFAULT_SOLVER = @DEFAULT_SOLVER@
1313
MMSOLVER_DEBUG = 0
1414
MAYA_CUSTOM_TEMPLATE_PATH +:= scripts/AETemplates
1515
PYTHONPATH +:= python
16-
PYTHONPATH +:= python_qtpy
1716
[r] scripts: scripts

modules/mayaMatchMoveSolver_windows.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,4 @@ MMSOLVER_DEBUG = 0
1414
MAYA_CUSTOM_TEMPLATE_PATH +:= scripts/AETemplates
1515
PATH +:= lib
1616
PYTHONPATH +:= python
17-
PYTHONPATH +:= python_qtpy
1817
[r] scripts: scripts

python/mmSolver/tools/aboutwindow/ui/about_layout.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222
import mmSolver.ui.qtpyutils as qtpyutils
2323
qtpyutils.override_binding_order()
2424

25-
import Qt.QtCore as QtCore
26-
import Qt.QtGui as QtGui
27-
import Qt.QtWidgets as QtWidgets
25+
import mmSolver.ui.Qt.QtCore as QtCore
26+
import mmSolver.ui.Qt.QtGui as QtGui
27+
import mmSolver.ui.Qt.QtWidgets as QtWidgets
2828

2929
import mmSolver.logger
3030
import mmSolver.tools.aboutwindow.lib.message as lib_msg

0 commit comments

Comments
 (0)