Hello,
Now, I’m working to user MBS SQL Plug-in on an existing project. It work fine but I need to add separately library to connect to my MySQL server.
I added copyfile
- for MacOS to framwork folder to put libmysqlclient.18.dylib to /Applications/MyApp.app/Contents/Framwork/
- for Windows to framwork folder to put libmysql32.dll and libmysql64.dll c:\programs\MyApp\MyApp Libs\
How can I easy get the framwork folder ?
I looked on SpecialFolder, but I don’t found the framwork folder
Regards
Arnaud
Use a CopyFile step after the build.
Hello Michel,
The CopyFile work fine, but for example on my Mac, I can’t success to get the library withe the code :
[quote]dim f as new FolderItem
db.SetFileOption db.kOptionLibraryMySQL, f.Child(“MyApp.app”).Child(“Contents”).Child(“Frameworks”).Child(“libmysqlclient.18.dylib”)[/quote]
but the file exist on the folder.
I understand why it doesn’s work. the debug app haven’t the same name. Debug MyApp.app
You should probably get the App.ExecutableFile property, which is a FolderItem pointing to the exe. That way, you do not have to know how your app is named. Like this:
dim f as FolderItem
#if TargetMacOS
f = App.ExecutableFile.Parent.Parent.Child("Frameworks").Child("libmysqlclient.18.dylib")
#else
f = App.ExecutableFile.Parent.Child("FolderNextToYourExe").Child("libmysqlclient.18.dll")
#endif
It is not that.
Do yourself a service, and avail yourself of TPSF at https://forum.xojo.com/15318-modules-for-you-updated-12-17/0
It will give you access to Contents no matter the build debug or not. Mac or Windows.
Yet, this reports false here :
dim f as folderItem = TPSF.Contents.child("Frameworks").child("InternetEncodings.dylibs")
system.debuglog f.shellpath
system.debuglog str(f.exists)
I strongly suspect it may have to do with permissions. You may need to set the permissions for your dylib with chmod 777, which is unlimited access.
Thanks Thomas,
I found app.executablefile.name on this thread https://forum.xojo.com/19415-how-to-get-application-name/0
It’s works with
dim f as new FolderItem
db.SetFileOption db.kOptionLibraryMySQL, f.Child(app.ExecutableFile.Name+".app").Child("Contents").Child("Frameworks").Child("libmysqlclient.18.dylib")
but i prefer your relative path!
There is a Frameworks
path in TPSF that will get you to the right place.
https://github.com/devtimi/TPSF/