Integrated Development Environment
You can almost always build any GNUstep app project with a terminal procedure like this:
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh [./configure] make [-j4] [sudo -E make install]
The first line includes all the environment variables needed for GNUstep make to build an app, the second (optional) will configure the build process if needed, the third will start the actual build process (
-j specifies the number of concurrent builds, should be the number of your CPU cores).
make install will install the build result into
/usr/GNUstep/Local. Remember to always use
-E as this preserves the environment variables set by
GNUstep.sh and necessary for GNUstep
Develop graphical user interfaces
Coming from macOS you probably know Xcode was divided into Interface Builder and Xcode / Project Builder in earlier times. The "Interface Builder" of GNUstep is "Gorm.app". It is the central tool for creating graphical user interface leveraging gnustep-gui (AppKit framework). Use Gorm.app (
/usr/GNUstep/System/Tools/Gorm) to open
.gorm-Bundles (Gorm will open these dirs just like files as you are used to if you come from a Mac). You are then ready to go to edit interfaces:
For more information on how to do this see further documentation regarding GNUstep and Cocoa development.
Different approaches for building cross platform GUI
Basically you may choose one of the following paths if you plan to compile your app on macOS as well:
- Create the interface using Gorm (and
.gormfiles) and export
.nibfiles. Cocoa will probably be able to read and execute these
.nibfiles, but you probably will not be able to edit them using Xcode.
- Create the interface using Xcode (and
.xibfiles) and use these for GNUstep. gnustep-gui (GNUstep AppKit framework) will probably be able to read and execute this
.xib(as long as you use only classes and technologies which exist within GNUstep), but you currently will not be able to edit these files using Gorm.
- Create and edit
.xibfiles and use both with the same Objective C code. These files can peacefully coexist as GNUstep chooses to load
.gormfiles over existing
KDevelop (based on Kate) is a very advanced and completely free (as in "free speech") Integrated Desktop Environment (IDE) leveraging the power of clang. It is primarily optimized for editing C++ code, but it supports GNUmakefiles and due to the capabilities of clang it will work with Objective C(++) quite well.
Using Arch/Manjaro just install KDevelop using
sudo pacman -S kdevelop and open an project by directing KDevelop to the project's GNUmakefile.
After opening an GNUstep app project, adjust its settings by adding and setting the required includes, which should be at least
Open the general settings of KDevelop and set "Clang format" as source code formatter to get that feature for Objective C as well. Just add a
.clang-format file to your project. I recommend the "NYTimes Objective-C Style Guide", which is represented by this clang-format file.
You then are able to start editing your code. KDevelop will provide you common features like syntax highlighting, code formatting, code completion and quick code navigation:
Start building from KDevelop
KDevelop offers direct access to a terminal which you can use to build your projects. If you wish to use the GUI button, save a wrapper script like this one to a place you like and set this as your project's
#!/bin/bash . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh make "$@"
For debugging libraries or apps from the repo you are needing the debug symbols which are provided by separate debug packages. Just add
-debug to any package name when installing it using pacman to get the debugging symbols installed.