From: spog Date: Sun, 12 Feb 2006 19:47:01 +0000 (+0000) Subject: added msvc dlls to install.py; added svn revision lookup to makeversion.py; updated... X-Git-Tag: xonotic-v0.7.0~16^2~12^2~285 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=e483272c36cc1c8b5f0710b37a9a65e987de7cd2;p=xonotic%2Fnetradiant.git added msvc dlls to install.py; added svn revision lookup to makeversion.py; updated COMPILING git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@9 8a3a26a2-13c4-0310-b231-cf6edde360e5 --- diff --git a/COMPILING b/COMPILING index 5fcf59d6..6e735227 100644 --- a/COMPILING +++ b/COMPILING @@ -24,6 +24,7 @@ environment: - gcc3 (preferably) - scons = 0.96 (radiant is built with scons rather than make) - python >= 2.3.0 (scons requires python, some build steps use python) +- svn >= 1.1 (some build steps use svn) dependencies: - gtk+ >= 2.4.0 (requires glib, atk, pango, iconv, etc) @@ -51,7 +52,8 @@ Win32 (2000 or XP) environment: - visual studio .net 2003 - microsoft c++ compiler 7.1 (comes with vs.net 2003) -- python 2.3.0 or later +- python 2.3.0 or later (some build steps use python) +- subversion 1.1 or later (some build steps use svn) dependencies are prepackaged archives, extract them to the directory above GtkRadiant.sln: - http://zerowing.idsoftware.com/files/radiant/developer/1.5/gtk2-2.4.14.zip (gtk-wimp, gtkglext, gtk, glib, atk, pango, iconv etc) @@ -60,10 +62,11 @@ dependencies are prepackaged archives, extract them to the directory above GtkRa - http://zerowing.idsoftware.com/files/radiant/developer/1.5/zlib1-1.2.1.zip (for archivezip module) - http://zerowing.idsoftware.com/files/radiant/developer/1.5/libpng-1.2.5.zip (for imagepng module) - http://zerowing.idsoftware.com/files/radiant/developer/1.5/mhash-0.9.1.zip (for q3map2) +- http://zerowing.idsoftware.com/files/radiant/developer/1.5/msvc_redist.zip (msvc runtime libraries) build: Open GtkRadiant.sln. -In tools > options > projects > VC++ Directories > executables, add the path to python.exe (e.g. c:\python23\) +In tools > options > projects > VC++ Directories > executables, add the paths to python.exe (e.g. c:\python23\) and svn.exe (e.g. c:\svn\) Hit 'Build > Build Solution' (F7) install: diff --git a/gen.vcproj b/gen.vcproj index 91cdb541..cda374b4 100644 --- a/gen.vcproj +++ b/gen.vcproj @@ -124,7 +124,7 @@ Name="VCCustomBuildTool" CommandLine="run_python.bat makeversion.py " - AdditionalDependencies="$(InputDir)include\version.default;$(InputDir)include\aboutmsg.default" + AdditionalDependencies="$(InputDir)include\version.default;$(InputDir)include\aboutmsg.default;$(InputDir)svn.py;$(InputDir).svn\entriest" Outputs="$(InputDir)include\version.h;$(InputDir)include\aboutmsg.h"/> diff --git a/include/aboutmsg.default b/include/aboutmsg.default deleted file mode 100644 index 90c65ad5..00000000 --- a/include/aboutmsg.default +++ /dev/null @@ -1 +0,0 @@ -Custom SPoG experimental build diff --git a/install.py b/install.py index ab7b5afa..d237e0ff 100644 --- a/install.py +++ b/install.py @@ -1,10 +1,40 @@ +# Copyright (C) 2001-2006 William Joseph. +# +# This file is part of GtkRadiant. +# +# GtkRadiant is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# GtkRadiant is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GtkRadiant; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +""" +Builds the ./install directory. + +Copies files from various locations: +./setup/data/tools/ +./games// +..//.dll +./include/version.default is used to generate RADIANT_MAJOR and RADIANT_MINOR +""" import os import shutil - +def assertMessage(condition, message): + if not condition: + raise Exception(message) + def copyFile(source, target): - assert os.path.isfile(source) + assertMessage(os.path.isfile(source), "failed to find file: " + source) targetFile = target if os.path.isdir(targetFile): targetFile = os.path.join(target, os.path.basename(source)) @@ -16,7 +46,7 @@ def copyFileIfExists(source, target): copyFile(source, target) def copySvn(source, target): - assert os.path.isdir(source) + assertMessage(os.path.isdir(source), "failed to find directory: " + source) if not os.path.exists(target): os.mkdir(target) for name in os.listdir(source): @@ -29,8 +59,8 @@ def copySvn(source, target): copyFile(absolute, absTarget) def copyGame(source, game, target): - assert os.path.isdir(source) - assert os.path.isdir(target) + assertMessage(os.path.isdir(source), "failed to find directory: " + source) + assertMessage(os.path.isdir(target), "failed to find directory: " + target) root = os.path.join(source, os.path.normpath(game[0])) if os.path.exists(root): gamename = game[1] + ".game" @@ -87,3 +117,15 @@ copyFileIfExists(libmhash, installRoot) zlib = os.path.normpath(os.path.join(thisDir, "../zlib1-1.2/zlib1.dll")) copyFileIfExists(zlib, installRoot) + +msvcr71 = os.path.normpath(os.path.join(thisDir, "../msvc_redist/msvcr71.dll")) +copyFileIfExists(msvcr71, installRoot) + +dbghelp = os.path.normpath(os.path.join(thisDir, "../msvc_redist/dbghelp.dll")) +copyFileIfExists(dbghelp, installRoot) + +# create version files +version = open(os.path.join(thisDir, "include/version.default"), "rt").readline().split(".") +assertMessage(len(version) == 3, "failed to parse include/version.default") +open(os.path.join(thisDir, "install/RADIANT_MAJOR"), "wt").write(str(version[1])) +open(os.path.join(thisDir, "install/RADIANT_MINOR"), "wt").write(str(version[2])) diff --git a/makeversion.py b/makeversion.py index 296b456a..afc4252c 100644 --- a/makeversion.py +++ b/makeversion.py @@ -32,13 +32,15 @@ # for non-official builds, we have a default message # otherwise, use environment variable $RADIANT_ABOUTMSG # input: -# include/aboutmsg.default -# or file pointed to by $RADIANT_ABOUTMSG if exists +# file pointed to by $RADIANT_ABOUTMSG if exists +# else include/aboutmsg.default # ouput: # include/aboutmsg.h import sys, re, string, os +import svn + def get_version(): # version f = open('include/version.default', 'r') @@ -73,11 +75,14 @@ def radiant_makeversion(append_about): aboutfile = 'include/aboutmsg.default' if ( os.environ.has_key('RADIANT_ABOUTMSG') ): aboutfile = os.environ['RADIANT_ABOUTMSG'] - sys.stdout.write("about message is in %s\n" % aboutfile) - f = open(aboutfile, 'r') - buffer = f.read() - line = string.split(buffer, '\n')[0] - f.close() + line = None + if os.path.isfile(aboutfile): + sys.stdout.write("about message is in %s\n" % aboutfile) + f = open(aboutfile, 'r') + line = f.readline() + f.close() + else: + line = "Custom build based on revision " + str(svn.getRevision(os.getcwd())) # optional additional message if ( not append_about is None ): line += append_about diff --git a/setup/win32/build.py b/setup/win32/build.py index 70c540d2..2c130768 100644 --- a/setup/win32/build.py +++ b/setup/win32/build.py @@ -1,5 +1,4 @@ # Copyright (C) 2001-2006 William Joseph. -# For a list of contributors, see the accompanying CONTRIBUTORS file. # # This file is part of GtkRadiant. # diff --git a/setup/win32/installer.py b/setup/win32/installer.py index cdf695d1..d3f923a9 100644 --- a/setup/win32/installer.py +++ b/setup/win32/installer.py @@ -1,5 +1,4 @@ # Copyright (C) 2001-2006 William Joseph. -# For a list of contributors, see the accompanying CONTRIBUTORS file. # # This file is part of GtkRadiant. # diff --git a/setup/win32/msi.py b/setup/win32/msi.py index 05d4d208..a01f15f7 100644 --- a/setup/win32/msi.py +++ b/setup/win32/msi.py @@ -1,5 +1,4 @@ # Copyright (C) 2001-2006 William Joseph. -# For a list of contributors, see the accompanying CONTRIBUTORS file. # # This file is part of GtkRadiant. #