diff options
author | Micah Lee <micah@micahflee.com> | 2016-09-04 19:21:09 -0700 |
---|---|---|
committer | Micah Lee <micah@micahflee.com> | 2016-09-04 19:21:09 -0700 |
commit | db9d81ba90b8a41f2b52292c80d55df53d66a648 (patch) | |
tree | f3d4ae9741aaffd5b2cb661d05f01a3805152a67 /setup.py | |
parent | 79938e9518c4584e8ee3a660869ddaa91d34dc42 (diff) | |
download | onionshare-db9d81ba90b8a41f2b52292c80d55df53d66a648.tar.gz onionshare-db9d81ba90b8a41f2b52292c80d55df53d66a648.zip |
Migrate from PyInstaller to cx_Freeze for OSX
Diffstat (limited to 'setup.py')
-rw-r--r-- | setup.py | 147 |
1 files changed, 78 insertions, 69 deletions
@@ -19,7 +19,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """ -import os, sys, platform +import os, sys, platform, tempfile def file_list(path): files = [] @@ -42,84 +42,69 @@ long_description = description + " " + ( author = 'Micah Lee' author_email = 'micah@micahflee.com' url = 'https://github.com/micahflee/onionshare' -license = "GPL v3" +license = 'GPL v3' keywords = 'onion, share, onionshare, tor, anonymous, web server' os = platform.system() -if os == 'Windows': +# Windows and Mac +if os == 'Windows' or os == 'Darwin': from cx_Freeze import setup, Executable + + if os == 'Windows': + executables = [ + Executable('install/scripts/onionshare', + icon='install/onionshare.ico', + base=None), + Executable('install/scripts/onionshare-gui', + icon='install/onionshare.ico', + shortcutName='OnionShare', + shortcutDir='ProgramMenuFolder', + base='Win32GUI') + ] + custom_info_plist = '' + + elif os == 'Darwin': + executables = [ + Executable('install/scripts/onionshare-gui'), + Executable('install/scripts/onionshare') + ] + + # Write the correct version into Info.plist + f = tempfile.NamedTemporaryFile(mode='w') + custom_info_plist = f.name + f.write(open('install/Info.plist').read().replace('{VERSION}', str(version))) + f.flush() + setup( - name="OnionShare", - version=version, - description=description, - long_description=long_description, - author=author, - author_email=author_email, - url=url, - license=license, - keywords=keywords, + name='OnionShare', version=version, + description=description, long_description=long_description, + author=author, author_email=author_email, + url=url, license=license, keywords=keywords, options={ - "build_exe": { - "packages": [], - "excludes": [], - "include_files": ['resources'] + 'build_exe': { + 'packages': ['jinja2.ext'], + 'excludes': [], + 'include_files': ['resources'] + }, + 'bdist_mac': { + 'iconfile': 'install/onionshare.icns', + 'bundle_name': 'OnionShare', + 'qt_menu_nib': '/usr/local/Cellar/qt5/5.6.1-1/plugins/platforms', + 'custom_info_plist': custom_info_plist } }, - executables=[ - Executable("install/scripts/onionshare", - icon="install/onionshare.ico", - base=None), - Executable("install/scripts/onionshare-gui", - icon="install/onionshare.ico", - shortcutName="OnionShare", - shortcutDir="ProgramMenuFolder", - base="Win32GUI") - ] + executables=executables ) - -else: - images = [ - 'resources/images/logo.png', - 'resources/images/drop_files.png', - 'resources/images/server_stopped.png', - 'resources/images/server_started.png', - 'resources/images/server_working.png' - ] - locale = [ - 'resources/locale/cs.json', - 'resources/locale/de.json', - 'resources/locale/en.json', - 'resources/locale/eo.json', - 'resources/locale/es.json', - 'resources/locale/fi.json', - 'resources/locale/fr.json', - 'resources/locale/it.json', - 'resources/locale/nl.json', - 'resources/locale/no.json', - 'resources/locale/pt.json', - 'resources/locale/ru.json', - 'resources/locale/tr.json' - ] - - html = [ - 'resources/html/index.html', - 'resources/html/denied.html', - 'resources/html/404.html' - ] - +# Linux +else: from setuptools import setup setup( - name='onionshare', - version=version, - description=description, - long_description=long_description, - author=author, - author_email=author_email, - url=url, - license=license, - keywords=keywords, + name='onionshare', version=version, + description=description, long_description=long_description, + author=author, author_email=author_email, + url=url, license=license, keywords=keywords, packages=['onionshare', 'onionshare_gui'], include_package_data=True, scripts=['install/scripts/onionshare', 'install/scripts/onionshare-gui'], @@ -131,9 +116,33 @@ else: 'resources/version.txt', 'resources/wordlist.txt' ]), - (os.path.join(sys.prefix, 'share/onionshare/images'), images), - (os.path.join(sys.prefix, 'share/onionshare/locale'), locale), - (os.path.join(sys.prefix, 'share/onionshare/html'), html), + (os.path.join(sys.prefix, 'share/onionshare/images'), [ + 'resources/images/logo.png', + 'resources/images/drop_files.png', + 'resources/images/server_stopped.png', + 'resources/images/server_started.png', + 'resources/images/server_working.png' + ]), + (os.path.join(sys.prefix, 'share/onionshare/locale'), [ + 'resources/locale/cs.json', + 'resources/locale/de.json', + 'resources/locale/en.json', + 'resources/locale/eo.json', + 'resources/locale/es.json', + 'resources/locale/fi.json', + 'resources/locale/fr.json', + 'resources/locale/it.json', + 'resources/locale/nl.json', + 'resources/locale/no.json', + 'resources/locale/pt.json', + 'resources/locale/ru.json', + 'resources/locale/tr.json' + ]), + (os.path.join(sys.prefix, 'share/onionshare/html'), [ + 'resources/html/index.html', + 'resources/html/denied.html', + 'resources/html/404.html' + ]), ('/usr/share/nautilus-python/extensions/', ['install/scripts/onionshare-nautilus.py']), ] ) |