kopia lustrzana https://github.com/inkstitch/inkstitch
				
				
				
			
		
			
				
	
	
		
			83 wiersze
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			83 wiersze
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/bin/bash
 | |
| 
 | |
| set -e
 | |
| info_year=$( date "+%Y" )
 | |
| site_packages="$(python -c "import os; print(os.path.dirname(os.__file__) + '/site-packages')")"
 | |
| arch=$(uname -m)
 | |
| if [ "$BUILD" = "linux" ]; then
 | |
|     pyinstaller_args+="--add-binary /usr/lib/"$arch"-linux-gnu/gio/modules/libgiolibproxy.so:. "
 | |
|     pyinstaller_args+="--add-binary  /usr/lib/"$arch"-linux-gnu/libproxy.so.1:. "
 | |
|     pyinstaller_args+="--add-binary  /lib/"$arch"-linux-gnu/libnsl.so.1:. "
 | |
|     pyinstaller_args+="--add-binary  /usr/lib/"$arch"-linux-gnu/libxcb.so.1:. "
 | |
| fi
 | |
| 
 | |
| # This one's tricky.  ink/stitch doesn't actually _use_ gi.repository.Gtk,
 | |
| # but it does use GTK (through wxPython).  pyinstaller has some special
 | |
| # logic to handle GTK apps that is engaged when you import
 | |
| # gi.repository.Gtk that pulls in things like themes, icons, etc.  Without
 | |
| # that, the Params dialog is unthemed and barely usable.  This hidden
 | |
| # import option is actually the only reason we had to install python-gi
 | |
| # above!
 | |
| pyinstaller_args+="--hidden-import gi.repository.Gtk "
 | |
| 
 | |
| # mac and windows build seem to miss wx import
 | |
| pyinstaller_args+="--hidden-import wx "
 | |
| 
 | |
| # We need to use the precompiled bootloader linked with graphical Mac OS X
 | |
| # libraries if we develop a GUI application for Mac:
 | |
| if [ "$BUILD" = "osx" -o "$BUILD" = "windows" ]; then
 | |
|     pyinstaller_args+="--windowed "
 | |
| fi
 | |
| 
 | |
| # This lets pyinstaller see inkex.py, etc.
 | |
| pyinstaller_args+="-p inkscape/share/extensions "
 | |
| 
 | |
| # output useful debugging info that helps us trace library dependency issues
 | |
| pyinstaller_args+="--log-level DEBUG "
 | |
| 
 | |
| # This adds bundle identifier in reverse DSN format for macos
 | |
| if [ "$BUILD" = "osx" ]; then
 | |
|     pyinstaller_args+="--osx-bundle-identifier org.inkstitch.app "
 | |
|     pyinstaller_args+="-i electron/build/icons/mac/inkstitch.icns"
 | |
|     if [[ -z ${GITHUB_REF} ]]; then
 | |
|         echo "Dev or Local Build"
 | |
|     else
 | |
|         bash bin/import-macos-keys
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| if [ "$BUILD" = "windows" ]; then
 | |
| 	if [[ "$VERSION" =~ ^v[0-9][.0-9]+$ ]]; then
 | |
| 		# setting the file and product version for release
 | |
| 		# Code to remove the periods in the version number
 | |
| 		ENT=.
 | |
| 		SAL=${VERSION#v}$ENT
 | |
| 		INFO_VERSION=()
 | |
| 		while [[ $SAL ]]; do
 | |
| 			INFO_VERSION+=( "${SAL%%"$ENT"*}" );
 | |
| 			SAL=${SAL#*"$ENT"};
 | |
| 		done;
 | |
| 		sed -i'' 's/3, 2, 1,/'"${INFO_VERSION[0]}, ${INFO_VERSION[1]}, ${INFO_VERSION[2]},"'/' installer_scripts/file_version_info.txt
 | |
| 	fi
 | |
| 	 # set year and version in version_info
 | |
| 	sed -i'' 's/1.1.1/'"${VERSION#v}"'/' installer_scripts/file_version_info.txt
 | |
| 	sed -i'' 's/1234/'"${info_year}"'/' installer_scripts/file_version_info.txt
 | |
|     # sets icon to inkstitch.exe
 | |
| 	pyinstaller_args+="--i electron/build/icons/win/inkstitch.ico "
 | |
| 	pyinstaller_args+="--version-file  installer_scripts/file_version_info.txt "
 | |
|     python -m PyInstaller $pyinstaller_args inkstitch.py
 | |
| else
 | |
|     # without the LD_LIBRARY_PATH, it seems that pyinstaller can't find all of
 | |
|     # wxpython's shared libraries
 | |
|     LD_LIBRARY_PATH="${site_packages}/wx" python -m PyInstaller $pyinstaller_args --strip inkstitch.py;
 | |
| fi
 | |
| 
 | |
| # pyinstaller put a whole mess of libraries under dist/inkstitch.  We'd like
 | |
| # to put some more user-accessible stuff like examples and palettes in
 | |
| # folders under inkstitch/ (see ../Makefile) so let's move the pyinstaller
 | |
| # stuff into its own dir.
 | |
| shopt -s dotglob
 | |
| mkdir dist/bin
 | |
| mv dist/inkstitch/* dist/bin
 | |
| mv dist/bin dist/inkstitch
 |