Thread: [Winmerge-svn] SF.net SVN: winmerge:[5847] trunk/Tools/Scripts/create_release.py
Windows visual diff and merge for files and directories
Brought to you by:
christianlist,
grimmdp
From: <ki...@us...> - 2008-08-21 16:54:19
|
Revision: 5847 http://winmerge.svn.sourceforge.net/winmerge/?rev=5847&view=rev Author: kimmov Date: 2008-08-21 16:54:17 +0000 (Thu, 21 Aug 2008) Log Message: ----------- Buildscript: build heksedit.dll and copy it to distribution folder. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-08-21 15:44:02 UTC (rev 5846) +++ trunk/Tools/Scripts/create_release.py 2008-08-21 16:54:17 UTC (rev 5847) @@ -121,6 +121,9 @@ if os.path.exists('build/scew'): shutil.rmtree('build/scew', True) + if os.path.exists('build/heksedit'): + shutil.rmtree('build/heksedit', True) + if os.path.exists('build/Manual'): shutil.rmtree('build/Manual',True) @@ -212,6 +215,10 @@ #print solution_path call([vs_cmd, solution_path, '/rebuild', 'MinSizeRel'], shell=True) + print 'Build heksedit library...' + solution_path = os.path.join(cur_path, 'Externals/heksedit/heksedit.vcproj') + call([vs_cmd, solution_path, '/rebuild', 'Release'], shell=True) + def build_targets(): """Builds all WinMerge targets.""" @@ -293,6 +300,7 @@ shutil.copy('build/pcre/pcre.dll', bin_folder) shutil.copy('build/expat/libexpat.dll', bin_folder) + shutil.copy('build/heksedit/heksedit.dll', bin_folder) copy_po_files(lang_folder) filter_orig = os.path.join(dist_src_folder, 'Filters') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2008-08-21 16:56:41
|
Revision: 5848 http://winmerge.svn.sourceforge.net/winmerge/?rev=5848&view=rev Author: kimmov Date: 2008-08-21 16:56:38 +0000 (Thu, 21 Aug 2008) Log Message: ----------- Buildscript: Don't build HTML manual in trunk. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-08-21 16:54:17 UTC (rev 5847) +++ trunk/Tools/Scripts/create_release.py 2008-08-21 16:56:38 UTC (rev 5848) @@ -260,8 +260,10 @@ os.chdir('Docs/Users/Manual/build') print 'Build HTML Help (CHM) manual...' call(['build_htmlhelp.bat']) - print 'Build HTML manual for Web with ads...' - call(['build_html.bat', 'withads']) + + # HTML manual not build in trunk. + #print 'Build HTML manual for Web with ads...' + #call(['build_html.bat', 'withads']) print 'Manual build finished.' os.chdir(curdir) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2008-10-29 22:58:08
|
Revision: 6052 http://winmerge.svn.sourceforge.net/winmerge/?rev=6052&view=rev Author: kimmov Date: 2008-10-29 22:58:05 +0000 (Wed, 29 Oct 2008) Log Message: ----------- BuildScript: Build Innosetup installer. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-10-29 20:21:55 UTC (rev 6051) +++ trunk/Tools/Scripts/create_release.py 2008-10-29 22:58:05 UTC (rev 6052) @@ -29,6 +29,7 @@ # - builds WinMerge.exe and WinMergeU.exe # - builds 32-bit ShellExtension targets # - builds user manual +# - builds the InnoSetup installer # - creates per-version distribution folder # - exports SVN sources to distribution folder # - creates binary distribution folder @@ -36,7 +37,6 @@ #Tasks not done (TODO?): # - building 64-bit ShellExtension # - creating packages from source and binary folders -# - creating installer # - running virus check # - creating SHA-1 hashes for distributed files @@ -51,6 +51,8 @@ svn_binary = 'C:\\Program Files\\Subversion\\bin\\svn.exe' # Visual Studio path vs_path = 'C:\\Program Files\\Microsoft Visual Studio .NET 2003' +# InnoSetup installation path +innosetup_path = 'C:\\Program Files\\Inno Setup 5' # Relative path where to create a release folder dist_root_folder = 'distrib' @@ -267,6 +269,19 @@ print 'Manual build finished.' os.chdir(curdir) +def build_innosetup_installer(target_folder): + """Builds the InnoSetup installer for the WinMerge.""" + + innosetup_exe = os.path.join(innosetup_path, 'iscc.exe') + cur_path = os.getcwd() + winmerge_iss = os.path.join(cur_path, 'Installer\\InnoSetup\\WinMerge.iss') + #output_switch = '/O"' + target_folder + '"' + + print 'Build Innosetup installer...' + # Should be able to give folder for created file and Q switch to make build quiet + #call([innosetup_exe, '/Q', output_switch, winmerge_iss]) + call([innosetup_exe, winmerge_iss]) + def get_and_create_bin_folder(dist_folder, folder): """Formats and creates binary distribution folder.""" @@ -468,10 +483,11 @@ set_resource_version(version) setup_translations() - + build_targets() build_manual() - + build_innosetup_installer(dist_folder) + dist_bin_folder = get_and_create_bin_folder(dist_folder, version_folder) create_bin_folders(dist_bin_folder, dist_src_folder) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2008-11-20 19:24:09
|
Revision: 6114 http://winmerge.svn.sourceforge.net/winmerge/?rev=6114&view=rev Author: kimmov Date: 2008-11-20 19:23:59 +0000 (Thu, 20 Nov 2008) Log Message: ----------- BuildScript: use the SetVersions.py script to set version numbers. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-11-20 19:14:51 UTC (rev 6113) +++ trunk/Tools/Scripts/create_release.py 2008-11-20 19:23:59 UTC (rev 6114) @@ -64,6 +64,7 @@ import sys import getopt import shutil +import SetVersions def get_vs_ide_bin(): """Gets a full path to the Visual Studio IDE executable to run.""" @@ -139,11 +140,17 @@ return False return True -def set_resource_version(version): +def get_product_version(file): + """Get the product version number from config file.""" + + version = SetVersions.get_product_version(file) + return version + +def set_resource_version(file): """Sets the version number to the resource.""" print 'Update version number to resource(s)...' - call(['cscript', 'Src/SetResourceVersions.wsf', version]) + SetVersions.process_versions(file) def setup_translations(): """Updates translation files by running scripts in Src/Languages.""" @@ -422,13 +429,14 @@ print ' -v: n, --version= n set release version' print ' -c, --cleanup clean up build files (temp files, libraries, executables)' print ' -l, --libraries build libraries (expat, scew, pcre) only' - print ' For example: create_release -v: 2.7.7.1' + print ' -f:, --file= filename set the version number ini file' + print ' For example: create_release -f: versions.ini' def main(argv): version = '0.0.0.0' if len(argv) > 0: - opts, args = getopt.getopt(argv, "hclv:", [ "help", "cleanup", "libraries", - "version="]) + opts, args = getopt.getopt(argv, "hclv:f:", [ "help", "cleanup", "libraries", + "version=", "file="]) for opt, arg in opts: if opt in ("-h", "--help"): @@ -444,6 +452,8 @@ if opt in ("-l", "--libraries"): build_libraries() sys.exit() + if opt in ("-f", "--file"): + ver_file = arg # Check all required tools are found (script configuration) if check_tools() == False: @@ -474,6 +484,12 @@ if cleanup_build() == False: sys.exit() + if len(ver_file) > 0: + version_read = get_product_version(ver_file) + if len(version_read) > 0: + version = version_read + set_resource_version(ver_file) + version_folder = 'WinMerge-' + version dist_folder = get_and_create_dist_folder(version_folder) if dist_folder == '': @@ -481,7 +497,6 @@ dist_src_folder = get_src_dist_folder(dist_folder, version_folder) svn_export(dist_src_folder) - set_resource_version(version) setup_translations() build_targets() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2008-12-17 15:12:04
|
Revision: 6178 http://winmerge.svn.sourceforge.net/winmerge/?rev=6178&view=rev Author: kimmov Date: 2008-12-17 15:11:58 +0000 (Wed, 17 Dec 2008) Log Message: ----------- BuildScript: add more documentation. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-12-16 23:45:13 UTC (rev 6177) +++ trunk/Tools/Scripts/create_release.py 2008-12-17 15:11:58 UTC (rev 6178) @@ -20,7 +20,7 @@ # $Id$ -# This script prepares a WinMerge release +# This is a script for creating a WinMerge release. # Tasks it does: # - cleans previous build files from folders # - sets version number for resources @@ -39,11 +39,22 @@ # - creating packages from source and binary folders # - running virus check # - creating SHA-1 hashes for distributed files +# - create installer to correct folder +# - make installer compile less verbose +# - make building exes and dlls also less verbose # Tools needed: # - Python 2.5 :) # - Subversion command line binaries +# - InnoSetup 5 +# There are lots of other dependencies, they are documented in /Docs/Developers documents. Especially be sure to read: +# - Compiling.html for compiling executables and dlls +# - readme-manual.html for building the manual +# - readme-InnoSetup.html for creating the installer +# Please note that this script is only tested in kimmov's environment. It simply may not work in other environments and +# configurations. If you find problems, please report them so we can improve the script. + # CONFIGURATION: # Set these variables to match your environment and folders you want to use This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2008-12-17 18:39:57
|
Revision: 6183 http://winmerge.svn.sourceforge.net/winmerge/?rev=6183&view=rev Author: kimmov Date: 2008-12-17 18:39:52 +0000 (Wed, 17 Dec 2008) Log Message: ----------- BuildScript: Find WinMerge root folder before accessing other files or components. This fixes running script from other folders than WinMerge root folder. Fix suggested by Matthias Mayer. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-12-17 18:07:44 UTC (rev 6182) +++ trunk/Tools/Scripts/create_release.py 2008-12-17 18:39:52 UTC (rev 6183) @@ -386,8 +386,13 @@ shutil.copy('Installer/Runtimes/msvcr71.dll', runtimes_folder) def find_winmerge_root(): - """Find WinMerge tree root folder from where to run rest of the script.""" - + """Find WinMerge tree root folder from where to run rest of the script. + + This function checks if we are in WinMerge root folder. If we are in some + other folder then we must try to find the WinMerge root folder. Because all + other code assumes we are in WinMerge root folder. If the root folder is + found current folder is changed into it.""" + # If we find Src and Filters -subfolders we are in root if os.path.exists('Src') and os.path.exists('Filters'): return True @@ -470,10 +475,6 @@ if check_tools() == False: sys.exit() - # Check 64-bit ShellExtension is compiled - if check_x64shellext() == False: - sys.exit() - # Check we are running from correct folder (and go to root if found) if find_winmerge_root() == False: print 'ERROR: Cannot find WinMerge root folder!' @@ -482,6 +483,10 @@ print 'Tools/Scripts -folder (where this script is located).' sys.exit() + # Check 64-bit ShellExtension is compiled + if check_x64shellext() == False: + sys.exit() + # Create the distribution folder if it doesn't exist try: if not os.path.exists(dist_root_folder): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2008-12-17 23:28:50
|
Revision: 6186 http://winmerge.svn.sourceforge.net/winmerge/?rev=6186&view=rev Author: kimmov Date: 2008-12-17 23:28:46 +0000 (Wed, 17 Dec 2008) Log Message: ----------- BuildScript: Cleanup, build and copy Unicode version of heksedit dll (hekseditU.dll). Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-12-17 21:51:01 UTC (rev 6185) +++ trunk/Tools/Scripts/create_release.py 2008-12-17 23:28:46 UTC (rev 6186) @@ -42,6 +42,7 @@ # - create installer to correct folder # - make installer compile less verbose # - make building exes and dlls also less verbose +# - builds libraries twice: as independent project and from executable project (by prelink.bat) # Tools needed: # - Python 2.5 :) @@ -135,8 +136,13 @@ if os.path.exists('build/scew'): shutil.rmtree('build/scew', True) + print 'Remove heksedit files' if os.path.exists('build/heksedit'): shutil.rmtree('build/heksedit', True) + if os.path.exists('build/mergerelease/heksedit.dll'): + os.remove('build/mergerelease/heksedit.dll') + if os.path.exists('build/mergerelease/hekseditU.dll'): + os.remove('build/mergerelease/hekseditU.dll') if os.path.exists('build/Manual'): shutil.rmtree('build/Manual',True) @@ -238,6 +244,7 @@ print 'Build heksedit library...' solution_path = os.path.join(cur_path, 'Externals/heksedit/heksedit.vcproj') call([vs_cmd, solution_path, '/rebuild', 'Release'], shell=True) + call([vs_cmd, solution_path, '/rebuild', 'UnicodeRelease'], shell=True) def build_targets(): """Builds all WinMerge targets.""" @@ -336,6 +343,7 @@ shutil.copy('build/pcre/pcre.dll', bin_folder) shutil.copy('build/expat/libexpat.dll', bin_folder) shutil.copy('build/heksedit/heksedit.dll', bin_folder) + shutil.copy('build/heksedit/hekseditU.dll', bin_folder) copy_po_files(lang_folder) filter_orig = os.path.join(dist_src_folder, 'Filters') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2008-12-18 20:11:04
|
Revision: 6190 http://winmerge.svn.sourceforge.net/winmerge/?rev=6190&view=rev Author: kimmov Date: 2008-12-18 20:10:58 +0000 (Thu, 18 Dec 2008) Log Message: ----------- Buildscript: Fix a traceback when run without arguments. If no version number or ini file given, print a warning that 0.0.0.0 will be used. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-12-18 17:25:13 UTC (rev 6189) +++ trunk/Tools/Scripts/create_release.py 2008-12-18 20:10:58 UTC (rev 6190) @@ -455,9 +455,12 @@ print ' -l, --libraries build libraries (expat, scew, pcre) only' print ' -f:, --file= filename set the version number ini file' print ' For example: create_release -f: versions.ini' + print ' If no version number (-v) or INI file (-f) given, 0.0.0.0 will be' + print ' used as version number.' def main(argv): - version = '0.0.0.0' + version = '' + ver_file = '' if len(argv) > 0: opts, args = getopt.getopt(argv, "hclv:f:", [ "help", "cleanup", "libraries", "version=", "file="]) @@ -479,6 +482,11 @@ if opt in ("-f", "--file"): ver_file = arg + if ver_file == '' and version == '': + print 'WARNING: No version number or INI file given, using default' + print ' version number of 0.0.0.0 where applicable in this script.' + version = '0.0.0.0' + # Check all required tools are found (script configuration) if check_tools() == False: sys.exit() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2008-12-18 20:42:01
|
Revision: 6191 http://winmerge.svn.sourceforge.net/winmerge/?rev=6191&view=rev Author: kimmov Date: 2008-12-18 20:41:55 +0000 (Thu, 18 Dec 2008) Log Message: ----------- BuildScript: Fix printed help message about giving parameters. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-12-18 20:10:58 UTC (rev 6190) +++ trunk/Tools/Scripts/create_release.py 2008-12-18 20:41:55 UTC (rev 6191) @@ -446,15 +446,17 @@ return True def usage(): + """Print script usage information.""" + print 'WinMerge release script.' - print 'Usage: create_release [-h] [-v: n] [-c] [-l]' + print 'Usage: create_release [-h] [-f file] [-v n] [-c] [-l]' print ' where:' print ' -h, --help print this help' - print ' -v: n, --version= n set release version' + print ' -v n, --version=n set release version' print ' -c, --cleanup clean up build files (temp files, libraries, executables)' print ' -l, --libraries build libraries (expat, scew, pcre) only' - print ' -f:, --file= filename set the version number ini file' - print ' For example: create_release -f: versions.ini' + print ' -f file, --file=filename set the version number ini file' + print ' For example: create_release -f versions.ini' print ' If no version number (-v) or INI file (-f) given, 0.0.0.0 will be' print ' used as version number.' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2008-12-20 14:31:19
|
Revision: 6209 http://winmerge.svn.sourceforge.net/winmerge/?rev=6209&view=rev Author: kimmov Date: 2008-12-20 14:31:13 +0000 (Sat, 20 Dec 2008) Log Message: ----------- BuildScript: Documentation fix from Matthias Mayer. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-12-20 11:43:22 UTC (rev 6208) +++ trunk/Tools/Scripts/create_release.py 2008-12-20 14:31:13 UTC (rev 6209) @@ -45,8 +45,8 @@ # - builds libraries twice: as independent project and from executable project (by prelink.bat) # Tools needed: -# - Python 2.5 :) -# - Subversion command line binaries +# - Python 2.5 or 2.6 :) +# - Subversion command line binaries from http://subversion.tigris.org/ # - InnoSetup 5 # There are lots of other dependencies, they are documented in /Docs/Developers documents. Especially be sure to read: # - Compiling.html for compiling executables and dlls This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2008-12-21 12:55:22
|
Revision: 6214 http://winmerge.svn.sourceforge.net/winmerge/?rev=6214&view=rev Author: kimmov Date: 2008-12-21 11:38:20 +0000 (Sun, 21 Dec 2008) Log Message: ----------- BuildScript: add repository URL variable which points to repository URL from where to export sources. Using 'workspace' as URL exports from current workspace. Idea and initial patch from Matthias Mayer. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-12-21 00:22:02 UTC (rev 6213) +++ trunk/Tools/Scripts/create_release.py 2008-12-21 11:38:20 UTC (rev 6214) @@ -60,13 +60,18 @@ # Set these variables to match your environment and folders you want to use # Subversion binary - set this to absolute path to svn.exe -svn_binary = 'C:\\Program Files\\Subversion\\bin\\svn.exe' +svn_binary = r'C:\Program Files\Subversion\bin\svn.exe' # Visual Studio path -vs_path = 'C:\\Program Files\\Microsoft Visual Studio .NET 2003' +vs_path = r'C:\Program Files\Microsoft Visual Studio .NET 2003' # InnoSetup installation path innosetup_path = 'C:\\Program Files\\Inno Setup 5' # Relative path where to create a release folder dist_root_folder = 'distrib' +# Source location +# Give URL to SVN repository to export source from SVN or 'workspace' to export +# from workspace +source_location = 'https://winmerge.svn.sourceforge.net/svnroot/winmerge/trunk' +#source_location ='workspace' # END CONFIGURATION - you don't need to edit anything below... @@ -204,7 +209,11 @@ """Exports sources to distribution folder.""" print 'Exporting sources to ' + dist_src_folder - call([svn_binary, 'export', '--non-interactive', '.', dist_src_folder]) + print 'Exporting from: ' + source_location + if source_location == 'workspace': + call([svn_binary, 'export', '--non-interactive', '.', dist_src_folder]) + else: + call([svn_binary, 'export', '--non-interactive', source_location, dist_src_folder]) def cleanup_dlls_from_plugins(dist_src_folder): """Remove compiled plugin dll files from source distribution folders.""" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2008-12-29 18:30:08
|
Revision: 6253 http://winmerge.svn.sourceforge.net/winmerge/?rev=6253&view=rev Author: kimmov Date: 2008-12-29 18:30:05 +0000 (Mon, 29 Dec 2008) Log Message: ----------- PATCH: [ 2473141 ] Improvements to releasing Patch from Matthias Mayer, some modification by Kimmo. BuildScript_optionsIni.zip Read/write tool configuration from Tools.ini file. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-12-29 09:11:56 UTC (rev 6252) +++ trunk/Tools/Scripts/create_release.py 2008-12-29 18:30:05 UTC (rev 6253) @@ -1,6 +1,8 @@ # # The MIT License # Copyright (c) 2007-2008 Kimmo Varis +# Copyright (c) 2008 Matthias Mayer +# # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files # (the "Software"), to deal in the Software without restriction, including @@ -62,9 +64,9 @@ # Subversion binary - set this to absolute path to svn.exe svn_binary = r'C:\Program Files\Subversion\bin\svn.exe' # Visual Studio path -vs_path = r'C:\Program Files\Microsoft Visual Studio .NET 2003' +#vs_path = r'C:\Program Files\Microsoft Visual Studio .NET 2003' # InnoSetup installation path -innosetup_path = 'C:\\Program Files\\Inno Setup 5' +#innosetup_path = 'C:\\Program Files\\Inno Setup 5' # Relative path where to create a release folder dist_root_folder = 'distrib' # Source location @@ -82,7 +84,77 @@ import getopt import shutil import SetVersions +import ConfigParser +class settings: + def __init__(self): + self.callpath = ' ' + self.svn_binary = r'C:\Program Files\Subversion\bin\svn.exe' + self.vs_path = ' ' + self.vs_path7 = r'C:\Program Files\Microsoft Visual Studio .NET 2003' + self.vs_path8 = r'C:\Program Files\Microsoft Visual Studio 8.0' + self.vs_path9 = r'C:\Program Files\Microsoft Visual Studio 9.0' + self.innosetup_path = r'C:\Program Files\Inno Setup 5' + self.winmerge_iss = 'WinMerge.iss' #filename only + self.winmerge_iss_path = 'WinMerge.iss' #including path + self.source = 'workspace' + self.version = '' + self.vs_version = 2003 + + def create_ini(self, filename): + config = ConfigParser.RawConfigParser() + sect = 'RUNTIME' + if os.path.exists('Tools.ini'): + config.readfp(open(filename)) + if not config.has_section(sect): + config.add_section(sect) + if not config.has_option(sect, 'type'): + config.set(sect, 'type', 'VSXXXX') + if not config.has_option(sect, 'VSStudio'): + config.set(sect, 'VSStudio', '2003') + if not config.has_option(sect, 'Source'): + config.set(sect, 'Source', 'workspace') + if not config.has_option(sect, 'svn_binary'): + config.set(sect, 'svn_binary', r'C:\Program Files\Subversion\bin\svn.exe') + if not config.has_option(sect, 'vs_path7'): + config.set(sect, 'vs_path7', r'C:\Program Files\Microsoft Visual Studio .NET 2003') + if not config.has_option(sect, 'vs_path8'): + config.set(sect, 'vs_path8', r'C:\Programme\Microsoft Visual Studio 8.0') + if not config.has_option(sect, 'vs_path9'): + config.set(sect, 'vs_path9', r'C:\Programme\Microsoft Visual Studio 9.0') + if not config.has_option(sect, 'innosetup_path'): + config.set(sect, 'innosetup_path', r'C:\Programme\Inno Setup 5') + + # Writing our configuration file to 'Tools.ini' + with open(filename, 'w') as configfile: + config.write(configfile) + return + + def read_ini(self): + filename ='Tools.ini' + config = ConfigParser.RawConfigParser() + if not os.path.exists(filename): + self.create_ini(filename) + + config.readfp(open(filename)) + self.svn_binary = config.get('RUNTIME', 'svn_binary') #r'C:\Program Files\Subversion\bin\svn.exe' + self.vs_path7 = config.get('RUNTIME', 'vs_path7') #r'C:\Program Files\Microsoft Visual Studio .NET 2003' + self.vs_path8 = config.get('RUNTIME', 'vs_path8') #r'C:\Programme\Microsoft Visual Studio 8.0' + self.vs_path9 = config.get('RUNTIME', 'vs_path9') #r'C:\Programme\Microsoft Visual Studio 9.0' + self.innosetup_path = config.get('RUNTIME', 'innosetup_path') #r'C:\Programme\Inno Setup 5' + self.source = config.get('RUNTIME', 'Source') # 'workspace' + self.vs_version = config.getint('RUNTIME', 'VSStudio') #2003 + + if self.vs_version ==2003: + self.vs_path =self.vs_path7 + elif self.vs_version ==2005: + self.vs_path =self.vs_path8 + elif self.vs_version ==2008: + self.vs_path =self.vs_path9 + +# global settings class instance +prog = settings() + def get_vs_ide_bin(): """Gets a full path to the Visual Studio IDE executable to run.""" @@ -90,7 +162,7 @@ rel_path = 'Common7/IDE' vs_bin = 'devenv.com' - vs_ide_path = os.path.join(vs_path, rel_path) + vs_ide_path = os.path.join(prog.vs_path, rel_path) vs_cmd_path = os.path.join(vs_ide_path, vs_bin) return vs_cmd_path @@ -209,11 +281,11 @@ """Exports sources to distribution folder.""" print 'Exporting sources to ' + dist_src_folder - print 'Exporting from: ' + source_location - if source_location == 'workspace': - call([svn_binary, 'export', '--non-interactive', '.', dist_src_folder]) + print 'Exporting from: ' + prog.source + if prog.source == 'workspace': + call([prog.svn_binary, 'export', '--non-interactive', '.', dist_src_folder]) else: - call([svn_binary, 'export', '--non-interactive', source_location, dist_src_folder]) + call([prog.svn_binary, 'export', '--non-interactive', source_location, dist_src_folder]) def cleanup_dlls_from_plugins(dist_src_folder): """Remove compiled plugin dll files from source distribution folders.""" @@ -306,15 +378,17 @@ def build_innosetup_installer(target_folder): """Builds the InnoSetup installer for the WinMerge.""" - innosetup_exe = os.path.join(innosetup_path, 'iscc.exe') + innosetup_exe = os.path.join(prog.innosetup_path, 'iscc.exe') cur_path = os.getcwd() - winmerge_iss = os.path.join(cur_path, 'Installer\\InnoSetup\\WinMerge.iss') + + prog.winmerge_iss_path = os.path.join(cur_path, 'Installer\\InnoSetup\\' + prog.winmerge_iss) + #output_switch = '/O"' + target_folder + '"' print 'Build Innosetup installer...' # Should be able to give folder for created file and Q switch to make build quiet #call([innosetup_exe, '/Q', output_switch, winmerge_iss]) - call([innosetup_exe, winmerge_iss]) + call([innosetup_exe, prog.winmerge_iss_path]) def get_and_create_bin_folder(dist_folder, folder): """Formats and creates binary distribution folder.""" @@ -424,9 +498,9 @@ def check_tools(): """Check that needed external tools can be found.""" - if not os.path.exists(svn_binary): + if not os.path.exists(prog.svn_binary): print 'Subversion binary could not be found from:' - print svn_binary + print prog.svn_binary print 'Please check script configuration and/or make sure Subversion is installed.' return False @@ -470,7 +544,6 @@ print ' used as version number.' def main(argv): - version = '' ver_file = '' if len(argv) > 0: opts, args = getopt.getopt(argv, "hclv:f:", [ "help", "cleanup", "libraries", @@ -481,8 +554,8 @@ usage() sys.exit() if opt in ("-v", "--version"): - version = arg - print "Start building WinMerge release version " + version + prog.version = arg + print "Start building WinMerge release version " + prog.version if opt in ("-c", "--cleanup"): if cleanup_build() == True: print 'Cleanup done.' @@ -492,16 +565,12 @@ sys.exit() if opt in ("-f", "--file"): ver_file = arg - - if ver_file == '' and version == '': + + if ver_file == '' and prog.version == '': print 'WARNING: No version number or INI file given, using default' print ' version number of 0.0.0.0 where applicable in this script.' - version = '0.0.0.0' + prog.version = '0.0.0.0' - # Check all required tools are found (script configuration) - if check_tools() == False: - sys.exit() - # Check we are running from correct folder (and go to root if found) if find_winmerge_root() == False: print 'ERROR: Cannot find WinMerge root folder!' @@ -510,6 +579,14 @@ print 'Tools/Scripts -folder (where this script is located).' sys.exit() + # now read settings from Tools.ini + prog.read_ini() + print 'Compiler: ' + prog.vs_path + + # Check all required tools are found (script configuration) + if check_tools() == False: + sys.exit() + # Check 64-bit ShellExtension is compiled if check_x64shellext() == False: sys.exit() @@ -530,10 +607,10 @@ if len(ver_file) > 0: version_read = get_product_version(ver_file) if len(version_read) > 0: - version = version_read + prog.version = version_read set_resource_version(ver_file) - version_folder = 'WinMerge-' + version + version_folder = 'WinMerge-' + prog.version dist_folder = get_and_create_dist_folder(version_folder) if dist_folder == '': sys.exit(1) @@ -553,7 +630,7 @@ # and folders are copied from source folders to binary folders. cleanup_dlls_from_plugins(dist_src_folder) - runtimes_folder = get_and_create_runtimes_folder(dist_folder, version) + runtimes_folder = get_and_create_runtimes_folder(dist_folder, prog.version) create_runtime_folder(runtimes_folder) print 'WinMerge release script ready!' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2008-12-30 08:56:30
|
Revision: 6254 http://winmerge.svn.sourceforge.net/winmerge/?rev=6254&view=rev Author: kimmov Date: 2008-12-30 08:56:24 +0000 (Tue, 30 Dec 2008) Log Message: ----------- PATCH: [ 2473141 ] Improvements to releasing BuildScript_createIni.patch Create the ini file and then exit. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-12-29 18:30:05 UTC (rev 6253) +++ trunk/Tools/Scripts/create_release.py 2008-12-30 08:56:24 UTC (rev 6254) @@ -88,7 +88,7 @@ class settings: def __init__(self): - self.callpath = ' ' + self.rootpath = '' self.svn_binary = r'C:\Program Files\Subversion\bin\svn.exe' self.vs_path = ' ' self.vs_path7 = r'C:\Program Files\Microsoft Visual Studio .NET 2003' @@ -128,13 +128,17 @@ # Writing our configuration file to 'Tools.ini' with open(filename, 'w') as configfile: config.write(configfile) - return - def read_ini(self): - filename ='Tools.ini' + def read_ini(self, filename): config = ConfigParser.RawConfigParser() if not os.path.exists(filename): + # If the config file didn't exist, we create a new file and ask + # user to edit the config and re-run the script. This is because + # our defaults probably don't match user's environment. self.create_ini(filename) + print 'New configuration file created: ' + filename + print 'Please edit the file to match your configuration and re-run the script.' + sys.exit() config.readfp(open(filename)) self.svn_binary = config.get('RUNTIME', 'svn_binary') #r'C:\Program Files\Subversion\bin\svn.exe' @@ -579,10 +583,14 @@ print 'Tools/Scripts -folder (where this script is located).' sys.exit() - # now read settings from Tools.ini - prog.read_ini() + # Now read settings from Tools.ini + prog.read_ini('Tools.ini') print 'Compiler: ' + prog.vs_path + print 'Path:' + os.getcwd() + # Remember the rootfolder + prog.rootpath = os.getcwd() + # Check all required tools are found (script configuration) if check_tools() == False: sys.exit() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2008-12-31 09:12:13
|
Revision: 6262 http://winmerge.svn.sourceforge.net/winmerge/?rev=6262&view=rev Author: kimmov Date: 2008-12-31 09:12:03 +0000 (Wed, 31 Dec 2008) Log Message: ----------- PATCH: [ 2473141 ] Improvements to releasing BuildScript_check_manualtoolsi.patch Check that manual build tools are installed. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-12-31 00:35:53 UTC (rev 6261) +++ trunk/Tools/Scripts/create_release.py 2008-12-31 09:12:03 UTC (rev 6262) @@ -45,11 +45,17 @@ # - make installer compile less verbose # - make building exes and dlls also less verbose # - builds libraries twice: as independent project and from executable project (by prelink.bat) +# - check Python version +# - check JRE is installed +# - check InnoSetup is installed # Tools needed: +# - Visual Studio 2003 or later # - Python 2.5 or 2.6 :) # - Subversion command line binaries from http://subversion.tigris.org/ # - InnoSetup 5 +# - Manual build tools (in Developer tools at downloads) +# - Java runtime environment (JRE) (Manual build tools need it) # There are lots of other dependencies, they are documented in /Docs/Developers documents. Especially be sure to read: # - Compiling.html for compiling executables and dlls # - readme-manual.html for building the manual @@ -62,7 +68,7 @@ # Set these variables to match your environment and folders you want to use # Subversion binary - set this to absolute path to svn.exe -svn_binary = r'C:\Program Files\Subversion\bin\svn.exe' +#svn_binary = r'C:\Program Files\Subversion\bin\svn.exe' # Visual Studio path #vs_path = r'C:\Program Files\Microsoft Visual Studio .NET 2003' # InnoSetup installation path @@ -72,7 +78,7 @@ # Source location # Give URL to SVN repository to export source from SVN or 'workspace' to export # from workspace -source_location = 'https://winmerge.svn.sourceforge.net/svnroot/winmerge/trunk' +#source_location = 'https://winmerge.svn.sourceforge.net/svnroot/winmerge/trunk' #source_location ='workspace' # END CONFIGURATION - you don't need to edit anything below... @@ -514,6 +520,21 @@ print vs_cmd print 'Please check script configuration.' return False + + pathhhc = os.path.join(prog.callpath, '/Docs/Users/Manual/build/hhc/hhc.exe') + folderdtd = os.path.join(prog.callpath, '/Docs/Users/Manual/build/dtd') + foldersaxon = os.path.join(prog.callpath, '/Docs/Users/Manual/build/saxon') + folderxerc = os.path.join(prog.callpath, '/Docs/Users/Manual/build/xerces') + folderxsl = os.path.join(prog.callpath, '/Docs/Users/Manual/build/xsl') + + if not os.path.exist(pathhhc) or not os.path.exist(folderdtd) or \ + not os.path.exist(foldersaxon) or not os.path.exist(folderxerc) or \ + not os.path.exist(folderxsl): + print 'Cannot find manual build tools' + print 'Please download and install manual build tools from:' + print 'https://sourceforge.net/project/showfiles.php?group_id=13216' + print 'See also Docs/Developers/readme-manual.html' + return False return True def check_x64shellext(): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2008-12-31 12:56:08
|
Revision: 6263 http://winmerge.svn.sourceforge.net/winmerge/?rev=6263&view=rev Author: kimmov Date: 2008-12-31 12:56:00 +0000 (Wed, 31 Dec 2008) Log Message: ----------- BuildScript: Small cleanup for Tools.ini create code. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2008-12-31 09:12:03 UTC (rev 6262) +++ trunk/Tools/Scripts/create_release.py 2008-12-31 12:56:00 UTC (rev 6263) @@ -96,7 +96,7 @@ def __init__(self): self.rootpath = '' self.svn_binary = r'C:\Program Files\Subversion\bin\svn.exe' - self.vs_path = ' ' + self.vs_path = '' self.vs_path7 = r'C:\Program Files\Microsoft Visual Studio .NET 2003' self.vs_path8 = r'C:\Program Files\Microsoft Visual Studio 8.0' self.vs_path9 = r'C:\Program Files\Microsoft Visual Studio 9.0' @@ -117,19 +117,19 @@ if not config.has_option(sect, 'type'): config.set(sect, 'type', 'VSXXXX') if not config.has_option(sect, 'VSStudio'): - config.set(sect, 'VSStudio', '2003') + config.set(sect, 'VSStudio', self.vs_version) if not config.has_option(sect, 'Source'): - config.set(sect, 'Source', 'workspace') + config.set(sect, 'Source', self.source) if not config.has_option(sect, 'svn_binary'): - config.set(sect, 'svn_binary', r'C:\Program Files\Subversion\bin\svn.exe') + config.set(sect, 'svn_binary', self.svn_binary) if not config.has_option(sect, 'vs_path7'): - config.set(sect, 'vs_path7', r'C:\Program Files\Microsoft Visual Studio .NET 2003') + config.set(sect, 'vs_path7', self.vs_path7) if not config.has_option(sect, 'vs_path8'): - config.set(sect, 'vs_path8', r'C:\Programme\Microsoft Visual Studio 8.0') + config.set(sect, 'vs_path8', self.vs_path8) if not config.has_option(sect, 'vs_path9'): - config.set(sect, 'vs_path9', r'C:\Programme\Microsoft Visual Studio 9.0') + config.set(sect, 'vs_path9', self.vs_path9) if not config.has_option(sect, 'innosetup_path'): - config.set(sect, 'innosetup_path', r'C:\Programme\Inno Setup 5') + config.set(sect, 'innosetup_path', self.innosetup_path) # Writing our configuration file to 'Tools.ini' with open(filename, 'w') as configfile: @@ -147,13 +147,13 @@ sys.exit() config.readfp(open(filename)) - self.svn_binary = config.get('RUNTIME', 'svn_binary') #r'C:\Program Files\Subversion\bin\svn.exe' - self.vs_path7 = config.get('RUNTIME', 'vs_path7') #r'C:\Program Files\Microsoft Visual Studio .NET 2003' - self.vs_path8 = config.get('RUNTIME', 'vs_path8') #r'C:\Programme\Microsoft Visual Studio 8.0' - self.vs_path9 = config.get('RUNTIME', 'vs_path9') #r'C:\Programme\Microsoft Visual Studio 9.0' - self.innosetup_path = config.get('RUNTIME', 'innosetup_path') #r'C:\Programme\Inno Setup 5' - self.source = config.get('RUNTIME', 'Source') # 'workspace' - self.vs_version = config.getint('RUNTIME', 'VSStudio') #2003 + self.svn_binary = config.get('RUNTIME', 'svn_binary') + self.vs_path7 = config.get('RUNTIME', 'vs_path7') + self.vs_path8 = config.get('RUNTIME', 'vs_path8') + self.vs_path9 = config.get('RUNTIME', 'vs_path9') + self.innosetup_path = config.get('RUNTIME', 'innosetup_path') + self.source = config.get('RUNTIME', 'Source') + self.vs_version = config.getint('RUNTIME', 'VSStudio') if self.vs_version ==2003: self.vs_path =self.vs_path7 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2009-01-15 20:21:16
|
Revision: 6336 http://winmerge.svn.sourceforge.net/winmerge/?rev=6336&view=rev Author: kimmov Date: 2009-01-15 20:21:07 +0000 (Thu, 15 Jan 2009) Log Message: ----------- Buildscript: Fix checking for manual tools. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2009-01-15 19:58:51 UTC (rev 6335) +++ trunk/Tools/Scripts/create_release.py 2009-01-15 20:21:07 UTC (rev 6336) @@ -508,6 +508,7 @@ def check_tools(): """Check that needed external tools can be found.""" + global prog if not os.path.exists(prog.svn_binary): print 'Subversion binary could not be found from:' print prog.svn_binary @@ -521,15 +522,15 @@ print 'Please check script configuration.' return False - pathhhc = os.path.join(prog.callpath, '/Docs/Users/Manual/build/hhc/hhc.exe') - folderdtd = os.path.join(prog.callpath, '/Docs/Users/Manual/build/dtd') - foldersaxon = os.path.join(prog.callpath, '/Docs/Users/Manual/build/saxon') - folderxerc = os.path.join(prog.callpath, '/Docs/Users/Manual/build/xerces') - folderxsl = os.path.join(prog.callpath, '/Docs/Users/Manual/build/xsl') + pathhhc = os.path.join(prog.rootpath, 'Docs/Users/Manual/build/hhc/hhc.exe') + folderdtd = os.path.join(prog.rootpath, 'Docs/Users/Manual/build/dtd') + foldersaxon = os.path.join(prog.rootpath, 'Docs/Users/Manual/build/saxon') + folderxerc = os.path.join(prog.rootpath, 'Docs/Users/Manual/build/xerces') + folderxsl = os.path.join(prog.rootpath, 'Docs/Users/Manual/build/xsl') - if not os.path.exist(pathhhc) or not os.path.exist(folderdtd) or \ - not os.path.exist(foldersaxon) or not os.path.exist(folderxerc) or \ - not os.path.exist(folderxsl): + if not os.path.exists(pathhhc) or not os.path.exists(folderdtd) or \ + not os.path.exists(foldersaxon) or not os.path.exists(folderxerc) or \ + not os.path.exists(folderxsl): print 'Cannot find manual build tools' print 'Please download and install manual build tools from:' print 'https://sourceforge.net/project/showfiles.php?group_id=13216' @@ -569,6 +570,7 @@ print ' used as version number.' def main(argv): + global prog ver_file = '' if len(argv) > 0: opts, args = getopt.getopt(argv, "hclv:f:", [ "help", "cleanup", "libraries", This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2009-01-15 20:31:10
|
Revision: 6338 http://winmerge.svn.sourceforge.net/winmerge/?rev=6338&view=rev Author: kimmov Date: 2009-01-15 20:31:01 +0000 (Thu, 15 Jan 2009) Log Message: ----------- Buildscript: remove creating runtime folders as we don't distribute runtimes in separate packages anymore. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2009-01-15 20:24:22 UTC (rev 6337) +++ trunk/Tools/Scripts/create_release.py 2009-01-15 20:31:01 UTC (rev 6338) @@ -470,22 +470,6 @@ if (file_ext == '.po'): shutil.copy(fullpath, dest_folder) -def get_and_create_runtimes_folder(dist_folder, version): - """Formats and creates runtimes distribution folder.""" - - runtimes_folder = os.path.join(dist_folder, 'Runtimes-' + version) - print 'Create runtimes distribution folder: ' + runtimes_folder - os.mkdir(runtimes_folder) - return runtimes_folder - -def create_runtime_folder(runtimes_folder): - """Copy runtime files to distribution folder.""" - - shutil.copy('Installer/Runtimes/mfc71.dll', runtimes_folder) - shutil.copy('Installer/Runtimes/mfc71u.dll', runtimes_folder) - shutil.copy('Installer/Runtimes/msvcp71.dll', runtimes_folder) - shutil.copy('Installer/Runtimes/msvcr71.dll', runtimes_folder) - def find_winmerge_root(): """Find WinMerge tree root folder from where to run rest of the script. @@ -661,9 +645,6 @@ # and folders are copied from source folders to binary folders. cleanup_dlls_from_plugins(dist_src_folder) - runtimes_folder = get_and_create_runtimes_folder(dist_folder, prog.version) - create_runtime_folder(runtimes_folder) - print 'WinMerge release script ready!' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2009-04-16 07:58:04
|
Revision: 6658 http://winmerge.svn.sourceforge.net/winmerge/?rev=6658&view=rev Author: kimmov Date: 2009-04-16 07:57:56 +0000 (Thu, 16 Apr 2009) Log Message: ----------- Buildscript: Don't build and package heksedit from WinMerge source tree. Heksedit will be used from stand-alone Frhed installation in future releases. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2009-04-16 07:55:06 UTC (rev 6657) +++ trunk/Tools/Scripts/create_release.py 2009-04-16 07:57:56 UTC (rev 6658) @@ -1,6 +1,6 @@ # # The MIT License -# Copyright (c) 2007-2008 Kimmo Varis +# Copyright (c) 2007-2009 Kimmo Varis # Copyright (c) 2008 Matthias Mayer # # Permission is hereby granted, free of charge, to any person obtaining @@ -223,14 +223,6 @@ if os.path.exists('build/scew'): shutil.rmtree('build/scew', True) - print 'Remove heksedit files' - if os.path.exists('build/heksedit'): - shutil.rmtree('build/heksedit', True) - if os.path.exists('build/mergerelease/heksedit.dll'): - os.remove('build/mergerelease/heksedit.dll') - if os.path.exists('build/mergerelease/hekseditU.dll'): - os.remove('build/mergerelease/hekseditU.dll') - if os.path.exists('build/Manual'): shutil.rmtree('build/Manual',True) @@ -332,11 +324,6 @@ #print solution_path call([vs_cmd, solution_path, '/rebuild', 'MinSizeRel'], shell=True) - print 'Build heksedit library...' - solution_path = os.path.join(cur_path, 'Externals/heksedit/heksedit.vcproj') - call([vs_cmd, solution_path, '/rebuild', 'Release'], shell=True) - call([vs_cmd, solution_path, '/rebuild', 'UnicodeRelease'], shell=True) - def build_targets(): """Builds all WinMerge targets.""" @@ -435,8 +422,6 @@ shutil.copy('build/pcre/pcre.dll', bin_folder) shutil.copy('build/expat/libexpat.dll', bin_folder) - shutil.copy('build/heksedit/heksedit.dll', bin_folder) - shutil.copy('build/heksedit/hekseditU.dll', bin_folder) copy_po_files(lang_folder) filter_orig = os.path.join(dist_src_folder, 'Filters') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2009-05-23 08:16:44
|
Revision: 6776 http://winmerge.svn.sourceforge.net/winmerge/?rev=6776&view=rev Author: kimmov Date: 2009-05-23 08:16:38 +0000 (Sat, 23 May 2009) Log Message: ----------- Buildscript: Adopt to new translation folder for PO files. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2009-05-23 05:15:23 UTC (rev 6775) +++ trunk/Tools/Scripts/create_release.py 2009-05-23 08:16:38 UTC (rev 6776) @@ -253,7 +253,7 @@ # Scripts must be run from the directory where they reside curdir = os.getcwd() - os.chdir('Src/Languages') + os.chdir('Translations/WinMerge') call(['cscript', '/nologo', 'CreateMasterPotFile.vbs']) call(['cscript', '/nologo', 'UpdatePoFilesFromPotFile.vbs']) os.chdir(curdir) @@ -444,7 +444,7 @@ def copy_po_files(dest_folder): """Copies all PO files to destination folder.""" - lang_folder = 'Src/Languages' + lang_folder = 'Translations/WinMerge' files = os.listdir(lang_folder) print 'Copying PO files to binary folder...' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2009-05-23 10:49:25
|
Revision: 6778 http://winmerge.svn.sourceforge.net/winmerge/?rev=6778&view=rev Author: kimmov Date: 2009-05-23 10:49:13 +0000 (Sat, 23 May 2009) Log Message: ----------- Buildscript: check success of build- and some other commands. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2009-05-23 10:29:57 UTC (rev 6777) +++ trunk/Tools/Scripts/create_release.py 2009-05-23 10:49:13 UTC (rev 6778) @@ -254,10 +254,17 @@ # Scripts must be run from the directory where they reside curdir = os.getcwd() os.chdir('Translations/WinMerge') - call(['cscript', '/nologo', 'CreateMasterPotFile.vbs']) - call(['cscript', '/nologo', 'UpdatePoFilesFromPotFile.vbs']) + retval = call(['cscript', '/nologo', 'CreateMasterPotFile.vbs']) + if retval == 0: + retval = call(['cscript', '/nologo', 'UpdatePoFilesFromPotFile.vbs']) os.chdir(curdir) + if retval == 0: + return True + else: + print 'ERROR: Updating translations failed!' + return False + def get_and_create_dist_folder(folder): """Formats a folder name for version-specific distribution folder and creates the folder.""" @@ -284,10 +291,16 @@ print 'Exporting sources to ' + dist_src_folder print 'Exporting from: ' + prog.source + retval = 0 if prog.source == 'workspace': - call([prog.svn_binary, 'export', '--non-interactive', '.', dist_src_folder]) + retval = call([prog.svn_binary, 'export', '--non-interactive', '.', dist_src_folder]) else: - call([prog.svn_binary, 'export', '--non-interactive', source_location, dist_src_folder]) + retval = call([prog.svn_binary, 'export', '--non-interactive', source_location, dist_src_folder]) + if retval == 0: + return True + else: + print 'Error exporting sources! SVN return value: ' + retval + return False def cleanup_dlls_from_plugins(dist_src_folder): """Remove compiled plugin dll files from source distribution folders.""" @@ -331,8 +344,10 @@ vs_cmd = get_vs_ide_bin() - build_winmerge(vs_cmd) - build_shellext(vs_cmd) + ret = build_winmerge(vs_cmd) + if ret: + ret = build_shellext(vs_cmd) + return ret def build_winmerge(vs_cmd): """Builds WinMerge executable targets.""" @@ -343,9 +358,19 @@ # devenv Src\Merge.dsp /rebuild Release print 'Build WinMerge executables...' - call([vs_cmd, solution_path, '/rebuild', 'Release'], shell=True) - call([vs_cmd, solution_path, '/rebuild', 'UnicodeRelease'], shell=True) + ret = call([vs_cmd, solution_path, '/rebuild', 'Release'], shell = True) + if ret == 0: + ret = call([vs_cmd, solution_path, '/rebuild', 'UnicodeRelease'], shell = True) + else: + print 'ERROR: Failed to build ANSI release target of WinMerge!' + return False + if ret == 0: + return True + else: + print 'ERROR: Failed to build Unicode release target of WinMerge!' + return False + def build_shellext(vs_cmd): """Builds 32-bit ShellExtension.""" @@ -354,9 +379,19 @@ # devenv Src\Merge.dsp /rebuild Release print 'Build ShellExtension dlls...' - call([vs_cmd, solution_path, '/rebuild', 'Release MinDependency']) - call([vs_cmd, solution_path, '/rebuild', 'Unicode Release MinDependency']) + ret = call([vs_cmd, solution_path, '/rebuild', 'Release MinDependency']) + if ret == 0: + ret = call([vs_cmd, solution_path, '/rebuild', 'Unicode Release MinDependency']) + else: + print 'ERROR: Failed to build ANSI target of ShellExtension!' + return False + if ret == 0: + return True + else: + print 'ERROR: Failed to build Unicode target of ShellExtension!' + return False + def build_manual(): """Builds manual's HTML Help (CHM) version for user install and HTML version for the Web. HTML version is created with ads.""" @@ -615,11 +650,14 @@ if dist_folder == '': sys.exit(1) dist_src_folder = get_src_dist_folder(dist_folder, version_folder) - svn_export(dist_src_folder) + if svn_export(dist_src_folder) == False: + sys.exit(1) - setup_translations() + if setup_translations() == False: + sys.exit(1) - build_targets() + if build_targets() == False: + sys.exit(1) build_manual() build_innosetup_installer(dist_folder) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2009-05-28 21:07:45
|
Revision: 6800 http://winmerge.svn.sourceforge.net/winmerge/?rev=6800&view=rev Author: kimmov Date: 2009-05-28 21:07:32 +0000 (Thu, 28 May 2009) Log Message: ----------- BuildScript: Change default compiler to VS2005. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2009-05-28 20:45:15 UTC (rev 6799) +++ trunk/Tools/Scripts/create_release.py 2009-05-28 21:07:32 UTC (rev 6800) @@ -98,14 +98,14 @@ self.svn_binary = r'C:\Program Files\Subversion\bin\svn.exe' self.vs_path = '' self.vs_path7 = r'C:\Program Files\Microsoft Visual Studio .NET 2003' - self.vs_path8 = r'C:\Program Files\Microsoft Visual Studio 8.0' + self.vs_path8 = r'C:\Program Files\Microsoft Visual Studio 8' self.vs_path9 = r'C:\Program Files\Microsoft Visual Studio 9.0' self.innosetup_path = r'C:\Program Files\Inno Setup 5' self.winmerge_iss = 'WinMerge.iss' #filename only self.winmerge_iss_path = 'WinMerge.iss' #including path self.source = 'workspace' self.version = '' - self.vs_version = 2003 + self.vs_version = 2005 def create_ini(self, filename): config = ConfigParser.RawConfigParser() @@ -613,7 +613,7 @@ # Now read settings from Tools.ini prog.read_ini('Tools.ini') print 'Compiler: ' + prog.vs_path - print 'Path:' + os.getcwd() + print 'Path: ' + os.getcwd() # Remember the rootfolder prog.rootpath = os.getcwd() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2009-06-05 21:14:57
|
Revision: 6826 http://winmerge.svn.sourceforge.net/winmerge/?rev=6826&view=rev Author: kimmov Date: 2009-06-05 21:13:21 +0000 (Fri, 05 Jun 2009) Log Message: ----------- Buildscript: use global variables instead of settings class for version number and other WinMerge specific data. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2009-06-05 17:10:49 UTC (rev 6825) +++ trunk/Tools/Scripts/create_release.py 2009-06-05 21:13:21 UTC (rev 6826) @@ -67,19 +67,10 @@ # CONFIGURATION: # Set these variables to match your environment and folders you want to use -# Subversion binary - set this to absolute path to svn.exe -#svn_binary = r'C:\Program Files\Subversion\bin\svn.exe' -# Visual Studio path -#vs_path = r'C:\Program Files\Microsoft Visual Studio .NET 2003' -# InnoSetup installation path -#innosetup_path = 'C:\\Program Files\\Inno Setup 5' # Relative path where to create a release folder dist_root_folder = 'distrib' -# Source location -# Give URL to SVN repository to export source from SVN or 'workspace' to export -# from workspace -#source_location = 'https://winmerge.svn.sourceforge.net/svnroot/winmerge/trunk' -#source_location ='workspace' +root_path = '' +prog_ver = '' # END CONFIGURATION - you don't need to edit anything below... @@ -154,7 +145,7 @@ shutil.rmtree('build/scew', True) if os.path.exists('build/Manual'): - shutil.rmtree('build/Manual',True) + shutil.rmtree('build/Manual', True) except EnvironmentError, einst: print 'Error deleting files: ' @@ -179,7 +170,7 @@ SetVersions.process_versions(file) def setup_translations(): - """Updates translation files by running scripts in Src/Languages.""" + """Updates translation files by running scripts in Translations/WinMerge.""" # Scripts must be run from the directory where they reside curdir = os.getcwd() @@ -330,7 +321,7 @@ os.chdir('Docs/Users/Manual/build') print 'Build HTML Help (CHM) manual...' call(['build_htmlhelp.bat']) - + # HTML manual not build in trunk. #print 'Build HTML manual for Web with ads...' #call(['build_html.bat', 'withads']) @@ -456,11 +447,11 @@ print 'Please check script configuration.' return False - pathhhc = os.path.join(prog.rootpath, 'Docs/Users/Manual/build/hhc/hhc.exe') - folderdtd = os.path.join(prog.rootpath, 'Docs/Users/Manual/build/dtd') - foldersaxon = os.path.join(prog.rootpath, 'Docs/Users/Manual/build/saxon') - folderxerc = os.path.join(prog.rootpath, 'Docs/Users/Manual/build/xerces') - folderxsl = os.path.join(prog.rootpath, 'Docs/Users/Manual/build/xsl') + pathhhc = os.path.join(root_path, 'Docs/Users/Manual/build/hhc/hhc.exe') + folderdtd = os.path.join(root_path, 'Docs/Users/Manual/build/dtd') + foldersaxon = os.path.join(root_path, 'Docs/Users/Manual/build/saxon') + folderxerc = os.path.join(root_path, 'Docs/Users/Manual/build/xerces') + folderxsl = os.path.join(root_path, 'Docs/Users/Manual/build/xsl') if not os.path.exists(pathhhc) or not os.path.exists(folderdtd) or \ not os.path.exists(foldersaxon) or not os.path.exists(folderxerc) or \ @@ -515,8 +506,8 @@ usage() sys.exit() if opt in ("-v", "--version"): - prog.version = arg - print "Start building WinMerge release version " + prog.version + prog_version = arg + print "Start building WinMerge release version " + prog_version if opt in ("-c", "--cleanup"): if cleanup_build() == True: print 'Cleanup done.' @@ -527,10 +518,10 @@ if opt in ("-f", "--file"): ver_file = arg - if ver_file == '' and prog.version == '': + if ver_file == '' and prog_version == '': print 'WARNING: No version number or INI file given, using default' print ' version number of 0.0.0.0 where applicable in this script.' - prog.version = '0.0.0.0' + prog_version = '0.0.0.0' # Check we are running from correct folder (and go to root if found) if find_winmerge_root() == False: @@ -546,7 +537,7 @@ print 'Path: ' + os.getcwd() # Remember the rootfolder - prog.rootpath = os.getcwd() + root_path = os.getcwd() # Check all required tools are found (script configuration) if check_tools() == False: @@ -572,10 +563,10 @@ if len(ver_file) > 0: version_read = get_product_version(ver_file) if len(version_read) > 0: - prog.version = version_read + prog_version = version_read set_resource_version(ver_file) - version_folder = 'WinMerge-' + prog.version + version_folder = 'WinMerge-' + prog_version dist_folder = get_and_create_dist_folder(version_folder) if dist_folder == '': sys.exit(1) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2010-01-12 22:07:36
|
Revision: 7097 http://winmerge.svn.sourceforge.net/winmerge/?rev=7097&view=rev Author: kimmov Date: 2010-01-12 22:07:30 +0000 (Tue, 12 Jan 2010) Log Message: ----------- BuildScript: Update ShellExtension build folders. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2010-01-12 21:52:21 UTC (rev 7096) +++ trunk/Tools/Scripts/create_release.py 2010-01-12 22:07:30 UTC (rev 7097) @@ -1,6 +1,6 @@ # # The MIT License -# Copyright (c) 2007-2009 Kimmo Varis +# Copyright (c) 2007-2010 Kimmo Varis # Copyright (c) 2008 Matthias Mayer # # Permission is hereby granted, free of charge, to any person obtaining @@ -112,19 +112,19 @@ print 'Remove ANSI files' if os.path.exists('build/mergerelease/WinMerge.exe'): os.remove('build/mergerelease/WinMerge.exe') - if os.path.exists('build/mergerelease/ShellExtension.dll'): - os.remove('build/mergerelease/ShellExtension.dll') if os.path.exists('build/mergerelease/MergeLang.dll'): os.remove('build/mergerelease/MergeLang.dll') print 'Remove Unicode files' if os.path.exists('build/mergeunicoderelease/WinMergeU.exe'): os.remove('build/mergeunicoderelease/WinMergeU.exe') - if os.path.exists('build/mergeunicoderelease/ShellExtensionU.dll'): - os.remove('build/mergeunicoderelease/ShellExtensionU.dll') if os.path.exists('build/mergeunicoderelease/MergeLang.dll'): os.remove('build/mergeunicoderelease/MergeLang.dll') + print 'Remove ShellExtension files' + if os.path.exists('build/ShellExtension'): + shutil.rmtree('build/ShellExtension', True) + print 'Remove expat files' if os.path.exists('build/expat'): shutil.rmtree('build/expat', True) @@ -248,8 +248,8 @@ #print solution_path call([vs_cmd, solution_path, '/rebuild', 'Release'], shell=True) - print 'Build scew library...' - solution_path = os.path.join(cur_path, 'Externals/scew/win32/scew.vcproj') + print 'Build SCEW library...' + solution_path = os.path.join(cur_path, 'Externals/scew/win32/scew.sln') #print solution_path call([vs_cmd, solution_path, '/rebuild', 'Release'], shell=True) @@ -368,11 +368,11 @@ print 'Copying files to binary distribution folder...' shutil.copy('build/mergerelease/WinMerge.exe', bin_folder) shutil.copy('build/mergeunicoderelease/WinMergeU.exe', bin_folder) + shutil.copy('build/mergeunicoderelease/MergeLang.dll', bin_folder) - shutil.copy('build/mergerelease/ShellExtension.dll', bin_folder) - shutil.copy('build/mergeunicoderelease/ShellExtensionU.dll', bin_folder) - shutil.copy('build/mergeunicoderelease/MergeLang.dll', bin_folder) - shutil.copy('build/shellextensionx64/ShellExtensionX64.dll', bin_folder) + shutil.copy('build/ShellExtension/release mindependency/ShellExtension.dll', bin_folder) + shutil.copy('build/ShellExtension/unicode release mindependency/ShellExtensionU.dll', bin_folder) + shutil.copy('build/ShellExtension/x64 release/ShellExtensionX64.dll', bin_folder) shutil.copy('ShellExtension/Register.bat', bin_folder) shutil.copy('ShellExtension/UnRegister.bat', bin_folder) @@ -471,7 +471,7 @@ environment tweaks, so it won't work (currently) from this script. And the ShellExtension must be compiled separately. """ - if not os.path.exists('build/shellextensionx64/ShellExtensionX64.dll'): + if not os.path.exists('build/shellextension/x64 release/ShellExtensionX64.dll'): print 'ERROR: cannot create a release:' print 'You must compile 64-bit ShellExtension (ShellExtensionX64.dll)' print 'before running this script!' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2010-01-13 22:44:00
|
Revision: 7103 http://winmerge.svn.sourceforge.net/winmerge/?rev=7103&view=rev Author: kimmov Date: 2010-01-13 22:43:54 +0000 (Wed, 13 Jan 2010) Log Message: ----------- Buildscript: Build 64-bit ShellExtension with the script. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2010-01-13 22:27:27 UTC (rev 7102) +++ trunk/Tools/Scripts/create_release.py 2010-01-13 22:43:54 UTC (rev 7103) @@ -29,7 +29,7 @@ # - updates POT and PO files # - builds libraries (expat, scew, pcre) # - builds WinMerge.exe and WinMergeU.exe -# - builds 32-bit ShellExtension targets +# - builds 32-bit and 64-bit ShellExtension targets # - builds user manual # - builds the InnoSetup installer # - creates per-version distribution folder @@ -37,7 +37,6 @@ # - creates binary distribution folder #Tasks not done (TODO?): -# - building 64-bit ShellExtension # - creating packages from source and binary folders # - running virus check # - creating SHA-1 hashes for distributed files @@ -72,6 +71,10 @@ root_path = '' prog_ver = '' +# Build 64-bit targets? This requires 64-bit cross-compile cabable VS version. +# If disabled, 64-bit versions must be compiled before running this script +build_64bit = True + # END CONFIGURATION - you don't need to edit anything below... from subprocess import * @@ -293,7 +296,10 @@ return False def build_shellext(vs_cmd): - """Builds 32-bit ShellExtension.""" + '''Builds 32-bit and 64-bit ShellExtension. + + 64-bit ShellExtension is build only if build_64bit is enabled in config. + ''' cur_path = os.getcwd() solution_path = os.path.join(cur_path, 'ShellExtension\\ShellExtension.vcproj') @@ -306,11 +312,20 @@ else: print 'ERROR: Failed to build ANSI target of ShellExtension!' return False + + if ret == 0: + if build_64bit == True: + ret = call([vs_cmd, solution_path, '/rebuild', 'X64 Release|x64']) + else: + return True + else: + print 'ERROR: Failed to build Unicode target of ShellExtension!' + return False if ret == 0: return True else: - print 'ERROR: Failed to build Unicode target of ShellExtension!' + print 'ERROR: Failed to build 64-bit target of ShellExtension!' return False def build_manual(): @@ -464,13 +479,13 @@ return True def check_x64shellext(): - """Checks that 64-bit ShellExtension is compiled prior to running this + '''Checks that 64-bit ShellExtension is compiled prior to running this script. - This is due to the fact we can't compile 64-bit ShellExtension without some - environment tweaks, so it won't work (currently) from this script. And the - ShellExtension must be compiled separately. - """ + If we haven't enabled building 64-bit targets we must ensure the 64-bit + ShellExtension is already compiled. + ''' + if not os.path.exists('build/shellextension/x64 release/ShellExtensionX64.dll'): print 'ERROR: cannot create a release:' print 'You must compile 64-bit ShellExtension (ShellExtensionX64.dll)' @@ -543,8 +558,8 @@ if check_tools() == False: sys.exit() - # Check 64-bit ShellExtension is compiled - if check_x64shellext() == False: + # Check 64-bit ShellExtension is compiled if not building 64-bit + if build_64bit == False and check_x64shellext() == False: sys.exit() # Create the distribution folder if it doesn't exist This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2010-06-12 13:00:39
|
Revision: 7182 http://winmerge.svn.sourceforge.net/winmerge/?rev=7182&view=rev Author: kimmov Date: 2010-06-12 13:00:33 +0000 (Sat, 12 Jun 2010) Log Message: ----------- Buildscript: Use Python's optparse module to parse command line. Modified Paths: -------------- trunk/Tools/Scripts/create_release.py Modified: trunk/Tools/Scripts/create_release.py =================================================================== --- trunk/Tools/Scripts/create_release.py 2010-06-12 12:55:52 UTC (rev 7181) +++ trunk/Tools/Scripts/create_release.py 2010-06-12 13:00:33 UTC (rev 7182) @@ -81,7 +81,7 @@ import os import os.path import sys -import getopt +simport optparse import shutil import SetVersions import ToolSettings @@ -494,45 +494,37 @@ else: return True -def usage(): - """Print script usage information.""" - - print 'WinMerge release script.' - print 'Usage: create_release [-h] [-f file] [-v n] [-c] [-l]' - print ' where:' - print ' -h, --help print this help' - print ' -v n, --version=n set release version' - print ' -c, --cleanup clean up build files (temp files, libraries, executables)' - print ' -l, --libraries build libraries (expat, scew, pcre) only' - print ' -f file, --file=filename set the version number ini file' - print ' For example: create_release -f versions.ini' - print ' If no version number (-v) or INI file (-f) given, 0.0.0.0 will be' - print ' used as version number.' - def main(argv): global prog ver_file = '' - if len(argv) > 0: - opts, args = getopt.getopt(argv, "hclv:f:", [ "help", "cleanup", "libraries", - "version=", "file="]) - - for opt, arg in opts: - if opt in ("-h", "--help"): - usage() - sys.exit() - if opt in ("-v", "--version"): - prog_version = arg - print "Start building WinMerge release version " + prog_version - if opt in ("-c", "--cleanup"): - if cleanup_build() == True: - print 'Cleanup done.' - sys.exit() - if opt in ("-l", "--libraries"): - build_libraries() - sys.exit() - if opt in ("-f", "--file"): - ver_file = arg - + + parser = optparse.OptionParser() + parser.add_option('--version', '-v', action = 'store', + help = 'Set global version number to use.') + parser.add_option('--cleanup', '-c', action = 'store_true', + help = 'Clean up build files (temp files, libraries, executables).') + parser.add_option('--libraries', '-l', action = 'store_true', + help = 'Build libraries (hekxedit, rawio32) only.') + parser.add_option('--file', '-f', action = 'store', + help = 'Set the version number ini file.') + options, arguments = parser.parse_args() + + if options.version: + prog_version = options.version + print 'Start building Frhed release version ' + prog_version + + if options.cleanup: + if cleanup_build() == True: + print 'Cleanup done.' + sys.exit() + + if options.libraries: + build_libraries() + sys.exit() + + if options.file: + ver_file = options.file + if ver_file == '' and prog_version == '': print 'WARNING: No version number or INI file given, using default' print ' version number of 0.0.0.0 where applicable in this script.' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |