Building a native (no X11) MacOSX binary: Difference between revisions

From Bluefish Wiki
Jump to navigation Jump to search
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 8: Line 8:
follow the instructions to get the gtk core up and running
follow the instructions to get the gtk core up and running
  $ ./gtk-osx-setup.sh  
  $ ./gtk-osx-setup.sh  
$ PATH=~/.new_local/bin/:$PATH
  $ jhbuild bootstrap-gtk-osx
  $ jhbuild bootstrap-gtk-osx
  $ jhbuild build meta-gtk-osx-bootstrap meta-gtk-osx-python meta-gtk-osx-gtk3  shared-mime-info  
  $ 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/
find help on https://gitlab.gnome.org/GNOME/gtk-mac-integration/


== Building Bluefish with Makefile.osxapp ==
== 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
  jhbuild shell
Line 23: Line 26:


this creates a Bluefish.app on your Desktop
this creates a Bluefish.app on your Desktop
== Additional modules for more functionality ==
it's not clear why certain modules defined in ~/Source/jhbuild/modulesets are accepted by jhbuild and others are not?
$ jhbuild enchant


== Creating a working bundle Bluefish.app ==
== Creating a working bundle Bluefish.app ==


The gtk-mac-bundler project can be used to create a bundle with all libraries. The config file macosx/bluefish.bundle should be updated for the latest version of gtk-mac-bundler.
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) ==
== Build with jhbuild (work in progress, THIS IS NOT YET WORKING) ==

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