From e050a83cd52858eb64e2750ac440c9c554e2367c Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Tue, 22 Dec 2020 23:12:02 +0100 Subject: [PATCH] macos: produce working NetRadiant.app --- CMakeLists.txt | 100 ++++++++----- bundle/CMakeLists.txt | 13 +- contrib/CMakeLists.txt | 2 +- library-bundler | 5 +- plugins/CMakeLists.txt | 2 +- .../{NetRadiant.app => }/Contents/Info.plist | 0 .../Contents/Resources/netradiant.icns | Bin setup/apple/Makefile | 83 ----------- .../NetRadiant.app/Contents/MacOS/netradiant | 35 ----- .../Contents/Resources/etc/fonts/fonts.conf | 133 ------------------ .../Contents/Resources/etc/gtk-2.0/gtkrc | 0 .../Contents/Resources/etc/pango/pangorc | 1 - .../Contents/Resources/lib/.turd | 0 .../Resources/share/gtk-2.0/icons/.turd | 0 .../Resources/share/gtk-2.0/themes/.turd | 0 setup/apple/README.md | 50 ------- setup/apple/netradiant | 38 +++++ 17 files changed, 119 insertions(+), 343 deletions(-) rename setup/apple/{NetRadiant.app => }/Contents/Info.plist (100%) rename setup/apple/{NetRadiant.app => }/Contents/Resources/netradiant.icns (100%) delete mode 100644 setup/apple/Makefile delete mode 100755 setup/apple/NetRadiant.app/Contents/MacOS/netradiant delete mode 100644 setup/apple/NetRadiant.app/Contents/Resources/etc/fonts/fonts.conf delete mode 100644 setup/apple/NetRadiant.app/Contents/Resources/etc/gtk-2.0/gtkrc delete mode 100644 setup/apple/NetRadiant.app/Contents/Resources/etc/pango/pangorc delete mode 100644 setup/apple/NetRadiant.app/Contents/Resources/lib/.turd delete mode 100644 setup/apple/NetRadiant.app/Contents/Resources/share/gtk-2.0/icons/.turd delete mode 100644 setup/apple/NetRadiant.app/Contents/Resources/share/gtk-2.0/themes/.turd delete mode 100644 setup/apple/README.md create mode 100755 setup/apple/netradiant diff --git a/CMakeLists.txt b/CMakeLists.txt index 05ba8a3f..b17ed2b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,6 +70,26 @@ if (BUILD_RADIANT OR BUILD_TOOLS) set(BUILD_BINARIES ON) endif () +if (BUILD_BINARIES) + if (WIN32 OR APPLE OR "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") + set(BUNDLING_SUPPORTED ON) + endif() + + if (BUNDLING_SUPPORTED) + if(WIN32 AND NOT CMAKE_CROSSCOMPILING) + set(BUNDLE_LIBRARIES_DEFAULT ON) + else () + set(BUNDLE_LIBRARIES_DEFAULT OFF) + endif () + + option(BUNDLE_LIBRARIES "Bundle libraries" ${BUNDLE_LIBRARIES_DEFAULT}) + endif () + + if (BUNDLE_LIBRARIES AND BUNDLING_SUPPORTED) + set(FHS_INSTALL OFF CACHE PATH "Disabled because of BUNDLE_LIBRARIES" FORCE) + endif () +endif () + #----------------------------------------------------------------------- # Paths #----------------------------------------------------------------------- @@ -78,19 +98,32 @@ if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) set(CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}/install" CACHE PATH "..." FORCE) endif () +if (APPLE) + set(APPLE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/NetRadiant.app) + set(FINAL_INSTALL_PREFIX ${APPLE_INSTALL_PREFIX}/Contents/Prefix) +else () + set(FINAL_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) +endif () + set(RADIANT_NAME "NetRadiant" CACHE INTERNAL "...") add_definitions(-DRADIANT_NAME="${RADIANT_NAME}") set(RADIANT_BASENAME "netradiant" CACHE INTERNAL "...") add_definitions(-DRADIANT_BASENAME="${RADIANT_BASENAME}") -set(RADIANT_LIB_DIR ${CMAKE_INSTALL_PREFIX} CACHE INTERNAL "...") -set(RADIANT_BIN_DIR ${CMAKE_INSTALL_PREFIX} CACHE INTERNAL "...") -set(RADIANT_DATA_DIR ${CMAKE_INSTALL_PREFIX} CACHE INTERNAL "...") +set(RADIANT_BIN_DIR ${FINAL_INSTALL_PREFIX} CACHE INTERNAL "...") +set(RADIANT_LIB_DIR ${FINAL_INSTALL_PREFIX}/lib CACHE INTERNAL "...") +set(RADIANT_ADDONS_DIR ${FINAL_INSTALL_PREFIX} CACHE INTERNAL "...") +set(RADIANT_ETC_DIR ${FINAL_INSTALL_PREFIX}/etc CACHE INTERNAL "...") +set(RADIANT_SHARE_DIR ${FINAL_INSTALL_PREFIX}/share CACHE INTERNAL "...") +set(RADIANT_DATA_DIR ${FINAL_INSTALL_PREFIX} CACHE INTERNAL "...") if (FHS_INSTALL AND NOT BUNDLE_LIBRARIES) - set(RADIANT_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib/${RADIANT_BASENAME}) - set(RADIANT_BIN_DIR ${CMAKE_INSTALL_PREFIX}/bin) - set(RADIANT_DATA_DIR ${CMAKE_INSTALL_PREFIX}/share/${RADIANT_BASENAME}) + set(RADIANT_BIN_DIR ${FINAL_INSTALL_PREFIX}/bin) + set(RADIANT_LIB_DIR ${FINAL_INSTALL_PREFIX}/lib) + set(RADIANT_ADDONS_DIR ${RADIANT_LIB_DIR}/${RADIANT_BASENAME}) + set(RADIANT_ETC_DIR ${FINAL_INSTALL_PREFIX}/etc) + set(RADIANT_SHARE_DIR ${FINAL_INSTALL_PREFIX}/share) + set(RADIANT_DATA_DIR ${RADIANT_SHARE_DIR}/${RADIANT_BASENAME}) endif () set(GAMEPACKS_DOWNLOAD_DIR ${PROJECT_BINARY_DIR}/download CACHE PATH "Where to store downloaded game packs") @@ -273,26 +306,6 @@ if (BUILD_BINARIES) include_directories("${PROJECT_SOURCE_DIR}/include") include_directories("${PROJECT_SOURCE_DIR}/libs") - if (WIN32 OR APPLE OR "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") - set(BUNDLING_SUPPORTED ON) - endif() - - if (BUNDLING_SUPPORTED) - if(WIN32 AND NOT CMAKE_CROSSCOMPILING) - set(BUNDLE_LIBRARIES_DEFAULT ON) - else () - set(BUNDLE_LIBRARIES_DEFAULT OFF) - endif () - - option(BUNDLE_LIBRARIES "Bundle libraries" ${BUNDLE_LIBRARIES_DEFAULT}) - endif () - - if (BUNDLE_LIBRARIES AND BUNDLING_SUPPORTED) - add_subdirectory(bundle) - - set(FHS_INSTALL OFF CACHE PATH "Disabled because of BUNDLE_LIBRARIES" FORCE) - endif () - macro (copy_dlls target) if (BUNDLE_LIBRARIES AND BUNDLING_SUPPORTED) add_custom_command(TARGET ${target} POST_BUILD @@ -305,6 +318,16 @@ if (BUILD_BINARIES) endmacro () endif () +#----------------------------------------------------------------------- +# Bundle +#----------------------------------------------------------------------- + +if (BUILD_BINARIES) + if (BUNDLE_LIBRARIES AND BUNDLING_SUPPORTED) + add_subdirectory(bundle) + endif () +endif () + #----------------------------------------------------------------------- # Builtins: targets #----------------------------------------------------------------------- @@ -462,30 +485,35 @@ if (BUILD_BINARIES) endif () if (DOWNLOAD_GAMEPACKS) - if (FHS_INSTALL) - set(GAME_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/share/netradiant") - else () - set(GAME_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - endif () - install(DIRECTORY ${PROJECT_BINARY_DIR}/gamepacks DESTINATION ${RADIANT_DATA_DIR} ) endif () -if(BUILD_BINARIES AND FHS_INSTALL AND NOT WIN32 AND NOT APPLE) +if (BUILD_BINARIES AND FHS_INSTALL AND NOT WIN32 AND NOT APPLE) install(FILES ${PROJECT_SOURCE_DIR}/icons/netradiant.png - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps + DESTINATION ${RADIANT_SHARE_DIR}/pixmaps ) install(FILES ${PROJECT_SOURCE_DIR}/icons/netradiant.desktop - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications + DESTINATION ${RADIANT_SHARE_DIR}/applications ) install(FILES ${PROJECT_SOURCE_DIR}/icons/mime/map.xml - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/mime/model + DESTINATION ${RADIANT_SHARE_DIR}/mime/model + ) +endif () + +if (APPLE) + install(DIRECTORY + setup/apple/Contents + DESTINATION ${APPLE_INSTALL_PREFIX} + ) + install(PROGRAMS + setup/apple/netradiant + DESTINATION ${APPLE_INSTALL_PREFIX}/Contents/MacOS ) endif () diff --git a/bundle/CMakeLists.txt b/bundle/CMakeLists.txt index 73750b70..f899cee0 100644 --- a/bundle/CMakeLists.txt +++ b/bundle/CMakeLists.txt @@ -3,6 +3,8 @@ if (WIN32) set(BUNDLE_SHARE ON) elseif (APPLE) set(BUNDLE_OS_NAME "macos") + set(BUNDLE_SHARE ON) + set(BUNDLE_ETC ON) elseif ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") set(BUNDLE_OS_NAME "linux") else () @@ -20,12 +22,19 @@ add_custom_target(bundle ALL install(DIRECTORY ${PROJECT_BINARY_DIR}/lib - DESTINATION ${CMAKE_INSTALL_PREFIX} + DESTINATION ${FINAL_INSTALL_PREFIX} ) if (BUNDLE_SHARE) install(DIRECTORY ${PROJECT_BINARY_DIR}/share - DESTINATION ${CMAKE_INSTALL_PREFIX} + DESTINATION ${FINAL_INSTALL_PREFIX} + ) +endif () + +if (BUNDLE_ETC) + install(DIRECTORY + ${PROJECT_BINARY_DIR}/etc + DESTINATION ${FINAL_INSTALL_PREFIX} ) endif () diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index f2515bf8..6fbe90a9 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -8,7 +8,7 @@ macro(radiant_plugin name) copy_dlls(${name}) install( TARGETS ${name} - LIBRARY DESTINATION ${RADIANT_LIB_DIR}/plugins + LIBRARY DESTINATION ${RADIANT_ADDONS_DIR}/plugins ) endmacro() diff --git a/library-bundler b/library-bundler index 9a48a626..62f48f12 100755 --- a/library-bundler +++ b/library-bundler @@ -148,7 +148,7 @@ Multi::getGtkThemeName () { echo 'MS-Windows' ;; *) - echo 'Default' + echo 'Raleigh' ;; esac } @@ -217,6 +217,9 @@ Multi::getGtkDeps () { ;; 'macos') cat <<-EOF + etc/fonts + share/themes/${gtk_theme_name}/gtk-2.0 + share/fontconfig share/icons/hicolor share/locale ${lib_prefix}/gdk-pixbuf-2.0 diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index b3d29091..8db4b7fa 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -8,7 +8,7 @@ macro(radiant_plugin name) copy_dlls(${name}) install( TARGETS ${name} - LIBRARY DESTINATION ${RADIANT_LIB_DIR}/modules + LIBRARY DESTINATION ${RADIANT_ADDONS_DIR}/modules ) endmacro() diff --git a/setup/apple/NetRadiant.app/Contents/Info.plist b/setup/apple/Contents/Info.plist similarity index 100% rename from setup/apple/NetRadiant.app/Contents/Info.plist rename to setup/apple/Contents/Info.plist diff --git a/setup/apple/NetRadiant.app/Contents/Resources/netradiant.icns b/setup/apple/Contents/Resources/netradiant.icns similarity index 100% rename from setup/apple/NetRadiant.app/Contents/Resources/netradiant.icns rename to setup/apple/Contents/Resources/netradiant.icns diff --git a/setup/apple/Makefile b/setup/apple/Makefile deleted file mode 100644 index cf85d979..00000000 --- a/setup/apple/Makefile +++ /dev/null @@ -1,83 +0,0 @@ -# Makefile for NetRadiant.app, requires http://macdylibbundler.sourceforge.net/ - -INSTALL = ../../install -TARGET = target -RESOURCES = $(TARGET)/NetRadiant.app/Contents/Resources -BINDIR = $(RESOURCES)/install -CONFDIR = $(RESOURCES)/etc -DATADIR = $(RESOURCES)/share -LIBDIR = $(RESOURCES)/lib -VERSION = 1.5.0 -DMG = $(TARGET)/NetRadiant-$(VERSION).dmg -VOLUME_NAME = "NetRadiant $(VERSION)" - -# We must rewrite some Gtk configuration files, which vary from environment to -# environment depending on where you've installed MacPorts. Fun! - -MACPORTS_PREFIX := $(shell which port | sed 's:/bin/port::') -PREFIX_SED_EXPR = "s:$(MACPORTS_PREFIX):@executable_path/..:g" - -all: install bundle - --pre-install: - install -d $(TARGET) - cp -r NetRadiant.app $(TARGET) - find $(TARGET) -name .turd -delete - --gtk-runtime-gdk-pixbuf-2.0: - cp -r $(MACPORTS_PREFIX)/lib/gdk-pixbuf-2.0 $(LIBDIR) - find $(LIBDIR)/gdk-pixbuf-2.0 -type f ! -name "*.so" -delete - - gdk-pixbuf-query-loaders | sed $(PREFIX_SED_EXPR) > \ - $(CONFDIR)/gtk-2.0/gdk-pixbuf.loaders - --gtk-runtime-pango: - cp -r $(MACPORTS_PREFIX)/lib/pango $(LIBDIR) - find $(LIBDIR)/pango -type f ! -name "*.so" -delete - - pango-querymodules | sed $(PREFIX_SED_EXPR) > \ - $(CONFDIR)/pango/pango.modules - --gtk-runtime: -gtk-runtime-gdk-pixbuf-2.0 -gtk-runtime-pango - cp -r $(MACPORTS_PREFIX)/lib/gtk-2.0 $(LIBDIR) - find $(LIBDIR)/gtk-2.0 -type f ! -name "*.so" -delete - - rm -rf $(LIBDIR)/gtk-2.0/{includes,modules} - rm -rf $(LIBDIR)/gtk-2.0/*/printbackends - - cp -r $(MACPORTS_PREFIX)/share/themes/Default $(RESOURCES)/share - - gtk-query-immodules-2.0 | sed $(PREFIX_SED_EXPR) > \ - $(CONFDIR)/gtk-2.0/gtk.immodules - -install: -pre-install -gtk-runtime - cp -r $(INSTALL) $(RESOURCES) - #rm -rf `find $(INSTDIR)/installs -type d -name .svn` - -bundle: - - # The Radiant plugins (modules) are a little funky - # Some of them are actually linked against the build directory - - test -L install || ln -s $(INSTALL) - - dylibbundler -b \ - -x $(BINDIR)/radiant \ - -x $(BINDIR)/q2map \ - -x $(BINDIR)/q3data \ - -x $(BINDIR)/q3map2 \ - -x $(BINDIR)/qdata3 \ - `find $(BINDIR)/modules -name "*.dylib" | xargs -I {} echo -x {}` \ - `find $(LIBDIR) -name "*.dylib" | xargs -I {} echo -x {}` \ - -d $(LIBDIR) -of -p @executable_path/../lib - - rm -f install - -image: - find $(TARGET) -name .DS_Store -delete - ln -f -s /Applications $(TARGET)/Applications - hdiutil create -ov $(DMG) -srcfolder $(TARGET) -volname $(VOLUME_NAME) - rm $(TARGET)/Applications - -clean: - rm -rf $(TARGET)/* diff --git a/setup/apple/NetRadiant.app/Contents/MacOS/netradiant b/setup/apple/NetRadiant.app/Contents/MacOS/netradiant deleted file mode 100755 index 701a7fec..00000000 --- a/setup/apple/NetRadiant.app/Contents/MacOS/netradiant +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -RADIANT_HOME=$(dirname "$0") -RADIANT_HOME=${RADIANT_HOME/NetRadiant.app*/NetRadiant.app} - -echo -echo "Starting NetRadiant in ${RADIANT_HOME}" -echo - -set -x - -resources="${RADIANT_HOME}/Contents/Resources" - -export FONTCONFIG_PATH="${resources}/etc/fonts" -export FC_DEBUG=1024 - -export GDK_GL_LIBGL_PATH="${resources}/lib/libGL.1.dylib" -export GDK_GL_LIBGLU_PATH="${resources}/lib/libGLU.1.dylib" - -export GDK_PATH="${resources}" -export GDK_PIXBUF_MODULE_FILE="${resources}/etc/gtk-2.0/gdk-pixbuf.loaders" - -export GOBJECT_PATH="${resources}" - -export GTK_DATA_PREFIX="${resources}" -export GTK_EXE_PREFIX="${resources}" -export GTK_PATH="${resources}" - -export PANGO_SYSCONFDIR="${resources}/etc" -export PANGO_LIBDIR="${resources}/lib" - -cd "${resources}/install" -./radiant & - -set +x \ No newline at end of file diff --git a/setup/apple/NetRadiant.app/Contents/Resources/etc/fonts/fonts.conf b/setup/apple/NetRadiant.app/Contents/Resources/etc/fonts/fonts.conf deleted file mode 100644 index 7183a4be..00000000 --- a/setup/apple/NetRadiant.app/Contents/Resources/etc/fonts/fonts.conf +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - /usr/X11/lib/X11/fonts - /Library/Fonts - /System/Library/Fonts - fonts - - - - - mono - - - monospace - - - - - - - sans serif - - - sans-serif - - - - - - - sans - - - sans-serif - - - - - fontconfig - - - - - 0x0020 - 0x00A0 - 0x00AD - 0x034F - 0x0600 - 0x0601 - 0x0602 - 0x0603 - 0x06DD - 0x070F - 0x115F - 0x1160 - 0x1680 - 0x17B4 - 0x17B5 - 0x180E - 0x2000 - 0x2001 - 0x2002 - 0x2003 - 0x2004 - 0x2005 - 0x2006 - 0x2007 - 0x2008 - 0x2009 - 0x200A - 0x200B - 0x200C - 0x200D - 0x200E - 0x200F - 0x2028 - 0x2029 - 0x202A - 0x202B - 0x202C - 0x202D - 0x202E - 0x202F - 0x205F - 0x2060 - 0x2061 - 0x2062 - 0x2063 - 0x206A - 0x206B - 0x206C - 0x206D - 0x206E - 0x206F - 0x2800 - 0x3000 - 0x3164 - 0xFEFF - 0xFFA0 - 0xFFF9 - 0xFFFA - 0xFFFB - - - - 30 - - - - - diff --git a/setup/apple/NetRadiant.app/Contents/Resources/etc/gtk-2.0/gtkrc b/setup/apple/NetRadiant.app/Contents/Resources/etc/gtk-2.0/gtkrc deleted file mode 100644 index e69de29b..00000000 diff --git a/setup/apple/NetRadiant.app/Contents/Resources/etc/pango/pangorc b/setup/apple/NetRadiant.app/Contents/Resources/etc/pango/pangorc deleted file mode 100644 index f56d3437..00000000 --- a/setup/apple/NetRadiant.app/Contents/Resources/etc/pango/pangorc +++ /dev/null @@ -1 +0,0 @@ -[Pango] \ No newline at end of file diff --git a/setup/apple/NetRadiant.app/Contents/Resources/lib/.turd b/setup/apple/NetRadiant.app/Contents/Resources/lib/.turd deleted file mode 100644 index e69de29b..00000000 diff --git a/setup/apple/NetRadiant.app/Contents/Resources/share/gtk-2.0/icons/.turd b/setup/apple/NetRadiant.app/Contents/Resources/share/gtk-2.0/icons/.turd deleted file mode 100644 index e69de29b..00000000 diff --git a/setup/apple/NetRadiant.app/Contents/Resources/share/gtk-2.0/themes/.turd b/setup/apple/NetRadiant.app/Contents/Resources/share/gtk-2.0/themes/.turd deleted file mode 100644 index e69de29b..00000000 diff --git a/setup/apple/README.md b/setup/apple/README.md deleted file mode 100644 index 069cf3db..00000000 --- a/setup/apple/README.md +++ /dev/null @@ -1,50 +0,0 @@ -NetRadiant for Apple OS X -======================== - -This directory provides packaging steps for NetRadiant for OS X. This document describes compiling the application on OSX as well as generating distributable bundles using the framework provided in this directory. - -Dependencies & Compilation --------------------------- - -Directions for OS X Yosemite 10.10 - your mileage may vary: - -- Install [MacPorts](http://macports.org). -- Install [XQuartz](http://xquartz.macosforge.org/) - -- Install dependencies with MacPorts: - -``` -sudo port install dylibbundler pkgconfig gtkglext -``` - -- Get the NetRadiant code and compile: - -``` -git clone https://gitlab.com/xonotic/netradiant.git -cd netradiant/ -make -``` - -- Run the build: - -(from the netradiant/ directory) -``` -./install/radiant -``` - -XQuartz note: on my configuration XQuartz doesn't automatically start for some reason. I have to open another terminal, and run the following command: `/Applications/Utilities/XQuartz.app/Contents/MacOS/X11.bin`, then start radiant. - -Building NetRadiant.app ------------------------ - -The `Makefile` in the 'setup/apple/' directory will produce a distributable .app bundle for NetRadiant using `dylibbundler`: - -``` -make -make image -``` - -Getting help ------------- - -IRC: Quakenet #xonotic, or post something on the issue tracker.. diff --git a/setup/apple/netradiant b/setup/apple/netradiant new file mode 100755 index 00000000..9e27101d --- /dev/null +++ b/setup/apple/netradiant @@ -0,0 +1,38 @@ +#! /usr/bin/env bash + +set -o physical + +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" + +bundle_dir="$(cd "${script_dir}/../Prefix"; pwd)" + +echo "Starting NetRadiant in ${bundle_dir}" + +set -x + +cd "${bundle_dir}" + +export FC_DEBUG=1024 + +# if bundled +if [ -d "${bundle_dir}/share/icons/hicolor" ] +then + export FONTCONFIG_PATH="${bundle_dir}/etc/fonts" + + # export GDK_GL_LIBGL_PATH="${bundle_dir}/lib/libGL.1.dylib" + # export GDK_GL_LIBGLU_PATH="${bundle_dir}/lib/libGLU.1.dylib" + + export GDK_PATH="${bundle_dir}" + + export GDK_PIXBUF_MODULE_FILE="${bundle_dir}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" + + export GTK_IM_MODULE_FILE="${bundle_dir}/lib/gtk-2.0/2.10.0/immodules.cache" + + export GOBJECT_PATH="${bundle_dir}" + + export GTK_DATA_PREFIX="${bundle_dir}" + export GTK_EXE_PREFIX="${bundle_dir}" + export GTK_PATH="${bundle_dir}" +fi + +./netradiant & -- 2.39.2