- Changed ETB tag toolbar to a notebook with tag/texture pages (Shaderman)
- Added a context menu (add/delete/rename tag) to the ETB tag tree view (Shaderman) - Added new win32 installer HOWTO (Shaderman/Topsun) git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@110 8a3a26a2-13c4-0310-b231-cf6edde360e5
This commit is contained in:
@@ -1,195 +1,32 @@
|
||||
Howto add new game packs to the InstallShield setup
|
||||
---------------------------------------------------
|
||||
msi installer HOWTO for Radiant 1.5
|
||||
-----------------------------------
|
||||
|
||||
Background Info
|
||||
---------------
|
||||
The files that IS uses are pretty much all text files, in the template/ directory
|
||||
we have a special copy of these files that make up the IS project.
|
||||
Requirements:
|
||||
|
||||
The copy in the template/ directory has files which contain string like
|
||||
<<GTK_DIR>> which are replaced with actual values whenever the setup.pl script
|
||||
is used.
|
||||
- all game packs from https://zerowing.idsoftware.com/svn/radiant.gamepacks/*Pack/trunk/ must be present in the ./games/ folder
|
||||
- the Radiant manual from https://zerowing.idsoftware.com/svn/radiant.gamepacks/Q3Rad_Manual/trunk/ in ./docs/manual/
|
||||
- msitools from http://zerowing.idsoftware.com/files/radiant/developer/1.5/msitools.zip.
|
||||
|
||||
|
||||
TTimo
|
||||
8/5/2002
|
||||
Building a new installer .msi file:
|
||||
|
||||
Disclaimer: I'm writing that as I am building the RTCW game pack. It is possible
|
||||
that it is fairly outdated when you read it, but my guess is it can be a useful
|
||||
reference document.
|
||||
Update: using this for JKII support, made sure everything is still valid
|
||||
|
||||
Hydra
|
||||
5/6/2002
|
||||
- Updating for Halflife build, added a bit more info in places.
|
||||
|
||||
NOTE: you need cygwin installed (http://www.cygwin.com) to run setup.pl tools
|
||||
(Base installation + perl)
|
||||
|
||||
You also need UUIDGEN.exe in your path. It's normally in the
|
||||
"Visual Studio .NET\Common7\Tools" directory
|
||||
|
||||
Some experience with IS and our particular way of handling it is expected.
|
||||
The following information is DENSE, read everything
|
||||
|
||||
- select a base name for the pack (which we will use in various variables):
|
||||
WOLF
|
||||
- make a RELEASE build of GtkRadiant.
|
||||
- run setup.pl to generate the IS directories
|
||||
e.g. ./setup.pl 'c:\\my documents\\Source\\GtkRadiant' q3.cf
|
||||
(the directory contains GtkRadiant, Src, etc..)
|
||||
- start WorkDir/GtkRadiant.ipr, this is an half-templated setup we can
|
||||
easily work on to add new stuff
|
||||
|
||||
- go to file groups and start adding new groups:
|
||||
Wolf Executable Files
|
||||
will hold the editor modules and binaries (map compiler, bspc)
|
||||
Wolf Media Files
|
||||
will hold sample files and editor files:
|
||||
maps, models, additional textures, shader scripts, entities.def, project template
|
||||
set the destination directory for those files:
|
||||
Wolf Executable Files
|
||||
goes in the game pack directory: DIR_GAMETOOLS_WOLF
|
||||
Wolf Media Files
|
||||
goes straight into the Wolf path: DIR_GAME_WOLF
|
||||
|
||||
- start feeding stuff in those file groups
|
||||
make sure all those files start from the prefix we are working with
|
||||
(C:\home\Id in my case)
|
||||
|
||||
- add a component:
|
||||
Wolf (Wolf Executable Files)
|
||||
-- Wolf editing media (Wolf Media Files)
|
||||
NOTE: make sure that you put the file groups in those components you created!
|
||||
|
||||
- go to add the pack to setup.rul:
|
||||
add new globals
|
||||
// Wolf
|
||||
NUMBER DO_GAME_WOLF_BOOL;
|
||||
STRING szDIR_GAME_WOLF, szDIR_GAMETOOLS_WOLF;
|
||||
|
||||
- in OnFirstUIBefore
|
||||
define any strings you use, e.g. szJKII and DEFAULTJKIIDIR;
|
||||
add template for wolf pack inclusion
|
||||
DO_GAME_WOLF_BOOL = <<DO_GAME_WOLF_BOOL>>;
|
||||
|
||||
- copy 'game pack #1' code and paste is as a 'game pack #2'
|
||||
start renaming the code and updating it
|
||||
(use the registry key for default path lookup if possible)
|
||||
Wolf setup doesn't leave an install path, we will hardcode to
|
||||
C:\\Program Files\\Return To Castle Wolfenstein
|
||||
and look for the binary
|
||||
(note, this is by far the part with the most things to do,
|
||||
read carefully the game pack code, replace everywhere it's needed,
|
||||
put the right 'BACK' code etc.)
|
||||
|
||||
NOTE: the 'if (nResult = BACK) then' code gets more complicated as new packs are added
|
||||
sadly, it's not possible to store labels into variables for jumps
|
||||
the next 'nResult = BACK' in non-gamepack code needs to be updated too
|
||||
|
||||
- in Dlg_SdStartCopy, add summary for Wolf operations
|
||||
if (DO_GAME_WOLF_BOOL == 1) then
|
||||
ListAddString(listStartCopy,"Return To Castle Wolfenstein folder:",AFTER);
|
||||
ListAddString(listStartCopy," " + szDIR_GAME_WOLF,AFTER);
|
||||
ListAddString(listStartCopy,"Return To Castle Wolfenstein mapping package folder:",AFTER);
|
||||
ListAddString(listStartCopy," " + szDIR_GAMETOOLS_WOLF,AFTER);
|
||||
endif;
|
||||
|
||||
- in OnMoved, add generation of the game file for Wolf
|
||||
if (DO_GAME_WOLF_BOOL == 1) then
|
||||
if (CreateDir(TARGETDIR ^ "games")< 0) then
|
||||
// Report the error; then abort.
|
||||
MessageBox ("Unable to create directory " + TARGETDIR ^ "games", SEVERE);
|
||||
abort;
|
||||
endif;
|
||||
if (CreateFile(nvFileHandle, TARGETDIR ^ "games", "wolf.game")< 0) then
|
||||
// Report the error.
|
||||
MessageBox ("CreateFile " + TARGETDIR ^ "games" + "\\wolf.game failed.", SEVERE);
|
||||
abort;
|
||||
endif;
|
||||
WriteLine(nvFileHandle, "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>");
|
||||
WriteLine(nvFileHandle, "<!-- generated by Radiant setup, modify at your own risks -->");
|
||||
WriteLine(nvFileHandle, "<game name=\"Return To Castle Wolfenstein\" gametools=\"" + szDIR_GAMETOOLS_WOLF + "/\"/>");
|
||||
WriteLine(nvFileHandle, " gamename=\"wolf\"");
|
||||
WriteLine(nvFileHandle, " enginename=\"quake3\"");
|
||||
CloseFile(nvFileHandle);
|
||||
endif;
|
||||
|
||||
- configure the setup so that the new components are installed by default:
|
||||
in 'Setup Types' tab, check the new components
|
||||
NOTE: do that in BOTH types, specially Custom
|
||||
|
||||
- once all those changes are done, we are gonna validate the update..
|
||||
save and exit IS
|
||||
make a backup copy of setup/win32/WorkDir ($ cp -R WorkDir/ WorkDir-backup)
|
||||
|
||||
- templatize WorkDir/ with the setup.pl
|
||||
$ ./setup.pl 'c:\\home\\Id' -template template-gen
|
||||
Configured for base GtkRadiant directory: 'C:\\home\\Id'
|
||||
Building a template version of WorkDir into template-gen/
|
||||
Copy files...
|
||||
Templating UUID...
|
||||
Processing 'C:\\home\\Id' into '<<GTKRAD_DIR>>'
|
||||
|
||||
- check with a recursive diff that it's all good (Araxis Merge!)
|
||||
Files template/Component Definitions/Default.cdf and template-gen/Component Definitions/Default.cdf differ
|
||||
Files template/Component Definitions/Default.fgl and template-gen/Component Definitions/Default.fgl differ
|
||||
Files template/File Groups/Default.fdf and template-gen/File Groups/Default.fdf differ
|
||||
Files template/Script Files/Setup.rul and template-gen/Script Files/Setup.rul differ
|
||||
Files template/Text Substitutions/Setup.tsb and template-gen/Text Substitutions/Setup.tsb differ
|
||||
|
||||
newly added, the file groups files
|
||||
|
||||
- copy over template-gen/ into template/
|
||||
$ cp -R template-gen/* template/
|
||||
|
||||
- cvs update in the template dir, add new files etc.
|
||||
- Unzip msitools.zip to ./setup/win32/ and run MsiVal2.Msi (it automatically installes to C:\Program files\MsiVal2).
|
||||
- Copy all files from C:\Program files\MsiVal2 to the ./setup/win32/ folder.
|
||||
- You might have to edit the .xml files in ./setup/win32/components/
|
||||
- Create a file "aboutmsg.default" in ./include containing a single line:
|
||||
Official qeradiant.com build by <insert your name here>
|
||||
- Open a command-prompt in ./ and run "makeversion.py"
|
||||
- Build the GtkRadiant solution in 'Release' configuration.
|
||||
- If you want to create a .msi installer for GtkRadiant, go on with the next step. To create a game pack
|
||||
.msi installer you have to modify the file "build.py".
|
||||
- Open a command-prompt in ./setup/win32/ and run "build.py". This will create the installer
|
||||
file GtkRadiant-1.5.0-[YYYY]-[MM]-[DD].msi
|
||||
|
||||
|
||||
Additional information:
|
||||
|
||||
- edit template/Component Definitions/Default.cdf in a text editor to configure the 'include in build' templates
|
||||
search for [Wolf] and change the line:
|
||||
INCLUDEINBUILD=NO
|
||||
to:
|
||||
INCLUDEINBUILD=<<DO_GAME_WOLF_BOOL_YESNO>>
|
||||
|
||||
search for [Wolf\Wolf Editing Media] and change the line:
|
||||
INCLUDEINBUILD=NO
|
||||
to:
|
||||
INCLUDEINBUILD=<<DO_GAME_WOLF_BOOL_FULL_YESNO>>
|
||||
|
||||
that is, main is always installed, and the editing media only in full
|
||||
NOTE: IS 6.0 has the nasty habit of changing order in Default.cdf on each save .. makes things harder
|
||||
|
||||
- edit 'sub configure_tree' in setup/win32/setup.pl:
|
||||
copy from an existing game pack code and adapt
|
||||
there's a general boolean, and a full setup boolean
|
||||
(search and replace affects Setup.rul and Default.cdf)
|
||||
|
||||
add the corresponding items to
|
||||
# set default config
|
||||
|
||||
add a corresponding output string under
|
||||
print " DO_CORE : $DO_CORE\n";
|
||||
|
||||
- search for '# set default config' and add the new default entry (default to 0)
|
||||
as well as the verbosity below
|
||||
|
||||
- create a new .cf file
|
||||
|
||||
# ET setup
|
||||
|
||||
# output dir name
|
||||
$SETUP_DIR = 'Setup-ET';
|
||||
|
||||
$DO_CORE = 1;
|
||||
$DO_GAME_ET = 1;
|
||||
If you want to build the msi-Installer wiht Python 2.4 you have to modify msiquery.vcproj ('Release' configuration)
|
||||
located in ./setup/win32/msi/ (include paths and linker libraries) and rebuild it
|
||||
|
||||
|
||||
- build a new setup using a .cf file.
|
||||
|
||||
e.g.
|
||||
|
||||
./setup.pl 'C:\\home\\Id' wolf.cf
|
||||
|
||||
- load up Setup-Wolf/GtkRadiant.ipl into IS and build it!
|
||||
Written by Shaderman and Topsun in Sept 2006
|
||||
195
setup/win32/HOWTO_outdated
Normal file
195
setup/win32/HOWTO_outdated
Normal file
@@ -0,0 +1,195 @@
|
||||
Howto add new game packs to the InstallShield setup
|
||||
---------------------------------------------------
|
||||
|
||||
Background Info
|
||||
---------------
|
||||
The files that IS uses are pretty much all text files, in the template/ directory
|
||||
we have a special copy of these files that make up the IS project.
|
||||
|
||||
The copy in the template/ directory has files which contain string like
|
||||
<<GTK_DIR>> which are replaced with actual values whenever the setup.pl script
|
||||
is used.
|
||||
|
||||
|
||||
TTimo
|
||||
8/5/2002
|
||||
|
||||
Disclaimer: I'm writing that as I am building the RTCW game pack. It is possible
|
||||
that it is fairly outdated when you read it, but my guess is it can be a useful
|
||||
reference document.
|
||||
Update: using this for JKII support, made sure everything is still valid
|
||||
|
||||
Hydra
|
||||
5/6/2002
|
||||
- Updating for Halflife build, added a bit more info in places.
|
||||
|
||||
NOTE: you need cygwin installed (http://www.cygwin.com) to run setup.pl tools
|
||||
(Base installation + perl)
|
||||
|
||||
You also need UUIDGEN.exe in your path. It's normally in the
|
||||
"Visual Studio .NET\Common7\Tools" directory
|
||||
|
||||
Some experience with IS and our particular way of handling it is expected.
|
||||
The following information is DENSE, read everything
|
||||
|
||||
- select a base name for the pack (which we will use in various variables):
|
||||
WOLF
|
||||
- make a RELEASE build of GtkRadiant.
|
||||
- run setup.pl to generate the IS directories
|
||||
e.g. ./setup.pl 'c:\\my documents\\Source\\GtkRadiant' q3.cf
|
||||
(the directory contains GtkRadiant, Src, etc..)
|
||||
- start WorkDir/GtkRadiant.ipr, this is an half-templated setup we can
|
||||
easily work on to add new stuff
|
||||
|
||||
- go to file groups and start adding new groups:
|
||||
Wolf Executable Files
|
||||
will hold the editor modules and binaries (map compiler, bspc)
|
||||
Wolf Media Files
|
||||
will hold sample files and editor files:
|
||||
maps, models, additional textures, shader scripts, entities.def, project template
|
||||
set the destination directory for those files:
|
||||
Wolf Executable Files
|
||||
goes in the game pack directory: DIR_GAMETOOLS_WOLF
|
||||
Wolf Media Files
|
||||
goes straight into the Wolf path: DIR_GAME_WOLF
|
||||
|
||||
- start feeding stuff in those file groups
|
||||
make sure all those files start from the prefix we are working with
|
||||
(C:\home\Id in my case)
|
||||
|
||||
- add a component:
|
||||
Wolf (Wolf Executable Files)
|
||||
-- Wolf editing media (Wolf Media Files)
|
||||
NOTE: make sure that you put the file groups in those components you created!
|
||||
|
||||
- go to add the pack to setup.rul:
|
||||
add new globals
|
||||
// Wolf
|
||||
NUMBER DO_GAME_WOLF_BOOL;
|
||||
STRING szDIR_GAME_WOLF, szDIR_GAMETOOLS_WOLF;
|
||||
|
||||
- in OnFirstUIBefore
|
||||
define any strings you use, e.g. szJKII and DEFAULTJKIIDIR;
|
||||
add template for wolf pack inclusion
|
||||
DO_GAME_WOLF_BOOL = <<DO_GAME_WOLF_BOOL>>;
|
||||
|
||||
- copy 'game pack #1' code and paste is as a 'game pack #2'
|
||||
start renaming the code and updating it
|
||||
(use the registry key for default path lookup if possible)
|
||||
Wolf setup doesn't leave an install path, we will hardcode to
|
||||
C:\\Program Files\\Return To Castle Wolfenstein
|
||||
and look for the binary
|
||||
(note, this is by far the part with the most things to do,
|
||||
read carefully the game pack code, replace everywhere it's needed,
|
||||
put the right 'BACK' code etc.)
|
||||
|
||||
NOTE: the 'if (nResult = BACK) then' code gets more complicated as new packs are added
|
||||
sadly, it's not possible to store labels into variables for jumps
|
||||
the next 'nResult = BACK' in non-gamepack code needs to be updated too
|
||||
|
||||
- in Dlg_SdStartCopy, add summary for Wolf operations
|
||||
if (DO_GAME_WOLF_BOOL == 1) then
|
||||
ListAddString(listStartCopy,"Return To Castle Wolfenstein folder:",AFTER);
|
||||
ListAddString(listStartCopy," " + szDIR_GAME_WOLF,AFTER);
|
||||
ListAddString(listStartCopy,"Return To Castle Wolfenstein mapping package folder:",AFTER);
|
||||
ListAddString(listStartCopy," " + szDIR_GAMETOOLS_WOLF,AFTER);
|
||||
endif;
|
||||
|
||||
- in OnMoved, add generation of the game file for Wolf
|
||||
if (DO_GAME_WOLF_BOOL == 1) then
|
||||
if (CreateDir(TARGETDIR ^ "games")< 0) then
|
||||
// Report the error; then abort.
|
||||
MessageBox ("Unable to create directory " + TARGETDIR ^ "games", SEVERE);
|
||||
abort;
|
||||
endif;
|
||||
if (CreateFile(nvFileHandle, TARGETDIR ^ "games", "wolf.game")< 0) then
|
||||
// Report the error.
|
||||
MessageBox ("CreateFile " + TARGETDIR ^ "games" + "\\wolf.game failed.", SEVERE);
|
||||
abort;
|
||||
endif;
|
||||
WriteLine(nvFileHandle, "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>");
|
||||
WriteLine(nvFileHandle, "<!-- generated by Radiant setup, modify at your own risks -->");
|
||||
WriteLine(nvFileHandle, "<game name=\"Return To Castle Wolfenstein\" gametools=\"" + szDIR_GAMETOOLS_WOLF + "/\"/>");
|
||||
WriteLine(nvFileHandle, " gamename=\"wolf\"");
|
||||
WriteLine(nvFileHandle, " enginename=\"quake3\"");
|
||||
CloseFile(nvFileHandle);
|
||||
endif;
|
||||
|
||||
- configure the setup so that the new components are installed by default:
|
||||
in 'Setup Types' tab, check the new components
|
||||
NOTE: do that in BOTH types, specially Custom
|
||||
|
||||
- once all those changes are done, we are gonna validate the update..
|
||||
save and exit IS
|
||||
make a backup copy of setup/win32/WorkDir ($ cp -R WorkDir/ WorkDir-backup)
|
||||
|
||||
- templatize WorkDir/ with the setup.pl
|
||||
$ ./setup.pl 'c:\\home\\Id' -template template-gen
|
||||
Configured for base GtkRadiant directory: 'C:\\home\\Id'
|
||||
Building a template version of WorkDir into template-gen/
|
||||
Copy files...
|
||||
Templating UUID...
|
||||
Processing 'C:\\home\\Id' into '<<GTKRAD_DIR>>'
|
||||
|
||||
- check with a recursive diff that it's all good (Araxis Merge!)
|
||||
Files template/Component Definitions/Default.cdf and template-gen/Component Definitions/Default.cdf differ
|
||||
Files template/Component Definitions/Default.fgl and template-gen/Component Definitions/Default.fgl differ
|
||||
Files template/File Groups/Default.fdf and template-gen/File Groups/Default.fdf differ
|
||||
Files template/Script Files/Setup.rul and template-gen/Script Files/Setup.rul differ
|
||||
Files template/Text Substitutions/Setup.tsb and template-gen/Text Substitutions/Setup.tsb differ
|
||||
|
||||
newly added, the file groups files
|
||||
|
||||
- copy over template-gen/ into template/
|
||||
$ cp -R template-gen/* template/
|
||||
|
||||
- cvs update in the template dir, add new files etc.
|
||||
|
||||
|
||||
|
||||
- edit template/Component Definitions/Default.cdf in a text editor to configure the 'include in build' templates
|
||||
search for [Wolf] and change the line:
|
||||
INCLUDEINBUILD=NO
|
||||
to:
|
||||
INCLUDEINBUILD=<<DO_GAME_WOLF_BOOL_YESNO>>
|
||||
|
||||
search for [Wolf\Wolf Editing Media] and change the line:
|
||||
INCLUDEINBUILD=NO
|
||||
to:
|
||||
INCLUDEINBUILD=<<DO_GAME_WOLF_BOOL_FULL_YESNO>>
|
||||
|
||||
that is, main is always installed, and the editing media only in full
|
||||
NOTE: IS 6.0 has the nasty habit of changing order in Default.cdf on each save .. makes things harder
|
||||
|
||||
- edit 'sub configure_tree' in setup/win32/setup.pl:
|
||||
copy from an existing game pack code and adapt
|
||||
there's a general boolean, and a full setup boolean
|
||||
(search and replace affects Setup.rul and Default.cdf)
|
||||
|
||||
add the corresponding items to
|
||||
# set default config
|
||||
|
||||
add a corresponding output string under
|
||||
print " DO_CORE : $DO_CORE\n";
|
||||
|
||||
- search for '# set default config' and add the new default entry (default to 0)
|
||||
as well as the verbosity below
|
||||
|
||||
- create a new .cf file
|
||||
|
||||
# ET setup
|
||||
|
||||
# output dir name
|
||||
$SETUP_DIR = 'Setup-ET';
|
||||
|
||||
$DO_CORE = 1;
|
||||
$DO_GAME_ET = 1;
|
||||
|
||||
|
||||
- build a new setup using a .cf file.
|
||||
|
||||
e.g.
|
||||
|
||||
./setup.pl 'C:\\home\\Id' wolf.cf
|
||||
|
||||
- load up Setup-Wolf/GtkRadiant.ipl into IS and build it!
|
||||
Reference in New Issue
Block a user