Extracting lib from yocto build - yocto

I have a yocto build setup for a NXP dev-board. I can build images just fine and I thought this would be a simple way to cross compile a static library that I need for another project.
I added a recipe for the package, sqlcipher, and added sqlcipher-staticdev to IMAGE_INSTALL in local.conf.
This leads to me building sqlcipher just fine but I'm only getting dynamic libraries. I want to have a static library but even though I set DISABLE_STATIC = "" in the recipe I get nothing.
It has not been as easy as I first thought but is there a way to do this kind of thing?
Is there something else that needs to be done to build a static lib?

DISABLE_STATIC is appended to EXTRA_OECONF. Please check whether sqlcipher uses autotools to configure and whether has '--enable/disable-static' configure option.

Related

How to build a custom/different target in Yocto autotools projects?

I'm trying to use a 3rd-party autotools project in Yocto. Its unit tests are run by 'make check' and requires './configure --enable-oe-sdk', but this is not included in the default recipe (from autotools.bbclass). I want the tests built and run, so How to build a different autoconf target in a Yocto/BitBake recipe? Please note that the unit tests run on the development host, instead of running on the embedded target.
Here is what I have tried. Adding extra options to recipes based on Autoconf. But it doesn't say how to build a different target. I added EXTRA_OECONF += '--enable-oe-sdk', and tried to override do_compile() of the recipe. But got following error.
configure: error: OECORE_TARGET_SYSROOT must be set with --enable-oe-sdk
I'm asking a generic question, but the project in question is github.com/openbmc/phosphor-bmc-code-mgmt. Thank you so much!
In openBMC's own repository, there is the meta-phosphor repository with the recipe ready for phosphor-bmc-code-mgmt.bb.
Clone and add meta-phosphor to conf/bblayers.conf and use the phosphor-software-manager recipe.
I have run several openBMC test, but I am far from an expert.
It looks like the repo you are looking at was designed to be tested using the continues integration docker frame work.
The instruction on how to run the test are here .
In the example they are testing "phosphor-hwmon" so insted try testing "phosphor-bmc-code-mgmt"
If that does not work, I bet the someone on openbmc discord will help you out. https://discord.com/invite/69Km47zH98

Cocoa application with SwiftPM

My general goal is to create an app, that grabs all data from the postgreSQL database. Firstly, I connected C API libpq to connect my database. Then, I found a nice wrapper around libpq to make my life easier, thanks to Perfect. To install this wrapper, I need to create Package.swift, add a dependency and regenerate my xcodeproj with swift package generate-xcodeproj.
But when I do that, the whole structure of my project is being rebuilt and, as a result, when I run the project, a simulator doesn't start and I lose understanding on what's happening and build usually fails.
New project structure
It would've been nice if somebody explained to me, what happens when I generate a project after adding Package.swift file and how to keep everything working with new packages being added.
... when I run the project, a simulator doesn't start and I lose understanding on what's happening and build usually fails.l
I suppose you already have the libpq added and working. If this is an iOS project, try just adding the PostgresSQL.swift instead of using the package.

develop custom package, avoid rsyncing source to the build directory

I have custom package, where the sourcecode is directly in the package directory.
At the moment buildroot copies the sourcode to the builddirectory.
Is it possible to avoid this unnecessary overhead? The Makefile supports srcdir != builddir.
in < 2011 buildroot it was possible to specify the SRCDIR and nothing was rsynced.
This is unfortunately not supported right now. We are working on supporting out-of-tree build on a per-package basis in order to solve this issue. A first prototype has been sent to the list some time ago, but needs more work.

Linking Qt Libraries to a Cmake project (in eclipse)

so what I'm trying to do is utilize a simple Qt application IN eclipse without using the eclipse QT plugin by linking the required libraries through the GCC C++ Linker. However, I have been unable to locate the exact name of the library to use, or which libraries will be necessary. I've located the path of the Qt library my application seems to be accessing, but I continue to get an error when building that just says "-lqt" doesn't exist/can't find, etc.
The reason I'm doing this is because I'm building a simple game in OGRE for a project at the uni and wanted to use a Qt application for the GUI. Well, I didn't necessarily want too, but our professor wishes us to do so. Please don't suggest that I simply embed an Ogre widgit into my Qt application as this isn't an opti
Any ideas?
Thanks <3
Well, if you are using CMake then it should take care of everything provided that you instructed it to do so. phb provided a link to even better instructions.
First step is to instruct the CMake that we need Qt for our project. This is done with (you can specify individual parts that are needed as well):
find_package(Qt4 REQUIRED)
If Qt is not found in the typical locations (e.g. QTDIR is not set) - cmake will fail.
You also have to instruct CMake to use Qt include paths and set certain compiler definitions:
include(${QT_USE_FILE})
add_definitions(${QT_DEFINITIONS})
Finally, for each target you need to tell that you'd like to link with Qt libraries:
target_link_libraries(foo ${QT_LIBRARIES})
You might also want to process your headers and will have to process the user interface files with moc. For the details please refer to the provided links.
In addition to provided links you can have a look at the comments at the top of FindQt4.cmake file.

How to compile third party c library in Xcode?

i tried to do a sip client for iphone.
I tried to use oSip or eXosip2 , i download their package ,and compile it using "./configure""make""make install "
I get some *.a library, and i include there headers.
When i compile it , their is warning , this *.a library formate doesn't support !
It's really annoying, what should i do to make it work ?
Should i include their code ,and compile in xcode ,tried to build a static library ?
somebody tell me ,how to deal with some C librarys.
I see some topics talk about how to make a library in xcode . The problem is , if it is C library , it was already done, no need to build in xcode ,it's already their ,just make to build it . Whatif the *.a library doesn't support ,what should i do ??
PS: I was already doing the static library ,not dynamically. It's not a chooice between dynamically and static . It's all about x86_64 PC LIB is not suitable for i386 iphone.
You can't dynamically link on the iPhone; it has to be static linking.
Should i include their code ,and compile in xcode ,tried to build a static library ?
Yes, I think so.
Maybe have a look at this previous question: How do I add a third party Framework to iPhone project?
In order to compile for iOS, you should create an xcode project. It will be much easier to use, maintain and debug.
You can download here my osip/exosip/c-ares xcode project.
The above also requires c-ares which is an important dependancy for eXosip2.
PS: minor update may be required to compile git version. Just add/remove new/old files.