I have now added a transform to the ofApp.qbs file to copy some resources into the built app file. As I am new to qt creator and qbs, I had to make it super cumbersome.
Is there anyone who can help me simplifying this? @arturo maybe?
Essentially what I would like to do, is, after the build process, to copy a list of resources into the app package.
Here the cumbersome “solution”
// Copy osx ffmpeg dylibs
Transformer {
condition: qbs.targetOS.contains("osx")
Artifact {
filePath: FileInfo.joinPaths(parent.destinationDirectory, parent.targetName + ".app", "Contents/MacOS/libavcodec.56.dylib")
fileTags: "preprocessed_file"
}
Artifact {
filePath: FileInfo.joinPaths(parent.destinationDirectory, parent.targetName + ".app", "Contents/MacOS/libavdevice.56.dylib")
fileTags: "preprocessed_file"
}
Artifact {
filePath: FileInfo.joinPaths(parent.destinationDirectory, parent.targetName + ".app", "Contents/MacOS/libavfilter.5.dylib")
fileTags: "preprocessed_file"
}
Artifact {
filePath: FileInfo.joinPaths(parent.destinationDirectory, parent.targetName + ".app", "Contents/MacOS/libavformat.56.dylib")
fileTags: "preprocessed_file"
}
Artifact {
filePath: FileInfo.joinPaths(parent.destinationDirectory, parent.targetName + ".app", "Contents/MacOS/libavutil.54.dylib")
fileTags: "preprocessed_file"
}
Artifact {
filePath: FileInfo.joinPaths(parent.destinationDirectory, parent.targetName + ".app", "Contents/MacOS/libswresample.1.dylib")
fileTags: "preprocessed_file"
}
Artifact {
filePath: FileInfo.joinPaths(parent.destinationDirectory, parent.targetName + ".app", "Contents/MacOS/libswscale.3.dylib")
fileTags: "preprocessed_file"
}
prepare: {
var cpLibsCmd = new JavaScriptCommand();
cpLibsCmd.description = "copying dynamic libraries";
cpLibsCmd.silent = false;
cpLibsCmd.highlight = 'filegen';
cpLibsCmd.sourceCode = function(){
var ofxAvCodecLibDir;
if(FileInfo.isAbsolutePath(project.of_root)){
ofxAvCodecLibDir = Helpers.normalize(FileInfo.joinPaths(project.of_root, "addons/ofxAvCodec/libs/avcodec/lib", product.platform));
}else{
ofxAvCodecLibDir = Helpers.normalize(FileInfo.joinPaths(project.path, project.of_root, "addons/ofxAvCodec/libs/avcodec/lib", product.platform));
}
File.copy(FileInfo.joinPaths(ofxAvCodecLibDir,"libavcodec.56.dylib"), FileInfo.joinPaths(product.destinationDirectory, product.targetName + ".app", "Contents/MacOS/libavcodec.56.dylib"));
File.copy(FileInfo.joinPaths(ofxAvCodecLibDir,"libavdevice.56.dylib"), FileInfo.joinPaths(product.destinationDirectory, product.targetName + ".app", "Contents/MacOS/libavdevice.56.dylib"));
File.copy(FileInfo.joinPaths(ofxAvCodecLibDir,"libavfilter.5.dylib"), FileInfo.joinPaths(product.destinationDirectory, product.targetName + ".app", "Contents/MacOS/libavfilter.5.dylib"));
File.copy(FileInfo.joinPaths(ofxAvCodecLibDir,"libavformat.56.dylib"), FileInfo.joinPaths(product.destinationDirectory, product.targetName + ".app", "Contents/MacOS/libavformat.56.dylib"));
File.copy(FileInfo.joinPaths(ofxAvCodecLibDir,"libavutil.54.dylib"), FileInfo.joinPaths(product.destinationDirectory, product.targetName + ".app", "Contents/MacOS/libavutil.54.dylib"));
File.copy(FileInfo.joinPaths(ofxAvCodecLibDir,"libswresample.1.dylib"), FileInfo.joinPaths(product.destinationDirectory, product.targetName + ".app", "Contents/MacOS/libswresample.1.dylib"));
File.copy(FileInfo.joinPaths(ofxAvCodecLibDir,"libswscale.3.dylib"), FileInfo.joinPaths(product.destinationDirectory, product.targetName + ".app", "Contents/MacOS/libswscale.3.dylib"));
}
return [cpLibsCmd];
}
}