Skip to content

Commit 2b799c5

Browse files
authored
Update documentation (#84)
<!-- Thanks for your contribution! Please read this comment in its entirety. It's quite important. When a contributor merges the pull request, the title and the description will be used to build the merge commit! ### Pull Request TITLE It should be in the following format: [ 12345: Summary of the changes made ] Where 12345 is the corresponding Github Issue OR [ Summary of the changes made ] If it's solving something trivial, like fixing a typo. --> ### Linked issues <!-- Link the Issue(s) this Pull Request is related to. Each PR should link to at least one issue, in the form: Use one line for each Issue. This allows auto-closing the related issue when the fix is merged. Fixes #12345 Fixes #54345 --> [Build size because missing release variant in the docs]( #62) [Missing --prefix to the install step](#65) [Missing --recursive flag while cloning](#63) ### Summarize your change. - Refresh the documentation to have all the full build steps in the main README.md file with the common build aliases equivalent. - Moves doc into docs. ### Describe the reason for the change. - Blind spots in the OpenRV documentation cause multiple issues. - The documentation root folder should be named `docs,` as requested by the documentation team for the future ReadTheDocs integration. ### Describe what you have tested and on which operating system. - [ ] Windows aliases - [ ] MacOS aliases - [ ] Linux aliases - [ ] Documentation link changes ### Add a list of changes and note any that might need special attention during the review. I updated the common build alias files to use `main_executable` instead of a mix of `RV` and `rv`. This needs to be tested on all OSes. I moved the doc folder to the docs folder. I think changed all occurrences to `doc`, but it's to be double-checked. ### If possible, provide screenshots. Main Readme Render: https://github.com/geffrak/OpenRV/tree/docs#readme Windows setup doc Render: https://github.com/geffrak/OpenRV/blob/docs/docs/build_system/config_windows.md macOS setup doc Render: https://github.com/geffrak/OpenRV/blob/docs/docs/build_system/config_macos.md Linux setup doc Render: https://github.com/geffrak/OpenRV/blob/docs/docs/build_system/config_linux_centos7.md --------- Signed-off-by: Kerby Geffrard <kerby.geffrard@autodesk.com>
1 parent d309f73 commit 2b799c5

File tree

153 files changed

+157
-162
lines changed

Some content is hidden

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

153 files changed

+157
-162
lines changed

README.md

Lines changed: 129 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,86 +2,174 @@
22
Open RV is an image and sequence viewer for VFX and animation artists.
33
Open RV is high-performant, hardware accelerated, and pipeline-friendly.
44

5-
## Documentation
6-
[RV Documentation](doc/rv-manuals.md)
5+
[RV Documentation](docs/rv-manuals.md)
76

8-
## Build Instructions
7+
## Cloning the repository
98

10-
You can build Open RV for Linux, Windows, and macOS. You build it from scratch using the instructions specific to each OS:
9+
OpenRV uses submodules to pull some dependencies. When cloning the repository, make sure to do it recursively by using the following command:
1110

12-
* [Linux](doc/build_system/config_linux_centos7.md)
13-
* [Windows](doc/build_system/config_windows.md)
14-
* [macOS](doc/build_system/config_macos.md)
11+
```bash
12+
git clone --recursive https://github.com/AcademySoftwareFoundation/OpenRV.git
13+
```
14+
15+
If you cloned the repo without setting the `--recursive` flag, you can initialize the submodule in another step with the following command:
16+
17+
```bash
18+
git submodule update --init --recursive
19+
```
20+
21+
## Building the workstation
22+
23+
Open RV is currently supported on the following operating systems:
24+
25+
* [Windows 10 and 11](docs/build_system/config_windows.md)
26+
* [macOS Big Sur, Monterey and Ventura](docs/build_system/config_macos.md)
27+
* [Linux Centos 7](docs/build_system/config_linux_centos7.md)
28+
29+
Support for other operating systems is on a best effort basis.
1530

16-
### Building Tips
1731

18-
#### Build Aliases
32+
## Building RV
1933

2034
You can use `source rvmds.sh` to add common build aliases into your shell. After the first download following the installation of the required dependencies, use `rvbootstrap` to set up, configure, and build Open RV with the default options.
2135

22-
After the setup, you can use `rvmk` to build.
36+
After the setup, you can use `rvmk` (the common build alias) to configure and build Open RV. You can also use `rvmkd` to configure and build in Debug.
2337

24-
#### Compile in Parallel
38+
### Contributor setup
2539

26-
Start the compilation in parallel by adding `--parallel[=threadCound]` to the build command. This is the same as using `-j`.
40+
This repository uses a pre-commit to execute formatting before a commit. To install the pre-commit hooks:
2741

28-
#### 3rd Parties Outside Of Repository
42+
```shell
43+
pre-commit install
44+
```
2945

30-
If you desire to keep your third-party builds between build cleanups, set `-DRV_DEPS_BASE_DIR=/path/to/third/party`.
3146

32-
#### Expert Mode
3347

34-
You can always go to the build directory and call the generator directly.
48+
### Cleanup
3549

36-
## Running Open RV
50+
To clean your build directory and restart from a clean slate, use the `rvclean` common build alias, or delete the `_build` folder.
3751

38-
Once the build ends, you can execute (or debug!) Open RV from the cmake-build directory.
3952

40-
The path to the build is `cmake-build/stage/app`. The Open RV cmake options set up the environment so you can start the build without RPATH issues.
4153

42-
## Install
54+
### Bootstrap
4355

44-
The recommended method to install Open RV is to invoke the install build step tool using cmake.
56+
Before first your first Open RV build, you must install some python dependencies.
4557

46-
The build system allows you to prepackage Open RV using cmake's install command and a prefix.
58+
#### Common build alias
4759

48-
Then, it's up to you to either sign or package the result, or to do both. It should contain the minimum required to have a full Open RV.
60+
Use the `rvsetup` common build alias to run the bootstrap step.
4961

50-
```shell
51-
cmake --install cmake-build --prefix /Absolute/path/to/a/destination/folder
62+
#### Manually
63+
64+
```bash
65+
python3 -m pip install --user --upgrade -r requirements.txt
66+
```
67+
68+
69+
70+
### Configure
71+
72+
The project uses CMake and requires a `configure` step before building. It is during the configure step that you provide your Qt package.
73+
74+
From the root of the repository, execute `cmake` and specify the path to an arbitrary build folder and the path to your QT5 package.
75+
76+
#### Common build alias
77+
78+
Use the `rvcfg` (the common build alias) to run the configuration step. You can also use `rvcfgd` to configure in Debug.
79+
80+
#### Manually
81+
82+
##### Windows
83+
84+
On Windows, you must specify the path to Strawberry perl for the OpenSSL build.
85+
86+
```bash
87+
cmake -B _build -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=Release -DRV_DEPS_WIN_PERL_ROOT=/c/Strawberry/perl/bin -DRV_DEPS_QT5_LOCATION=/c/path/to/your/Qt/Root
5288
```
5389

54-
## Run Tests
90+
##### Linux and MacOS
91+
92+
```bash
93+
cmake -B _build -DCMAKE_BUILD_TYPE=Release -DRV_DEPS_QT5_LOCATION=/Path/To/Your/Qt5/Root
94+
```
95+
96+
#### Tips
97+
98+
##### 3rd Parties Outside Of Repository
99+
100+
To keep your third-party builds between build cleanups, set `-DRV_DEPS_BASE_DIR=/path/to/third/party`.
55101

56-
You invoke Open RV tests with the following command:
102+
103+
### Build
104+
105+
Invoke the previously specified generator tool using cmake to run the `build` step (recommended).
106+
107+
#### Common build alias
108+
109+
Use the `rvbuild` (the common build alias) to run the build step. You can also use `rvbuildd` to build in Debug.
110+
111+
#### Manually
112+
113+
```bash
114+
cmake --build _build --config Release -v --parallel=8 --target main_executable
115+
```
116+
117+
118+
119+
### Test
120+
121+
Invoke the tests using ctest.
122+
123+
#### Common build alias
124+
125+
Use the `rvtest` common build alias to start the tests.
126+
127+
#### Manually
57128

58129
```shell
59-
ctest --test-dir cmake-build --extra-verbose
130+
ctest --test-dir _build
60131
```
61132

62-
### Tests Tips
133+
#### Tips
63134

64-
#### Run The Tests In Parallel
135+
##### Run The Tests In Parallel
65136

66-
You can run the tests in parallel by specifying `--parallel X`, where X is the number of tests to run in parallel.
137+
You can run the `test` in parallel by specifying `--parallel X`, where X is the number of tests to run in parallel.
67138

68-
#### Run A Subset Of The Tests
139+
##### Run A Subset Of The Tests
69140

70141
You can apply a filter with the `-R` flag to specify a regex.
71142

72-
#### Run The Tests Verbose
143+
##### Run The Tests Verbose
73144

74-
You can run the tests with extra verbosity with the flag `--extra-verbose`.
145+
You can run the tests with extra verbosity with the flag `--extra-verbose`.
75146

76147
> **Important:** You cannot use `--extra-verbose` with `--parallel`. It's one or the other, not both.
77148
78-
## Contributing to Open RV
79149

80-
This repository uses pre-commit to have formatting executed before a commit. To install the hooks:
81150

82-
```shell
83-
pre-commit install
84-
```
151+
### Run
152+
153+
Once the build ends, you can execute (or debug!) Open RV from the _build directory.
154+
155+
The path to the build is `_build/stage/app`. It contains everything required to have the proper debug symbols.
156+
157+
158+
159+
### Install
85160

86-
> **Important:** When the hooks reformat a file, you need to re-add them to git to have your `git commit` command executed.
87-
> Also, you can skip the hook execution by using `git commit -n`.
161+
Invoke the `install` step using cmake. The install step prepares Open RV for packaging by building a copy of Open RV in the `_install` folder.
162+
163+
The build system allows you to prepackage Open RV using cmake's `install` command. It will strip debug symbols if required.
164+
165+
Then, it's up to you to either sign or package the result, or to do both. It should contain the minimum required to have a functional Open RV.
166+
167+
#### Common build alias
168+
169+
Use the `rvinst` common build alias to install OpenRV.
170+
171+
#### Manually
172+
173+
```shell
174+
cmake --install _build --prefix _install
175+
```

cmake/macros/rv_stage.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ MACRO(ADD_SHARED_LIBRARY_LIST new_entry)
1515
)
1616
ENDMACRO()
1717

18+
ADD_CUSTOM_TARGET(main_executable)
1819
ADD_CUSTOM_TARGET(executables)
1920
ADD_CUSTOM_TARGET(executables_with_plugins)
2021
ADD_CUSTOM_TARGET(shared_libraries)
@@ -614,6 +615,8 @@ FUNCTION(rv_stage)
614615
MESSAGE(FATAL_ERROR "\"${arg_TARGET}\" ${arg_TYPE} should be a EXECUTABLE, not a ${_native_target_type}")
615616
ENDIF()
616617

618+
ADD_DEPENDENCIES(main_executable ${arg_TARGET})
619+
617620
IF(RV_TARGET_DARWIN)
618621
SET_TARGET_PROPERTIES(
619622
${arg_TARGET}

doc/build_system/build_errors.md renamed to docs/build_system/build_errors.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ Call Stack (most recent call first):
9595

9696
The newer Ubuntu, Centos & Rocky system usually won't have `python` out of the box, they have a `python3` interpreter.
9797

98-
One solution is to instyall `pipenv` and start a local virtual environment. That will give you a `p[ython` command.
98+
One solution is to instyall `pipenv` and start a local virtual environment. That will give you a `python` command.
9999

100100
### (Linux) pyconfig.h: No such file or directory
101101

doc/build_system/config_linux_centos7.md renamed to docs/build_system/config_linux_centos7.md

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
1. [Install CMake](#install-cmake)
99
1. [Install nasm](#install-nasm)
1010
1. [Install Qt5](#install-qt)
11-
1. [Configure CMake](#configure)
12-
1. [Build Open RV](#build-including-incremental-builds)
1311

1412
## Install Basics
1513

@@ -83,30 +81,4 @@ sudo make install
8381

8482
Download the last version of Qt 5.15.x that you can get using the online installer on the [Qt page](https://www.qt.io/download-open-source). Logs, Android, iOS and WebAssembly are not required to build OpenRV.
8583

86-
WARNING: If you decide fetch Qt from another source, make sure to build it with SSL support and that it contains everything required to build PySide2 and that the file structure is similar to the official package.
87-
88-
## Configure
89-
90-
The project uses CMake and requires a configure step before building. It is during the configure step that you provide your Qt package.
91-
92-
From the root of the repository, execute `cmake` specifying the path to an arbitrary build folder and the path to your QT5 package.
93-
94-
For example:
95-
96-
```bash
97-
cmake -B cmake-build -DRV_DEPS_QT5_LOCATION=/Path/To/Your/Qt5/Rootr
98-
```
99-
100-
### Custom generator
101-
102-
You can decide to build with another generator. Ninja is known to work well with the build. If you desire to build with Ninja, you can set`-G Ninja`
103-
104-
## Build (including incremental builds)
105-
106-
Invoke the build tool using cmake (recommended).
107-
108-
For example:
109-
110-
```bash
111-
cmake --build cmake-build --target rv
112-
```
84+
WARNING: If you fetch Qt from another source, make sure to build it with SSL support, that it contains everything required to build PySide2, and that the file structure is similar to the official package.

doc/build_system/config_macos.md renamed to docs/build_system/config_macos.md

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
1. [Install tools and build dependencies](#install-tools-and-build-dependencies)
88
1. [Install the python requirements](#install-the-python-requirements)
99
1. [Install Qt](#install-qt)
10-
1. [Configure CMake](#configure)
11-
1. [Invoke CMake](#build-including-incremental-builds)
1210

1311
## Install XCode
1412

@@ -46,31 +44,6 @@ python3 -m pip install -r requirements.txt
4644
Download the last version of Qt 5.15.x that you can get using the online installer on the [Qt page](https://www.qt.io/download-open-source). Logs, Android, iOS and WebAssembly are not required to build OpenRV.
4745

4846

49-
WARNING: If you decide fetch Qt from another source, make sure to build it with SSL support and that it contains everything required to build PySide2 and that the file structure is similar to the official package.
50-
FYI. Qt5 from homebrew is known to not work well with OpenRV.
47+
WARNING: If you fetch Qt from another source, make sure to build it with SSL support, that it contains everything required to build PySide2, and that the file structure is similar to the official package.
5148

52-
## Configure
53-
54-
The project uses CMake and requires a configure step before building. It is during the configure step that you provide your Qt package.
55-
56-
From the root of the repository, execute `cmake` specifying the path to an arbitrary build folder and the path to your QT5 package.
57-
58-
For example:
59-
60-
```bash
61-
cmake -B cmake-build -DCMAKE_BUILD_TYPE=Release -DRV_DEPS_QT5_LOCATION=$HOME/Qt/5.15.2/clang_64
62-
```
63-
64-
### Custom generator
65-
66-
You can decide to build with another generator. Ninja is known to work well with the build. If you desire to build with Ninja, you can set`-G Ninja`
67-
68-
## Build (including incremental builds)
69-
70-
Invoke the build tool using cmake (recommended).
71-
72-
For example
73-
74-
```bash
75-
cmake --build cmake-build --target RV
76-
```
49+
Note: Qt5 from homebrew is known to not work well with OpenRV.

0 commit comments

Comments
 (0)