Branch: refs/heads/master Author: Jiří Techet techet@gmail.com Committer: Jiří Techet techet@gmail.com Date: Mon, 16 Oct 2017 09:53:00 UTC Commit: 2901cd4bacd1d0c5d1c490a70bf5be07b241b72e https://github.com/geany/geany-osx/commit/2901cd4bacd1d0c5d1c490a70bf5be07b2...
Log Message: ----------- Updates describing both GTK 2 and GTK 3 build
Modified Paths: -------------- Greybird/close.png Greybird/gtkrc Greybird/gtkrc.theme README.md geany-gtk2.bundle geany.modules
Modified: Greybird/close.png 0 lines changed, 0 insertions(+), 0 deletions(-) =================================================================== No diff available, check online
Modified: Greybird/gtkrc 0 lines changed, 0 insertions(+), 0 deletions(-) =================================================================== No diff available, check online
Modified: Greybird/gtkrc.theme 0 lines changed, 0 insertions(+), 0 deletions(-) =================================================================== No diff available, check online
Modified: README.md 163 lines changed, 87 insertions(+), 76 deletions(-) =================================================================== @@ -15,30 +15,31 @@ Files and Directories A brief description of the contents of the project directory:
### Directories -* *Faience*: Faience icon theme combined with Faenza-Cupertino +* *Faience*: Faience GTK 2 icon theme combined with Faenza-Cupertino icon theme (for better folder icons) and with lots of unneeded icons removed to save space. +* *Papirus*: Papirus GTK 3 icon theme with lots of unneeded icons + removed to save space. +* *Greybird*: Greybird GTK 2 theme which has been modified to look more + like Mac OS. +* *Arc*: Arc GTK 3 theme with minor text contrast adjustments. * *iconbuilder.iconset*: contains source icons for the Geany.icns file. Not needed for normal build, present just in case the icns file needs to be recreated for some reason. * *patches*: patches fixing VTE under Mac OS and enabling VTE bundling.
### Configuration files * *geany.modules*: JHBuild modules file with Geany dependencies. -* *geany.bundle*: configuration file describing the contents of the - app bundle. +* *geany-gtk2.bundle, geany-gtk3.bundle*: configuration files describing + the contents of the app bundle. * *Info.plist*: Mac OS application configuration file containing some basic information such as application name, version, etc. but also additional configuration including file types the application can open. -* *gtkrc.theme, close.png*: GTK theme based on the Greybird theme and - modified to match the Mac OS theme better. -* *gtkrc*: GTK configuration file including the theme file and changing - some Geany gtkrc settings. * *Geany.icns*: Mac OS Geany icon file.
### Scripts -* *launcher.sh*: launcher script from the gtk-mac-bundler project setting - all the necessary environment variables. +* *launcher-gtk2.sh, launcher-gtk3*: launcher script from the + gtk-mac-bundler project setting all the necessary environment variables. * *replace_icons.sh*: script replacing the color icons distributed together with Geany with grey icons from the Faience theme. * *plist_filetypes.py*: script generating the file type portion of the @@ -96,25 +97,26 @@ To create the bundle, you need to first install JHBuild and GTK as described bel setup_sdk(target="10.9", sdk_version="native", architectures=["x86_64"]) ```
- so the build creates a 64-bit binary that works on OS X 10.7 and later. + so the build creates a 64-bit binary that works on OS X 10.9 and later. OS X 10.9 is the first version which uses libc++ by default which is now required by Scintilla and VTE libraries because of C++11 support.
5. By default, jhbuild compiles without optimization flags. To enable optimization, add `setup_release()` at the end of `~/.jhbuildrc-custom`.
-6. Install GTK 2 and all its dependencies using the following commands: - - ``` - jhbuild bootstrap && jhbuild build python && jhbuild build meta-gtk-osx-bootstrap && jhbuild build meta-gtk-osx-core - ``` - - Instead of meta-gtk-osx-core (GTK 2) you can also use `meta-gtk-osx-gtk3` to - install GTK 3. Note that both GTK 2 and GTK 3 cannot be installed at the - same time. Also note that there seem to be various problems with the Mac OS - support in GTK 3; for this reason I have not spent more time with the GTK 3 - backend so there is no GTK3-specific theme or bundling support at this - moment. +6. Install GTK and all of its dependencies by running one of the following + commands: + * **GTK 2** + ``` + jhbuild bootstrap && jhbuild build python && jhbuild build meta-gtk-osx-bootstrap && jhbuild build meta-gtk-osx-core + ``` + * **GTK 3** + ``` + jhbuild bootstrap && jhbuild build python && jhbuild build meta-gtk-osx-bootstrap && jhbuild build meta-gtk-osx-gtk3 + ``` + This is the moment when you have to make a decision whether to build + Geany with GTK 2 or GTK 3 - they cannot be installed side by side. + At the moment GTK 2 is more stable and recommended for Geany build.
Geany Installation ------------------ @@ -124,22 +126,28 @@ Geany Installation export LC_ALL=en_US.UTF-8; export LANG=en_US.UTF-8 ```
-2. Inside the geany-osx directory run either - - ``` - jhbuild -m geany.modules build geany-bundle-release-gtk2 - ``` - - or - - ``` - jhbuild -m geany.modules build geany-bundle-gtk2 - ``` - - to build Geany either from release tarballs or git master. - - There are other useful module installation options - check the geany.modules - file for more options. +2. To build Geany, plugins and all of their dependencies, run one of + the following commandsinside the `geany-osx` directory depending on + the GTK version used and whether to use Geany sources from the latest + release tarball or current git master: + * **GTK 2** + * **Geany from release tarball** + ``` + jhbuild -m geany.modules build geany-bundle-release-gtk2 + ``` + * **Geany from git master** + ``` + jhbuild -m geany.modules build geany-bundle-git-gtk2 + ``` + * **GTK 3** + * **Geany from release tarball** + ``` + jhbuild -m geany.modules build geany-bundle-release-gtk3 + ``` + * **Geany from git master** + ``` + jhbuild -m geany.modules build geany-bundle-git-gtk3 + ```
Bundling -------- @@ -148,7 +156,6 @@ Bundling ``` jhbuild shell ``` - to start jhbuild shell.
*The rest of this section assumes you are running from within the jhbuild shell.* @@ -157,32 +164,36 @@ Bundling
https://github.com/geany/geany-themes
- and copy the colorschemes directory under `$PREFIX/share/geany`. - -3. Go to the geany-osx directory and copy the Faience icon theme to the - gtk icons directory: - - ``` - cp -r Faience $PREFIX/share/icons - ``` - -4. Replace Geany color icons by grey icons from the Faience theme by calling - - ``` - ./replace_icons.sh - ``` - - from within the geany-osx directory. - -5. Create the app bundle by calling - - ``` - gtk-mac-bundler geany-gtk2.bundle - ``` - - from within the geany-osx directory. - -6. Optionally if you have a development account at Apple and want to sign the + and copy the `colorschemes` directory under `$PREFIX/share/geany`. + +3. Go to the `geany-osx` directory and copy the icon theme to the GTK + icons directory: + * **GTK 2** + ``` + cp -r Faience $PREFIX/share/icons + ``` + and replace some Geany-specific icons by the icons from the theme + by running: + ``` + ./replace_icons.sh + ``` + * **GTK 3** + ``` + cp -r Papirus $PREFIX/share/icons + ``` + +4. Inside the `geany-osx` directory run the following command to create + the app bundle. + * **GTK 2** + ``` + gtk-mac-bundler geany-gtk2.bundle + ``` + * **GTK 3** + ``` + gtk-mac-bundler geany-gtk3.bundle + ``` + +5. Optionally if you have a development account at Apple and want to sign the resulting bundle so it can be started without warning dialogs, use
``` @@ -203,43 +214,43 @@ Bundling
Distribution ------------ -1. Get the create-dmg script from +1. Get the `create-dmg` script from
https://github.com/andreyvit/create-dmg.git
- and put it to your $PATH. + and put it to your `$PATH`.
2. Create the dmg installation image by calling ``` ./create_dmg.sh ```
- from within the geany-osx directory. If the SIGN_CERTIFICATE variable is + from within the `geany-osx` directory. If the `SIGN_CERTIFICATE` variable is defined, the image gets signed by the specified certificate.
Maintenance ----------- This section describes some maintenance-related activities which do not have to be performed during normal bundle/installer creation:
-* To get the Info.plist file associations in sync with - filetype_extensions.conf, copy the filetype extension portion from - filetype_extensions.conf to the marked place in plist_filetypes.py +* To get the `Info.plist` file associations in sync with + `filetype_extensions.conf`, copy the filetype extension portion from + `filetype_extensions.conf` to the marked place in `plist_filetypes.py` and run the script. Copy the output of the script to the marked - place in Info.plist. + place in `Info.plist`.
-* The Geany.icns icon file can be regenerated from the iconbuilder.iconset +* The `Geany.icns` icon file can be regenerated from the `iconbuilder.iconset` directory using
``` iconutil -c icns ./iconbuilder.iconset ```
* Before the release update the Geany version and copyright years inside - Info.plist and create_dmg.sh. Also update the `-release` targets in - geany.modules file to point to the new release. Dependencies inside - geany.modules can also be updated to newer versions. + `Info.plist` and `create_dmg.sh`. Also update the `-release` targets in + `geany.modules` file to point to the new release. Dependencies inside + `geany.modules` can also be updated to newer versions.
---
Modified: geany-gtk2.bundle 6 lines changed, 3 insertions(+), 3 deletions(-) =================================================================== @@ -178,15 +178,15 @@
<!-- Main gtkrc --> <data dest="${bundle}/Contents/Resources/etc/${gtkdir}/gtkrc"> - ${project}/gtkrc + ${project}/Greybird/gtkrc </data> <!-- The theme --> <data dest="${bundle}/Contents/Resources/etc/${gtkdir}/gtkrc.theme"> - ${project}/gtkrc.theme + ${project}/Greybird/gtkrc.theme </data> <!-- Custom (better looking) close button --> <data dest="${bundle}/Contents/Resources/etc/${gtkdir}/close.png"> - ${project}/close.png + ${project}/Greybird/close.png </data>
<!-- Icon themes to copy. The "icons" property can be either of
Modified: geany.modules 45 lines changed, 20 insertions(+), 25 deletions(-) =================================================================== @@ -76,7 +76,6 @@ cmakeargs="-DTHREADSAFE:BOOL=1"> <branch repo="download.github.com" module="libgit2/libgit2/archive/v0.26.0.tar.gz" - checkoutdir="libgit2-0.26.0" version="0.26.0"/> </cmake>
@@ -123,8 +122,8 @@ </dependencies> </metamodule>
- <!-- Geany GTK 2 --> - <autotools id="geany-gtk2" + <!-- Geany GTK 2 from git master --> + <autotools id="geany-git-gtk2" autogenargs="--enable-mac-integration"> <branch repo="github.com" module="geany/geany.git" @@ -134,8 +133,8 @@ </dependencies> </autotools>
- <!-- Geany GTK 3--> - <autotools id="geany-gtk3" + <!-- Geany GTK 3 from git master --> + <autotools id="geany-git-gtk3" autogenargs="--enable-mac-integration --enable-gtk3"> <branch repo="github.com" module="geany/geany.git" @@ -145,7 +144,7 @@ </dependencies> </autotools>
- <!-- Geany tarball release GTK 2 --> + <!-- Geany GTK 2 tarball release --> <autotools id="geany-release-gtk2" autogenargs="--enable-mac-integration"> <branch repo="download.geany.org" @@ -156,7 +155,7 @@ </dependencies> </autotools>
- <!-- Geany tarball release GTK 3 --> + <!-- Geany GTK 3 tarball release --> <autotools id="geany-release-gtk3" autogenargs="--enable-mac-integration --enable-gtk3"> <branch repo="download.geany.org" @@ -177,29 +176,29 @@ </dependencies> </metamodule>
- <!-- Geany-plugins GTK 2 --> - <autotools id="geany-plugins-gtk2"> + <!-- Geany-plugins GTK 2 from git master --> + <autotools id="geany-plugins-git-gtk2"> <branch repo="github.com" module="geany/geany-plugins.git" revision="master" /> <dependencies> - <dep package="geany-gtk2" /> + <dep package="geany-git-gtk2" /> <dep package="geany-plugins-deps-gtk2" /> </dependencies> </autotools>
- <!-- Geany-plugins GTK 3 --> - <autotools id="geany-plugins-gtk3"> + <!-- Geany-plugins GTK 3 from git master --> + <autotools id="geany-plugins-git-gtk3"> <branch repo="github.com" module="geany/geany-plugins.git" revision="master" /> <dependencies> - <dep package="geany-gtk3" /> + <dep package="geany-git-gtk3" /> <dep package="geany-plugins-deps-gtk3" /> </dependencies> </autotools>
- <!-- Geany-plugins tarball release GTK 2 --> + <!-- Geany-plugins GTK 2 tarball release --> <autotools id="geany-plugins-release-gtk2"> <branch repo="download.geany.org" module="geany-plugins/geany-plugins-1.31.tar.bz2" @@ -210,7 +209,7 @@ </dependencies> </autotools>
- <!-- Geany-plugins tarball release GTK 3 --> + <!-- Geany-plugins GTK 3 tarball release --> <autotools id="geany-plugins-release-gtk3"> <branch repo="download.geany.org" module="geany-plugins/geany-plugins-1.31.tar.bz2" @@ -221,34 +220,30 @@ </dependencies> </autotools>
- <!-- Build everything necessary for Geany bundle GTK 2 --> - <metamodule id="geany-bundle-gtk2"> + <!-- Build everything necessary for Geany bundle from git on GTK 2 --> + <metamodule id="geany-bundle-git-gtk2"> <dependencies> - <dep package="geany-gtk2" /> - <dep package="geany-plugins-gtk2" /> + <dep package="geany-plugins-git-gtk2" /> </dependencies> </metamodule>
- <!-- Build everything necessary for Geany bundle GTK 3 --> - <metamodule id="geany-bundle-gtk3"> + <!-- Build everything necessary for Geany bundle from git on GTK 3 --> + <metamodule id="geany-bundle-git-gtk3"> <dependencies> - <dep package="geany-gtk3" /> - <dep package="geany-plugins-gtk3" /> + <dep package="geany-plugins-git-gtk3" /> </dependencies> </metamodule>
<!-- Build everything necessary for Geany bundle from release tarballs GTK 2 --> <metamodule id="geany-bundle-release-gtk2"> <dependencies> - <dep package="geany-release-gtk2" /> <dep package="geany-plugins-release-gtk2" /> </dependencies> </metamodule>
<!-- Build everything necessary for Geany bundle from release tarballs GTK 3 --> <metamodule id="geany-bundle-release-gtk3"> <dependencies> - <dep package="geany-release-gtk3" /> <dep package="geany-plugins-release-gtk3" /> </dependencies> </metamodule>
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).