-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME
106 lines (76 loc) · 4.21 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
Nuke Plugins Builder
by Hugh Macdonald, Nvizible, 2011
Windows build settings and general testing by Thorsten Kaufmann, 2011
Instructions
------------
This project is a plugin builder for Nuke. It is based on SCons, and allows
developers to use the same SConstruct file for any system that they are building
on.
The main SConstruct file shouldn't need to be modified on a case by case basis.
localSettings.py may need to be modified depending on how Nuke is installed on
your system pluginSettings.py may need to be modified if your plugin requires
extra headers/libraries.
By default, it will build a node for each of the .cpp files in the source folder
(as defined in pluginSettings.py), unless there is also an equivalent .dev file
(which can be empty). The existence of the .dev file means that the node in
question is still in development and shouldn't be built as part of a standard
build.
Build plugins can be found in the following location:
build/<nuke_version>/<system>.<architecture>/<build_mode>
nuke_version : This is the version of Nuke that the plugin was built against. As
plugins work across all releases of a major/minor version, this
is usually just something like "6.2". However, if they were built
against an alpha or beta version of Nuke, then the whole Nuke
version is used, as plugin compatibility can break.
system : The system that the plugins were built on. This will be one of
"windows", "linux" or "darwin" (OSX)
architecture : The architecture that the plugins were built on. For 64-bit, this
is "x86_64".
For 32-bit, under OSX and Linux, this "i386", or for Windows,
"x86".
build_mode : This is either "debug" or "release", depending on what was
specified on compile.
Files
-----
SConstruct : This contains most of the core logic for building the
plugin. It knows what Nuke requires for each type of system
that Nuke can run on. It looks at the other files for
anything specific to the local system.
localSettings.py : This file contains the details of where Nuke is installed,
plus the default Nuke version and architecture.
pluginSettings.py : This file contains any settings specific to the plugin,
including where the source code can be found, plus any extra
libraries that may be needed to build the plugins.
Usage
-----
scons [<option>=<value> [...]]
Options
-------
local : Use a different localSettings file - the value given is appended
to the module name. eg "local=company" would load
localSettings_company.py
arch : Compile for the specified architecture (32/64). The default value
is defined in localSettings.py. This can be a comma-separated
list of both if desired.
mode : Which mode to compile in (debug/release). Default: debug.
nodes : Which nodes to build. This is a comma-separated list of the
nodes. Default: all
dev : If set to 1, will build nodes that are still in development.
Default: 0
nuke_version : Which Nuke version to compile for. The default is defined in
localSettings.py. This can be defined without the trailing
'release' number, and the system will figure out which actual
full Nuke version should be built against. This can also be a
comma-separated list of multiple Nuke version (6.1,6.2).
To Do
-----
- Add in a test stage that launches a python script in Nuke and tests to see
whether the nodes can actually be loaded.
- Add in the ability to release plugins to another location. Have a different
location depending on whether the mode is 'debug' or 'release'
- Add the ability to define Nuke version as just MAJOR.MINOR and have the
SConstruct file figure out which the latest release (non-alpha/beta) to build
against.
- Add the ability to build against multiple architectures/nuke versions in one
go. So something like this would be possible:
scons arch=32,64 nuke_version=6.0,6.1,6.2