You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
3.7 KiB

Rename project in many places; Replace Most Project Logos; Refactor `About Tenacity...` Dialog (#276) Add `locale/en.po` file. Add English to `locale/LINGUAS` list. Partially duplicate `msgid`s to `msgstr`s in English locale enable eventual key `msgid` changes Replace former project name with Tenacity in English locale. Replace former project website with Tenacity compatible usages in English locale. Modify `AboutDialog.h` by renaming variables. Modify `AboutDialog.cpp` by replacing usage of pre-fork name in Strings. Modify AddBuildInfoRow methods to be static in About dialog. Make License text const in About dialog. Make pre-fork credits different in About dialog. Begin adding Tenacity specific credits Macros starting with `__` are reserved, so I removed the `__` on the About Dialog guard macro. Remove `AboutDialog::` from usage of `Role` in `AboutDialog.h` Refactor overly long generator method into separate methods in `AboutDialog.(h|cpp)` Begin adding Tenacity developer information Cleanup layout of `AboutDialog.h` and `AboutDialog.cpp` Add `safedelete` macro to compliment odd `safenew` macro Add `enum` to `ShuttleGui.cpp` to make it more clear what `Prop` method is doing. Remove a ton of pointless and/or redunant `#ifdef` usage Remove pointless singleton in AboutDialog Make AboutDialog modal on MacOS Fix reference type use of `auto` in `AudacityApp` b/c it makes unintentional copy. Update XPM and PNG images using Tenacity assets Update ICO images using Tenacity assets. Fix Windows resource script that improperly used `winuser.h` import. Add `*.aps` to gitignore to prevent IDE RC pre-load file from being committed. Add default values for pre-processor constants in `tenacity.rc`. Make changes needed for `Tenacity.exe` binary Add 8x8 PNG to Windows ICO files Replace project name in various CMake and CPack file. Replace project name in various directory structures. Replace project name in various OS-specific build files. Replace project name in various documentation files. Update the PO and POT files using the script. Fix places where a `.desktop` file was used on Linux. Replace title of project windows. Make splash screen click through to `tenacityaudio.org`. Remove ® from `AboutDialog.cpp` Modify copyright message in `AboutDialog.cpp` Signed-off-by: Emily Mabrey <emilymabrey93@gmail.com>
10 months ago
  1. #!/usr/bin/env bash
  2. ((${BASH_VERSION%%.*} >= 4)) || { echo >&2 "$0: Error: Please upgrade Bash."; exit 1; }
  3. set -euxo pipefail
  4. readonly appdir="$1" # input path (Audacity install directory)
  5. readonly appimage="$2" # output path to use for created AppImage
  6. #============================================================================
  7. # Helper functions
  8. #============================================================================
  9. function download_github_release()
  10. {
  11. local -r repo_slug="$1" release_tag="$2" file="$3"
  12. wget -q --show-progress "https://github.com/${repo_slug}/releases/download/${release_tag}/${file}"
  13. chmod +x "${file}"
  14. }
  15. function extract_appimage()
  16. {
  17. # Extract AppImage so we can run it without having to install FUSE
  18. local -r image="$1" binary_name="$2"
  19. local -r dir="${image%.AppImage}.AppDir"
  20. "./${image}" --appimage-extract >/dev/null # dest folder "squashfs-root"
  21. mv squashfs-root "${dir}" # rename folder to avoid collisions
  22. ln -s "${dir}/AppRun" "${binary_name}" # symlink for convenience
  23. rm -f "${image}"
  24. }
  25. function download_appimage_release()
  26. {
  27. local -r github_repo_slug="$1" binary_name="$2" tag="$3"
  28. local -r image="${binary_name}-x86_64.AppImage"
  29. download_github_release "${github_repo_slug}" "${tag}" "${image}"
  30. extract_appimage "${image}" "${binary_name}"
  31. }
  32. function download_linuxdeploy_component()
  33. {
  34. local -r component="$1" tag="$2"
  35. download_appimage_release "linuxdeploy/$1" "$1" "$2"
  36. }
  37. function create_path()
  38. {
  39. local -r path="$1"
  40. if [[ -d "${path}" ]]; then
  41. return 1 # already exists
  42. fi
  43. mkdir -p "${path}"
  44. }
  45. #============================================================================
  46. # Fetch AppImage packaging tools
  47. #============================================================================
  48. if create_path "appimagetool"; then
  49. (
  50. cd "appimagetool"
  51. download_appimage_release AppImage/AppImageKit appimagetool continuous
  52. )
  53. fi
  54. export PATH="${PWD%/}/appimagetool:${PATH}"
  55. appimagetool --version
  56. if create_path "linuxdeploy"; then
  57. (
  58. cd "linuxdeploy"
  59. download_linuxdeploy_component linuxdeploy continuous
  60. )
  61. fi
  62. export PATH="${PWD%/}/linuxdeploy:${PATH}"
  63. linuxdeploy --list-plugins
  64. #============================================================================
  65. # Create symlinks
  66. #============================================================================
  67. ln -sf --no-dereference . "${appdir}/usr"
  68. ln -sf share/applications/tenacity.desktop "${appdir}/tenacity.desktop"
  69. ln -sf share/icons/hicolor/scalable/apps/tenacity.svg "${appdir}/tenacity.svg"
  70. ln -sf share/icons/hicolor/scalable/apps/tenacity.svg "${appdir}/.DirIcon"
  71. #============================================================================
  72. # Bundle dependencies
  73. #============================================================================
  74. # HACK: Some wxWidget libraries depend on themselves. Add
  75. # them to LD_LIBRARY_PATH so that linuxdeploy can find them.
  76. export LD_LIBRARY_PATH="${appdir}/usr/lib/tenacity:${WXWIDGETS_LD_LIBRARY_PATH}:${LD_LIBRARY_PATH-}"
  77. linuxdeploy --appdir "${appdir}" # add all shared library dependencies
  78. #============================================================================
  79. # Build AppImage
  80. #============================================================================
  81. appimagetool_args=(
  82. # none
  83. )
  84. if [[ "${AUDACITY_UPDATE_INFO-}" ]]; then
  85. # Enable updates. See https://github.com/AppImage/AppImageSpec/blob/master/draft.md#update-information
  86. appimagetool_args+=( --updateinformation="${AUDACITY_UPDATE_INFO}" )
  87. else
  88. echo >&2 "$0: Automatic updates disabled"
  89. fi
  90. # Create AppImage
  91. cd "$(dirname "${appimage}")" # otherwise zsync created in wrong directory
  92. appimagetool "${appimagetool_args[@]}" "${appdir}" "${appimage}"