Re: googletest shared library


Federico Pellegrin
 


Hi,
Regarding the INSANE_SKIP: as that files get packed in the "-dev" package, you should probably then accordingly have:

INSANE_SKIP_${PN}-dev += "dev-elf"

Cheers,
Federico


Il giorno gio 23 set 2021 alle ore 16:46 Lijun Chen <lijchen@...> ha scritto:

I tried INSANE_SKIP_${PN} += "dev-elf" and "dev-so", still got the QA error:

ERROR: googletest-1.10.0-r0 do_package_qa: QA Issue: -dev package googletest-dev contains non-symlink .so '/usr/lib/libgmock.so'
-dev package googletest-dev contains non-symlink .so '/usr/lib/libgtest_main.so'
-dev package googletest-dev contains non-symlink .so '/usr/lib/libgmock_main.so'
-dev package googletest-dev contains non-symlink .so '/usr/lib/libgtest.so' [dev-elf]
ERROR: googletest-1.10.0-r0 do_package_qa: QA run found fatal errors. Please consider fixing them.
ERROR: Logfile of failure stored in: /home/lijchen/hdd/ivdp/yocto/imx8/imx-yocto-bsp-Hardknott/build-imx8qmmek/tmp/work/cortexa72-cortexa53-crypto-poky-linux/googletest/1.10.0-r0/temp/log.do_package_qa.24701
ERROR: Task (/home/lijchen/hdd/ivdp/yocto/imx8/imx-yocto-bsp-Hardknott/sources/meta-openembedded/meta-oe/recipes-test/googletest/googletest_git.bb:do_package_qa) failed with exit code '1'

I also tried adding " -DCMAKE_INSTALL_PREFIX=/usr/local" to EXTRA_OEMAKE, and got the following error:

ERROR: googletest-1.10.0-r0 do_package: QA Issue: googletest: Files/directories were installed but not shipped in any package:
  /usr/local/include
  /usr/local/lib/libgmock.so
  /usr/local/lib/libgtest_main.so
  /usr/local/lib/libgmock_main.so
  /usr/local/lib/libgtest.so
  /usr/local/lib/cmake
  /usr/local/lib/pkgconfig
  /usr/local/lib/cmake/GTest
  /usr/local/lib/cmake/GTest/GTestTargets.cmake
  /usr/local/lib/cmake/GTest/GTestConfigVersion.cmake
  /usr/local/lib/cmake/GTest/GTestConfig.cmake
  /usr/local/lib/cmake/GTest/GTestTargets-noconfig.cmake
  /usr/local/lib/pkgconfig/gtest_main.pc
  /usr/local/lib/pkgconfig/gtest.pc
  /usr/local/lib/pkgconfig/gmock_main.pc
  /usr/local/lib/pkgconfig/gmock.pc
  /usr/local/include/gtest
  /usr/local/include/gmock
  /usr/local/include/gtest/gtest_prod.h
  /usr/local/include/gtest/gtest-test-part.h
  /usr/local/include/gtest/gtest_pred_impl.h
  /usr/local/include/gtest/gtest-matchers.h
  /usr/local/include/gtest/gtest-printers.h
  /usr/local/include/gtest/gtest.h
  /usr/local/include/gtest/gtest-param-test.h
  /usr/local/include/gtest/gtest-death-test.h
  /usr/local/include/gtest/gtest-typed-test.h
  /usr/local/include/gtest/gtest-message.h
  /usr/local/include/gtest/gtest-spi.h
  /usr/local/include/gtest/internal
  /usr/local/include/gtest/internal/gtest-death-test-internal.h
  /usr/local/include/gtest/internal/gtest-filepath.h
  /usr/local/include/gtest/internal/gtest-param-util.h
  /usr/local/include/gtest/internal/gtest-string.h
  /usr/local/include/gtest/internal/gtest-type-util.h
  /usr/local/include/gtest/internal/gtest-internal.h
  /usr/local/include/gtest/internal/gtest-type-util.h.pump
  /usr/local/include/gtest/internal/gtest-port-arch.h
  /usr/local/include/gtest/internal/gtest-port.h
  /usr/local/include/gtest/internal/custom
  /usr/local/include/gtest/internal/custom/gtest-printers.h
  /usr/local/include/gtest/internal/custom/gtest.h
  /usr/local/include/gtest/internal/custom/README.md
  /usr/local/include/gtest/internal/custom/gtest-port.h
  /usr/local/include/gmock/gmock-function-mocker.h
  /usr/local/include/gmock/gmock-generated-function-mockers.h
  /usr/local/include/gmock/gmock-generated-actions.h.pump
  /usr/local/include/gmock/gmock-matchers.h
  /usr/local/include/gmock/gmock-generated-matchers.h
  /usr/local/include/gmock/gmock-more-matchers.h
  /usr/local/include/gmock/gmock.h
  /usr/local/include/gmock/gmock-generated-actions.h
  /usr/local/include/gmock/gmock-nice-strict.h
  /usr/local/include/gmock/gmock-spec-builders.h
  /usr/local/include/gmock/gmock-more-actions.h
  /usr/local/include/gmock/gmock-generated-function-mockers.h.pump
  /usr/local/include/gmock/gmock-cardinalities.h
  /usr/local/include/gmock/gmock-actions.h
  /usr/local/include/gmock/gmock-generated-matchers.h.pump
  /usr/local/include/gmock/internal
  /usr/local/include/gmock/internal/gmock-port.h
  /usr/local/include/gmock/internal/gmock-pp.h
  /usr/local/include/gmock/internal/gmock-internal-utils.h
  /usr/local/include/gmock/internal/custom
  /usr/local/include/gmock/internal/custom/gmock-port.h
  /usr/local/include/gmock/internal/custom/gmock-generated-actions.h.pump
  /usr/local/include/gmock/internal/custom/gmock-matchers.h
  /usr/local/include/gmock/internal/custom/gmock-generated-actions.h
  /usr/local/include/gmock/internal/custom/README.md
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
googletest: 69 installed and not shipped files. [installed-vs-shipped]
ERROR: googletest-1.10.0-r0 do_package: Fatal QA errors found, failing task.



From: Federico Pellegrin <fede@...>
Sent: Thursday, September 23, 2021 10:27:39 AM
To: Lijun Chen
Cc: yocto@...
Subject: Re: [yocto] googletest shared library
 

Hi,
To skip the QA you can use:

INSANE_SKIP_${PN} += "dev-elf"

(or any QA part you'd like to skip, ie. dev-elf or dev-so ...)

Cheers,
Federico



Il giorno gio 23 set 2021 alle ore 15:33 Lijun Chen <lijchen@...> ha scritto:

Hi,


If I switch to the default setting of the googletest recipe, the header files are included in the SDK image. However, the libgtest libraries are static.

Looks FILES_SOLIBSDEV = "" disables googletest-dev to be included in the SDK.


Is there a way to change the library to dynamic and keep the header files? i.e. just add EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON " but skip the do_package_qa part to avoid the QA issue due to un-versioned library?


Thanks,

Lijun




From: yocto@... <yocto@...> on behalf of Lijun Chen <lijchen@...>
Sent: Wednesday, September 22, 2021 1:45 PM
To: Khem Raj; yocto@...
Subject: Re: [yocto] googletest shared library
 

Tried adding googletest to TOOLCHAIN_TARGET_TASK. The gtest .h files are still not showing up.

Thanks,


From: Khem Raj <raj.khem@...>
Sent: Wednesday, September 22, 2021 11:28:05 AM
To: Lijun Chen; yocto@...
Subject: Re: [yocto] googletest shared library
 
The .h files will be in dev pkg in this case googletest-dev
what happens if you add googletest to TOOLCHAIN_TARGET_TASK

On 9/22/21 6:18 AM, Lijun Chen wrote:
> Hi,
>
>
> Now I included googletest to the IMAGE_INSTALL in my image file, and
> built both board image and SDK image. I can see libgtest.so is available
> in both images. However, gtest/gtest.h is a not present in SDK. How do I
> add the header files to the SDK image? Looks the following lines affect
> that?
>
> SOLIBS = ".so"
> FILES_SOLIBSDEV = ""
>
> Thanks,
> Lijun
>
> ------------------------------------------------------------------------
> *From:* yocto@... <yocto@...> on
> behalf of Lijun Chen <lijchen@...>
> *Sent:* Tuesday, September 21, 2021 3:50 PM
> *To:* Konrad Weihmann; yocto@...
> *Subject:* Re: [yocto] googletest shared library
>
> Thanks Konrad. That worked.
>
> ------------------------------------------------------------------------
> *From:* Konrad Weihmann <kweihmann@...>
> *Sent:* Tuesday, September 21, 2021 10:26:19 AM
> *To:* Lijun Chen; yocto@...
> *Subject:* Re: [yocto] googletest shared library
>
> On 21.09.21 16:18, Lijun Chen wrote:
>> Hi,
>>
>> I would like to include libgtest.so into my Yocto image. I added
>> googletest to IMAGE_INSTALL and added the following line to
>> sources/meta-openembedded/meta-oe/recipes-test/googletest/googletest_git.bb:
>>
>> EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON "
>>
>>
>> The shared libraries were built successfully. However, there are errors
>> in do_package_qc as following:
>>
>>
>> ERROR: googletest-1.10.0-r0 do_package_qa: QA Issue: -dev package
>> googletest-dev contains non-symlink .so '/usr/lib/libgmock.so'
>> -dev package googletest-dev contains non-symlink .so
>> '/usr/lib/libgtest_main.so'
>> -dev package googletest-dev contains non-symlink .so
>> '/usr/lib/libgmock_main.so'
>> -dev package googletest-dev contains non-symlink .so
>> '/usr/lib/libgtest.so' [dev-elf]
>> ERROR: googletest-1.10.0-r0 do_package_qa: QA run found fatal errors.
>> Please consider fixing them.
>
> https://urldefense.com/v3/__http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-graphics/spir/spirv-tools_2021.2.bb*n34__;Iw!!COg3wY07Hnb7!4NI6d6tXUoxCQFleF-343dfbdFGnkZnqrYRVg3nYTCBoGJTY9-K0NANM4iMsNNleww$
> <https://urldefense.com/v3/__http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-graphics/spir/spirv-tools_2021.2.bb*n34__;Iw!!COg3wY07Hnb7!4NI6d6tXUoxCQFleF-343dfbdFGnkZnqrYRVg3nYTCBoGJTY9-K0NANM4iMsNNleww$>
>
> (and the next lines) might give you a hint what to do in this case.
> Although one could also consider that's something that needs to be fixed
> in the installation script of googletest, as versioned libraries are the
> expected default
>
>>
>>
>> Any idea to fix this?
>>
>>
>> Thanks,
>>
>> Lijun
>>
>>
>> ------------------------------------------------------------------------
>> This transmission (including any attachments) may contain confidential
>> information, privileged material (including material protected by the
>> solicitor-client or other applicable privileges), or constitute
>> non-public information. Any use of this information by anyone other than
>> the intended recipient is prohibited. If you have received this
>> transmission in error, please immediately reply to the sender and delete
>> this information from your system. Use, dissemination, distribution, or
>> reproduction of this transmission by unintended recipients is not
>> authorized and may be unlawful.
>>
>>
>>
>>
> ------------------------------------------------------------------------
> This transmission (including any attachments) may contain confidential
> information, privileged material (including material protected by the
> solicitor-client or other applicable privileges), or constitute
> non-public information. Any use of this information by anyone other than
> the intended recipient is prohibited. If you have received this
> transmission in error, please immediately reply to the sender and delete
> this information from your system. Use, dissemination, distribution, or
> reproduction of this transmission by unintended recipients is not
> authorized and may be unlawful.
> ------------------------------------------------------------------------
> This transmission (including any attachments) may contain confidential
> information, privileged material (including material protected by the
> solicitor-client or other applicable privileges), or constitute
> non-public information. Any use of this information by anyone other than
> the intended recipient is prohibited. If you have received this
> transmission in error, please immediately reply to the sender and delete
> this information from your system. Use, dissemination, distribution, or
> reproduction of this transmission by unintended recipients is not
> authorized and may be unlawful.
>
>
>
>

This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful.

This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful.




This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful.

Join {yocto@lists.yoctoproject.org to automatically receive all group messages.