summaryrefslogtreecommitdiffstats
path: root/packaging
diff options
context:
space:
mode:
authorEduard Braun <eduard.braun2@gmx.de>2016-10-08 15:36:21 +0000
committerEduard Braun <eduard.braun2@gmx.de>2016-10-08 15:36:21 +0000
commitd7f5965ada9179bd223fa73785d27280bcc75d6c (patch)
treefe3929a006e98553b15a9777c016f0014446f2d4 /packaging
parentfix build (diff)
downloadinkscape-d7f5965ada9179bd223fa73785d27280bcc75d6c.tar.gz
inkscape-d7f5965ada9179bd223fa73785d27280bcc75d6c.zip
Packaging: Some initial fixes for WiX (MSI installer)
(bzr r15244.1.1)
Diffstat (limited to 'packaging')
-rw-r--r--packaging/wix/files.py13
-rw-r--r--packaging/wix/helpers.py23
-rw-r--r--packaging/wix/install.bat4
-rw-r--r--packaging/wix/version.py11
-rw-r--r--packaging/wix/wixenv.bat20
5 files changed, 49 insertions, 22 deletions
diff --git a/packaging/wix/files.py b/packaging/wix/files.py
index ada4d62f2..8026a5259 100644
--- a/packaging/wix/files.py
+++ b/packaging/wix/files.py
@@ -1,10 +1,12 @@
#!/usr/bin/python
+from __future__ import print_function
-# list files in directory
import os
import uuid
+from helpers import get_inkscape_dist_dir
+
directory_ids = {}
file_ids = {}
@@ -59,6 +61,9 @@ def ComponentGroup(name, condition, level):
for key in keys:
del file_ids[key]
+#get directory containing the inkscape distribution files
+inkscape_dist_dir = get_inkscape_dist_dir()
+
with open('files.wxs', 'w') as wxs:
wxs.write("<!-- do not edit, this file is created by files.py tool any changes will be lost -->\n")
wxs.write("<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\n")
@@ -68,9 +73,9 @@ with open('files.wxs', 'w') as wxs:
wxs.write(indent(2) + "<Directory Id='TARGETDIR' Name='SourceDir'>\n")
wxs.write(indent(3) + "<Directory Id='$(var.ProgramFilesFolder)' Name='PFiles'>\n")
wxs.write(indent(4) + "<Directory Id='INSTALLDIR' Name='Inkscape'>\n")
- print "start parsing ..\..\inkscape"
- directory('..\..\inkscape', 'inkscape', 5, ['inkscape.dbg', 'inkview.dbg', 'gdb.exe'])
- print "found %d files" % len(file_ids.keys())
+ print("start parsing files from " + inkscape_dist_dir)
+ directory(inkscape_dist_dir, 'inkscape', 5, ['inkscape.dbg', 'inkview.dbg', 'gdb.exe'])
+ print("found %d files" % len(file_ids.keys()))
wxs.write(indent(4) + "</Directory>\n")
wxs.write(indent(3) + "</Directory>\n")
# link to ProgrmMenu
diff --git a/packaging/wix/helpers.py b/packaging/wix/helpers.py
new file mode 100644
index 000000000..5fe9e6a52
--- /dev/null
+++ b/packaging/wix/helpers.py
@@ -0,0 +1,23 @@
+#!/usr/bin/python
+
+from __future__ import print_function
+
+import os
+import sys
+
+# check where to look for the inkscape files to bundle
+# - btool builds used [root]/inkscape
+# - cmake builds use [root]/build/inkscape unless "DESTDIR" is specified
+def get_inkscape_dist_dir():
+ # fisrt check the environment variable
+ sourcedir = os.getenv('INKSCAPE_DIST_PATH')
+ if sourcedir is None:
+ sourcedir = ''
+ if not os.path.isdir(sourcedir):
+ sourcedir = '..\\..\\inkscape'
+ if not os.path.isdir(sourcedir):
+ sourcedir = '..\\..\\build\\inkscape'
+ if not os.path.isdir(sourcedir):
+ print("could not find inkscape distribution files, please set environment variable 'INKSCAPE_DIST_PATH'")
+ sys.exit(1)
+ return sourcedir \ No newline at end of file
diff --git a/packaging/wix/install.bat b/packaging/wix/install.bat
index 1b42a596b..f0dd0bdee 100644
--- a/packaging/wix/install.bat
+++ b/packaging/wix/install.bat
@@ -1,9 +1,11 @@
@echo build files.wxs
python files.py
+@if NOT %ERRORLEVEL% == 0 goto theend
@echo create version information
for /f "tokens=*" %%a in ('python version.py') do (set INKSCAPE_VER=%%a)
+@if NOT %ERRORLEVEL% == 0 goto theend
@echo call wix compiler ...
candle inkscape.wxs -ext WiXUtilExtension
@@ -27,6 +29,6 @@ pause the program is now installed. press any key to run uninstaller ...
@echo deinstall ...
msiexec /x inkscape-%INKSCAPE_VER%.msi
-@echo ... finished
:theend
+@echo ... finished \ No newline at end of file
diff --git a/packaging/wix/version.py b/packaging/wix/version.py
index dc5e06de9..a7ffebaa0 100644
--- a/packaging/wix/version.py
+++ b/packaging/wix/version.py
@@ -1,8 +1,12 @@
#!/usr/bin/python
+from __future__ import print_function
+
import os
import struct
+from helpers import get_inkscape_dist_dir
+
version = ''
versionstr = ''
architecture = ''
@@ -27,7 +31,10 @@ def is64bitArchitecture(filename):
return True
return False
-if is64bitArchitecture('..\..\inkscape\inkscape.exe'):
+#get directory containing the inkscape distribution files
+inkscape_dist_dir = get_inkscape_dist_dir()
+
+if is64bitArchitecture(inkscape_dist_dir + '\\inkscape.exe'):
architecture = '-x64'
else:
architecture = ''
@@ -44,7 +51,7 @@ with open('..\..\src\inkscape.rc', 'r') as rc:
versionstr = versionstr.replace('"', '')
versionstr = versionstr.replace("'", "")
# version = version.replace("+", "_")
- print versionstr + architecture
+ print(versionstr + architecture)
if 'versioninfo' in line.lower():
isversioninfo = True
if 'begin' in line.lower():
diff --git a/packaging/wix/wixenv.bat b/packaging/wix/wixenv.bat
index 2cddd7146..106898683 100644
--- a/packaging/wix/wixenv.bat
+++ b/packaging/wix/wixenv.bat
@@ -1,19 +1,9 @@
-@echo Setting environment variables for creating msi installer
+@echo Setting environment variables for creating msi installer (adjust if necesssary!)
-@echo detect OS version
-ver | findstr /i "6\.1\." > nul
-IF %ERRORLEVEL% EQU 0 goto win7
-
-@rem all other cases
-IF "%WIX_PATH%"=="" set WIX_PATH=C:\Programme\WiX Toolset v3.9\bin
-IF "%DEVLIBS_PATH%"=="" set DEVLIBS_PATH=c:\devlibs
-goto setpath
-
-:win7
-IF "%WIX_PATH%"=="" set WIX_PATH=C:\Program Files (x86)\WiX Toolset v3.9\bin
+IF "%WIX_PATH%"=="" set WIX_PATH=C:\Program Files (x86)\WiX Toolset v3.10\bin
IF "%DEVLIBS_PATH%"=="" set DEVLIBS_PATH=c:\devlibs
-:setpath
-set PATH=%DEVLIBS_PATH%\python;%WIX_PATH%;%PATH%
+rem uncomment and adjust the line below if your Inkscape distribution files are in a non-standard location
+rem IF "%INKSCAPE_DIST_PATH%"=="" set INKSCAPE_DIST_PATH=..\..\build\inkscape
-:end
+set PATH=%DEVLIBS_PATH%\python;%WIX_PATH%;%PATH% \ No newline at end of file