Build for linux does not copy resources folder content
sh1l0n opened this issue · 1 comments
sh1l0n commented
In the build.sh script the app-bundle is generated only for MacOSX devices but if we compile from Linux we also want the resources.
So maybe we need to add an else condition in that script. The modified build.sh could be something as the next
gtk=`echo .build/checkouts/SwiftGtk*/Sources/Gtk/Gtk-3.0.swift`
[ -e $gtk ] || ./generate-wrapper.sh
swift build $CCFLAGS $LINKFLAGS "$@"
if [ `uname` = "Darwin" ]; then
. ./app-bundle.sh
else
cp -r $RESOURCES_DIR/* $BUILD_BIN/
fi
I found the problem while trying to load css file from resources throught the next function:
func readCssFile(forResource: String) {
if let fileURL = Bundle.main.url(forResource: forResource, withExtension: "css") {
if let fileContents = try? String(contentsOf: fileURL) {
if let screen = ScreenRef.getDefault(), let css = try? CSSProvider(from: fileContents) {
screen.add(provider: css, priority: STYLE_PROVIDER_PRIORITY_APPLICATION)
}
}
}
}
rhx commented
This is probably something that the app-bundle.sh
script (or an install script) should be doing. At the moment, the app-bundle script is macOS only. The question is what would be a good app structure on Linux that is somewhat idiomatic for different desktop environments (such as Gnome, KDE, etc.)?