diff --git a/README.md b/README.md index 2c28eb6..85a17c4 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Ubuntu, installing these may be as simple as running In case you also want to be able to compile Windows binaries from Linux, you also need: - * `mingw32` + * `i686-w64-mingw32` Note that welcome all contributions, e.g., further protocol models. Just send us a pull request. diff --git a/gui/Scyther/Scyther.py b/gui/Scyther/Scyther.py index a5336c6..1232f23 100755 --- a/gui/Scyther/Scyther.py +++ b/gui/Scyther/Scyther.py @@ -89,6 +89,9 @@ def getCacheDir(): # If not none, append special name if tmpdir != None: tmpdir = os.path.join(tmpdir,"Scyther-cache") + + # Normalize the tmpdir path. + tmpdir = os.path.normpath(tmpdir) return tmpdir @@ -398,8 +401,14 @@ class Scyther(object): # Generate temporary files for the output. (fde,fne) = tempfile.mkstemp() # errors (fdo,fno) = tempfile.mkstemp() # output + + # Normalize the temporary paths. + fne = os.path.normpath(fne) + fno = os.path.normpath(fno) + if spdl: (fdi,fni) = tempfile.mkstemp() # input + fni = os.path.normpath(fni) # Write (input) file fhi = os.fdopen(fdi,'w+') @@ -409,14 +418,14 @@ class Scyther(object): # Generate command line for the Scyther process self.cmd = "" self.cmd += "\"%s\"" % self.program - self.cmd += " --append-errors=%s" % fne - self.cmd += " --append-output=%s" % fno + self.cmd += " --append-errors=\"%s\"" % fne + self.cmd += " --append-output=\"%s\"" % fno self.cmd += " %s" % args if spdl: - self.cmd += " %s" % fni + self.cmd += " \"%s\"" % fni # Only for debugging, really - ##print self.cmd + # print( self.cmd ) # Start the process safeCommand(self.cmd, storePopen=storePopen) diff --git a/src/Build-Win32.cmake b/src/Build-Win32.cmake new file mode 100644 index 0000000..285893a --- /dev/null +++ b/src/Build-Win32.cmake @@ -0,0 +1,22 @@ +################################################################ +# Name: BuildUnix-Win32.cmake +# Purpose: Build Win32 binary on Unix +# Author: Cas Cremers +################################################################ + +message (STATUS "Building W32 version") + +# This should work on win32 platform, but also when the compiler +# is available anyway under linux +set (CMAKE_C_COMPILER "i686-w64-mingw32-gcc") +set (CMAKE_CXX_COMPILER "i686-w64-mingw32-g++") +set (CMAKE_SHARED_LIBRARY_LINK_C_FLAGS) # to get rid of -rdynamic +# Signal for windows +set (CMAKE_C_FLAGS "-DFORWINDOWS") + +# Static where possible (i.e. only not on the APPLE) +set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static -m32") + +set (scythername "scyther-w32.exe") +add_executable (${scythername} ${Scyther_sources}) + diff --git a/src/BuildUnix-Win32.cmake b/src/BuildUnix-Win32.cmake index c57f115..285893a 100644 --- a/src/BuildUnix-Win32.cmake +++ b/src/BuildUnix-Win32.cmake @@ -8,8 +8,8 @@ message (STATUS "Building W32 version") # This should work on win32 platform, but also when the compiler # is available anyway under linux -set (CMAKE_C_COMPILER "i586-mingw32msvc-gcc") -set (CMAKE_CXX_COMPILER "i586-mingw32msvc-g++") +set (CMAKE_C_COMPILER "i686-w64-mingw32-gcc") +set (CMAKE_CXX_COMPILER "i686-w64-mingw32-g++") set (CMAKE_SHARED_LIBRARY_LINK_C_FLAGS) # to get rid of -rdynamic # Signal for windows set (CMAKE_C_FLAGS "-DFORWINDOWS")