diff --git a/.github/workflows/job-build-windows.yml b/.github/workflows/job-build-windows.yml index 2f138219d..f9c5b2cc2 100644 --- a/.github/workflows/job-build-windows.yml +++ b/.github/workflows/job-build-windows.yml @@ -16,6 +16,8 @@ jobs: BONJOUR_BASE_DIR: ${{ github.workspace }}\deps\bonjour QT_VERSION: 5.12.6 QT_BASE_URL: http://qt.mirror.constant.com/ + BONJOUR_SDK_HOME: ${{ github.workspace }}\deps\bonjour\BonjourSDK + CMAKE_PREFIX_PATH: ${{ github.workspace }}\deps\Qt\5.12.6\msvc2017_64\ steps: - uses: actions/checkout@v2 @@ -35,9 +37,6 @@ jobs: cd $env:QT_BASE_DIR\$env:QT_VERSION\msvc2017_64 dir - - name: set QT path - run: echo "::set-env name=CMAKE_PREFIX_PATH::$env:QT_BASE_DIR\$env:QT_VERSION\msvc2017_64\" - - name: Cache Bonjour id: cache-bonjour uses: actions/cache@v1 @@ -53,11 +52,8 @@ jobs: $client.DownloadFile("https://binaries.symless.com/bonjour/BonjourSDK.zip",".\bonjoursdk.zip") [System.IO.Compression.ZipFile]::ExtractToDirectory(".\bonjoursdk.zip", $env:BONJOUR_BASE_DIR) - - name: set Bonjour path - run: echo "::set-env name=BONJOUR_SDK_HOME::$env:BONJOUR_BASE_DIR\BonjourSDK" - - name: Add msbuild to PATH - uses: microsoft/setup-msbuild@v1.0.1 + uses: microsoft/setup-msbuild@v1.0.2 - name: Build run: | diff --git a/CI/MacOS/installator_settings.py b/CI/MacOS/installator_settings.py new file mode 100644 index 000000000..31de00c03 --- /dev/null +++ b/CI/MacOS/installator_settings.py @@ -0,0 +1,162 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +import biplist +import os.path + +# Use like this: dmgbuild -s settings.py "Test Volume" test.dmg +# dmgbuild -s settings.py -D app=/path/to/My.app "My Application" MyApp.dmg + +# .. Useful stuff .............................................................. + +application = defines.get('app', 'Synergy.app') +appname = os.path.basename(application) + +def icon_from_app(app_path): + plist_path = os.path.join(app_path, 'Contents', 'Info.plist') + plist = biplist.readPlist(plist_path) + icon_name = plist['CFBundleIconFile'] + icon_root,icon_ext = os.path.splitext(icon_name) + if not icon_ext: + icon_ext = '.icns' + icon_name = icon_root + icon_ext + return os.path.join(app_path, 'Contents', 'Resources', icon_name) + +# .. Basics .................................................................... + +# Volume format (see hdiutil create -help) +format = defines.get('format', 'UDBZ') + +# Volume size +size = defines.get('size', None) + +# Files to include +files = [ application ] + +# Symlinks to create +symlinks = { 'Applications': '/Applications' } + +# Volume icon +# +# You can either define icon, in which case that icon file will be copied to the +# image, *or* you can define badge_icon, in which case the icon file you specify +# will be used to badge the system's Removable Disk icon +# +#icon = '/path/to/icon.icns' +badge_icon = icon_from_app(application) + +# Where to put the icons +icon_locations = { + appname: (144, 190), + 'Applications': (455, 190), + '.background.png': (150, 450), + '.VolumeIcon.icns': (455, 450) + } + +# .. Window configuration ...................................................... + +# Background +# +# This is a STRING containing any of the following: +# +# #3344ff - web-style RGB color +# #34f - web-style RGB color, short form (#34f == #3344ff) +# rgb(1,0,0) - RGB color, each value is between 0 and 1 +# hsl(120,1,.5) - HSL (hue saturation lightness) color +# hwb(300,0,0) - HWB (hue whiteness blackness) color +# cmyk(0,1,0,0) - CMYK color +# goldenrod - X11/SVG named color +# builtin-arrow - A simple built-in background with a blue arrow +# /foo/bar/baz.png - The path to an image file +# +# The hue component in hsl() and hwb() may include a unit; it defaults to +# degrees ('deg'), but also supports radians ('rad') and gradians ('grad' +# or 'gon'). +# +# Other color components may be expressed either in the range 0 to 1, or +# as percentages (e.g. 60% is equivalent to 0.6). +background = defines.get('background', 'builtin-arrow') + +show_status_bar = False +show_tab_view = False +show_toolbar = False +show_pathbar = False +show_sidebar = False +sidebar_width = 180 + +# Window position in ((x, y), (w, h)) format +window_rect = ((200, 120), (620, 420)) + +# Select the default view; must be one of +# +# 'icon-view' +# 'list-view' +# 'column-view' +# 'coverflow' +# +default_view = 'icon-view' + +# General view configuration +show_icon_preview = False + +# Set these to True to force inclusion of icon/list view settings (otherwise +# we only include settings for the default view) +include_icon_view_settings = 'auto' +include_list_view_settings = 'auto' + +# .. Icon view configuration ................................................... + +arrange_by = None +grid_offset = (0, 0) +grid_spacing = 100 +scroll_position = (0, 0) +label_pos = 'bottom' # or 'right' +text_size = 16 +icon_size = 100 + +# .. List view configuration ................................................... + +# Column names are as follows: +# +# name +# date-modified +# date-created +# date-added +# date-last-opened +# size +# kind +# label +# version +# comments +# +list_icon_size = 16 +list_text_size = 12 +list_scroll_position = (0, 0) +list_sort_by = 'name' +list_use_relative_dates = True +list_calculate_all_sizes = False, +list_columns = ('name', 'date-modified', 'size', 'kind', 'date-added') +list_column_widths = { + 'name': 300, + 'date-modified': 181, + 'date-created': 181, + 'date-added': 181, + 'date-last-opened': 181, + 'size': 97, + 'kind': 115, + 'label': 100, + 'version': 75, + 'comments': 300, + } +list_column_sort_directions = { + 'name': 'ascending', + 'date-modified': 'descending', + 'date-created': 'descending', + 'date-added': 'descending', + 'date-last-opened': 'descending', + 'size': 'descending', + 'kind': 'ascending', + 'label': 'ascending', + 'version': 'ascending', + 'comments': 'ascending', + } \ No newline at end of file diff --git a/CI/MacOS/mac-build.yml b/CI/MacOS/mac-build.yml index 59ae5f3af..69cad1d92 100644 --- a/CI/MacOS/mac-build.yml +++ b/CI/MacOS/mac-build.yml @@ -11,6 +11,11 @@ steps: script: 'brew install qt' displayName: 'Installing QT' + - task: CmdLine@2 + inputs: + script: 'pip install dmgbuild' + displayName: 'Installing dmgbuild' + - task: CmdLine@2 inputs: script: | @@ -76,7 +81,12 @@ steps: - task: CmdLine@2 inputs: script: | - hdiutil create -volname Synergy -srcfolder $(Build.Repository.LocalPath)/build/bundle/ -ov -format UDZO $(SYNERGY_DMG_FILENAME) + dmgbuild \ + -s CI/MacOS/installator_settings.py \ + -D app=$(Build.Repository.LocalPath)/build/bundle/Synergy.app \ + -D background=$(Build.Repository.LocalPath)/build/bundle/Synergy.app/Contents/Resources/installer_background.png \ + "Synergy" \ + $(SYNERGY_DMG_FILENAME) mkdir pkg mv $(SYNERGY_DMG_FILENAME) pkg/ cd pkg diff --git a/ChangeLog b/ChangeLog index 04efeb976..1168e4460 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,7 @@ Bug fixes: Enhancements: - #6836 Enabling Github Code Scanning - #6841 Windows installer has been updated. +- #6844 macOS installer has been updated. v1.12.x-snapshot ===========