Building a native (no X11) MacOSX binary: Difference between revisions
No edit summary |
No edit summary |
||
(34 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
This is work in progress. | This is work in progress. | ||
A lot of information can be found here: | == Getting a native gtk == | ||
A lot of information can be found here: https://www.gtk.org/docs/installations/macos/ | |||
First follow the Quick start as described here: | |||
https://gitlab.gnome.org/GNOME/gtk-osx/-/wikis/home#quick-start | |||
follow the instructions to get the gtk core up and running | |||
$ ./gtk-osx-setup.sh | |||
$ PATH=~/.new_local/bin/:$PATH | |||
$ jhbuild bootstrap-gtk-osx | |||
$ jhbuild build meta-gtk-osx-bootstrap meta-gtk-osx-python meta-gtk-osx-gtk3 shared-mime-info enchant | |||
find help on https://gitlab.gnome.org/GNOME/gtk-mac-integration/ | |||
== Building Bluefish with Makefile.osxapp == | |||
for bundling you need https://gitlab.gnome.org/GNOME/gtk-mac-bundler as well. Download it and run ''make install'' | |||
jhbuild shell | |||
cd /to/your/bluefish/source/path | |||
./autogen.sh | |||
make -j6 -f Makefile.osxapp | |||
(the -j6 is for a 6core computer) | |||
this creates a Bluefish.app on your Desktop | |||
== Creating a working bundle Bluefish.app == | |||
The gtk-mac-bundler project is used to create a bundle with all libraries, it is called during the above mentioned make command. The config file macosx/bluefish.bundle and macosx/Info.plist should be updated for every version of Bluefish. | |||
== Build with jhbuild (work in progress, THIS IS NOT YET WORKING) == | |||
==== Building with a jhbuild configuration ==== | |||
a jhbuild section for bluefish looks like this: | a jhbuild section for bluefish looks like this: | ||
Line 8: | Line 39: | ||
<repository type="tarball" name="bluefish" href="http://www.bennewitz.com/bluefish/stable/source/"/> | <repository type="tarball" name="bluefish" href="http://www.bennewitz.com/bluefish/stable/source/"/> | ||
<autotools id="bluefish"> | <autotools id="bluefish"> | ||
<branch module="bluefish-2.0.0.tar.bz2" version="2.0.0" repo="bluefish" md5="ac9b1e8ef6d5691718a0daa6c78d5618" size="3287346"/><dependencies> | <branch module="bluefish-2.0.0.tar.bz2" version="2.0.0" repo="bluefish" md5="ac9b1e8ef6d5691718a0daa6c78d5618" size="3287346"/> | ||
<dependencies> | |||
<dep package="intltool"/> | <dep package="intltool"/> | ||
<dep package="gtk+"/> | <dep package="gtk+"/> | ||
Line 20: | Line 52: | ||
</autotools> | </autotools> | ||
---------------------------------- | ---------------------------------- | ||
or a section for SVN: | |||
---------------------------------- | |||
<repository type="svn" name="bluefish-svn" default="yes" href="https://bluefish.svn.sourceforge.net/svnroot/" /> | |||
<autotools id="bluefish-svn" autogen-sh="./configure" autogenargs="--disable-nls" > | |||
<branch repo="bluefish-svn" module="bluefish/trunk/bluefish"/> | |||
<dependencies> | |||
<dep package="intltool"/> | |||
<dep package="gtk+"/> | |||
<dep package="glib"/> | |||
<dep package="libxml2"/> | |||
<dep package="ige-mac-integration"/> | |||
</dependencies> | |||
<suggests> | |||
<dep package="enchant"/> | |||
<dep package="gucharmap"/> | |||
</suggests> | |||
</autotools> | |||
-------------------------------------- | |||
this section will fail the first time, choose 4 (enter shell), run | |||
./autogen.sh | |||
exit and choose 1 (rerun configure) | |||
== Creating a package == | |||
The quick and dirty way: open an existing Bluefish.dmg, convert it to writable dmg, copy the contents of the newly built Bluefish.app into the dmg, convert it back to compressed. | |||
Some packages that should be installed (with jhbuild) as well: | |||
shared-mime-info | |||
meta-gtk-osx-themes | |||
gnome-mime-data | |||
gnome-icon-theme | |||
gtk-engines | |||
tango-icon-theme | |||
run the bluefish bundle | |||
create a read-write image, copy Bluefish.app in there | |||
create a symlink in the root to Applications | |||
=== Things To do === | |||
* add a mime type for clojure | |||
* remove unneeded translations | |||
== Better MacOSX integration == | |||
in SVN is an initial start. The menubar is now properly integrated in the OSX menu. | |||
what needs to be done: | |||
* open from the Finder | |||
* proper icon |
Latest revision as of 19:26, 11 August 2024
This is work in progress.
Getting a native gtk
A lot of information can be found here: https://www.gtk.org/docs/installations/macos/
First follow the Quick start as described here: https://gitlab.gnome.org/GNOME/gtk-osx/-/wikis/home#quick-start follow the instructions to get the gtk core up and running
$ ./gtk-osx-setup.sh $ PATH=~/.new_local/bin/:$PATH $ jhbuild bootstrap-gtk-osx $ jhbuild build meta-gtk-osx-bootstrap meta-gtk-osx-python meta-gtk-osx-gtk3 shared-mime-info enchant
find help on https://gitlab.gnome.org/GNOME/gtk-mac-integration/
Building Bluefish with Makefile.osxapp
for bundling you need https://gitlab.gnome.org/GNOME/gtk-mac-bundler as well. Download it and run make install
jhbuild shell cd /to/your/bluefish/source/path ./autogen.sh make -j6 -f Makefile.osxapp
(the -j6 is for a 6core computer)
this creates a Bluefish.app on your Desktop
Creating a working bundle Bluefish.app
The gtk-mac-bundler project is used to create a bundle with all libraries, it is called during the above mentioned make command. The config file macosx/bluefish.bundle and macosx/Info.plist should be updated for every version of Bluefish.
Build with jhbuild (work in progress, THIS IS NOT YET WORKING)
Building with a jhbuild configuration
a jhbuild section for bluefish looks like this:
<repository type="tarball" name="bluefish" href="http://www.bennewitz.com/bluefish/stable/source/"/> <autotools id="bluefish"> <branch module="bluefish-2.0.0.tar.bz2" version="2.0.0" repo="bluefish" md5="ac9b1e8ef6d5691718a0daa6c78d5618" size="3287346"/> <dependencies> <dep package="intltool"/> <dep package="gtk+"/> <dep package="glib"/> <dep package="libxml2"/> </dependencies> <suggests> <dep package="enchant"/> <dep package="gucharmap"/> </suggests> </autotools>
or a section for SVN:
<repository type="svn" name="bluefish-svn" default="yes" href="https://bluefish.svn.sourceforge.net/svnroot/" /> <autotools id="bluefish-svn" autogen-sh="./configure" autogenargs="--disable-nls" > <branch repo="bluefish-svn" module="bluefish/trunk/bluefish"/> <dependencies> <dep package="intltool"/> <dep package="gtk+"/> <dep package="glib"/> <dep package="libxml2"/> <dep package="ige-mac-integration"/> </dependencies> <suggests> <dep package="enchant"/> <dep package="gucharmap"/> </suggests> </autotools>
this section will fail the first time, choose 4 (enter shell), run
./autogen.sh
exit and choose 1 (rerun configure)
Creating a package
The quick and dirty way: open an existing Bluefish.dmg, convert it to writable dmg, copy the contents of the newly built Bluefish.app into the dmg, convert it back to compressed.
Some packages that should be installed (with jhbuild) as well:
shared-mime-info meta-gtk-osx-themes gnome-mime-data gnome-icon-theme gtk-engines tango-icon-theme
run the bluefish bundle
create a read-write image, copy Bluefish.app in there create a symlink in the root to Applications
Things To do
- add a mime type for clojure
- remove unneeded translations
Better MacOSX integration
in SVN is an initial start. The menubar is now properly integrated in the OSX menu.
what needs to be done:
- open from the Finder
- proper icon