[PATCHv2] libical: build gobject and vala introspection

Message ID 20220121035639.230863-1-f_l_k@t-online.de
State Accepted, archived
Commit 5e2fc4676b8944fc1d36d567bb2d1ff4cff32294
Headers show
Series [PATCHv2] libical: build gobject and vala introspection | expand

Commit Message

Markus Volk Jan. 21, 2022, 3:56 a.m. UTC
Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 meta/recipes-support/libical/libical_3.0.12.bb | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Alexander Kanavin Jan. 21, 2022, 9:20 a.m. UTC | #1
Thanks, this should work :)

Alex

On Fri, 21 Jan 2022 at 04:57, Markus Volk <f_l_k@t-online.de> wrote:

> Signed-off-by: Markus Volk <f_l_k@t-online.de>
> ---
>  meta/recipes-support/libical/libical_3.0.12.bb | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/meta/recipes-support/libical/libical_3.0.12.bb
> b/meta/recipes-support/libical/libical_3.0.12.bb
> index b2b2211b9b..614a76ba5b 100644
> --- a/meta/recipes-support/libical/libical_3.0.12.bb
> +++ b/meta/recipes-support/libical/libical_3.0.12.bb
> @@ -16,7 +16,7 @@ SRC_URI = "
> https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.g
>  SRC_URI[sha256sum] =
> "35095a4cc1a061a3de0f332c2dc728226cf127fa0baa818e9f8856cee6d35830"
>  UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
>
> -inherit cmake pkgconfig
> +inherit cmake pkgconfig gobject-introspection vala
>
>  DEPENDS += "libical-native"
>
> @@ -32,6 +32,11 @@ EXTRA_OECMAKE +=
> "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl"
>  EXTRA_OECMAKE += "-DLIBICAL_BUILD_TESTING=false"
>  # doc build fails with linker error (??) for libical-glib so disable it
>  EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false"
> +# gobject-introspection
> +EXTRA_OECMAKE +=
> "-DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper"
> +EXTRA_OECMAKE +=
> "-DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper"
> +EXTRA_OECMAKE += "-DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen"
> +EXTRA_OECMAKE += "${@bb.utils.contains('GI_DATA_ENABLED', 'True',
> '-DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=ON',
> '-DGOBJECT_INTROSPECTION=OFF', d)}"
>
>  # Tell the cross-libical where the tool it needs to build is
>  EXTRA_OECMAKE:append:class-target = "
> -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake"
> --
> 2.25.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#160814):
> https://lists.openembedded.org/g/openembedded-core/message/160814
> Mute This Topic: https://lists.openembedded.org/mt/88576745/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Richard Purdie Jan. 25, 2022, 1:31 p.m. UTC | #2
On Fri, 2022-01-21 at 04:56 +0100, Markus Volk wrote:
> Signed-off-by: Markus Volk <f_l_k@t-online.de>
> ---
>  meta/recipes-support/libical/libical_3.0.12.bb | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-support/libical/libical_3.0.12.bb b/meta/recipes-support/libical/libical_3.0.12.bb
> index b2b2211b9b..614a76ba5b 100644
> --- a/meta/recipes-support/libical/libical_3.0.12.bb
> +++ b/meta/recipes-support/libical/libical_3.0.12.bb
> @@ -16,7 +16,7 @@ SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.g
>  SRC_URI[sha256sum] = "35095a4cc1a061a3de0f332c2dc728226cf127fa0baa818e9f8856cee6d35830"
>  UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
>  
> -inherit cmake pkgconfig
> +inherit cmake pkgconfig gobject-introspection vala
>  
>  DEPENDS += "libical-native"
>  
> @@ -32,6 +32,11 @@ EXTRA_OECMAKE += "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl"
>  EXTRA_OECMAKE += "-DLIBICAL_BUILD_TESTING=false"
>  # doc build fails with linker error (??) for libical-glib so disable it
>  EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false"
> +# gobject-introspection
> +EXTRA_OECMAKE += "-DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper"
> +EXTRA_OECMAKE += "-DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper"
> +EXTRA_OECMAKE += "-DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen"
> +EXTRA_OECMAKE += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=ON', '-DGOBJECT_INTROSPECTION=OFF', d)}"
>  
>  # Tell the cross-libical where the tool it needs to build is
>  EXTRA_OECMAKE:append:class-target = " -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake"


Looks like this breaks libical-native:

https://autobuilder.yoctoproject.org/typhoon/#/builders/76/builds/4618
https://autobuilder.yoctoproject.org/typhoon/#/builders/64/builds/4645

and many more in that build.

Cheers,

Richard
Markus Volk Jan. 25, 2022, 2:27 p.m. UTC | #3
it doesn't break on my machine but according to the log it fails at 
trying to create gir for native.  Does this line help solving the issue?

EXTRA_OECMAKE:class-native += "-DGOBJECT_INTROSPECTION=OFF 
-DICAL_BUILD_DOCS=false"

Am 25.01.22 um 14:31 schrieb Richard Purdie:
> On Fri, 2022-01-21 at 04:56 +0100, Markus Volk wrote:
>> Signed-off-by: Markus Volk <f_l_k@t-online.de>
>> ---
>>   meta/recipes-support/libical/libical_3.0.12.bb | 7 ++++++-
>>   1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/meta/recipes-support/libical/libical_3.0.12.bb b/meta/recipes-support/libical/libical_3.0.12.bb
>> index b2b2211b9b..614a76ba5b 100644
>> --- a/meta/recipes-support/libical/libical_3.0.12.bb
>> +++ b/meta/recipes-support/libical/libical_3.0.12.bb
>> @@ -16,7 +16,7 @@ SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.g
>>   SRC_URI[sha256sum] = "35095a4cc1a061a3de0f332c2dc728226cf127fa0baa818e9f8856cee6d35830"
>>   UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
>>   
>> -inherit cmake pkgconfig
>> +inherit cmake pkgconfig gobject-introspection vala
>>   
>>   DEPENDS += "libical-native"
>>   
>> @@ -32,6 +32,11 @@ EXTRA_OECMAKE += "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl"
>>   EXTRA_OECMAKE += "-DLIBICAL_BUILD_TESTING=false"
>>   # doc build fails with linker error (??) for libical-glib so disable it
>>   EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false"
>> +# gobject-introspection
>> +EXTRA_OECMAKE += "-DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper"
>> +EXTRA_OECMAKE += "-DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper"
>> +EXTRA_OECMAKE += "-DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen"
>> +EXTRA_OECMAKE += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=ON', '-DGOBJECT_INTROSPECTION=OFF', d)}"
>>   
>>   # Tell the cross-libical where the tool it needs to build is
>>   EXTRA_OECMAKE:append:class-target = " -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake"
>
> Looks like this breaks libical-native:
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/76/builds/4618
> https://autobuilder.yoctoproject.org/typhoon/#/builders/64/builds/4645
>
> and many more in that build.
>
> Cheers,
>
> Richard
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#160920): https://lists.openembedded.org/g/openembedded-core/message/160920
> Mute This Topic: https://lists.openembedded.org/mt/88576745/3618223
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [f_l_k@t-online.de]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Markus Volk Jan. 25, 2022, 2:39 p.m. UTC | #4
it also compiles here like this:

EXTRA_OECMAKE:class-target += 
"-DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper"
EXTRA_OECMAKE:class-target += 
"-DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper 
-DICAL_BUILD_DOCS=false"

no idea why i have to explicitly disable ICAL_BUILD_DOCS or it'll fail 
with linker error. But nevertheless. This may also help


Am 25.01.22 um 15:27 schrieb Markus Volk:
> it doesn't break on my machine but according to the log it fails at 
> trying to create gir for native.  Does this line help solving the issue?
>
> EXTRA_OECMAKE:class-native += "-DGOBJECT_INTROSPECTION=OFF 
> -DICAL_BUILD_DOCS=false"
>
> Am 25.01.22 um 14:31 schrieb Richard Purdie:
>> On Fri, 2022-01-21 at 04:56 +0100, Markus Volk wrote:
>>> Signed-off-by: Markus Volk <f_l_k@t-online.de>
>>> ---
>>>   meta/recipes-support/libical/libical_3.0.12.bb | 7 ++++++-
>>>   1 file changed, 6 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/meta/recipes-support/libical/libical_3.0.12.bb 
>>> b/meta/recipes-support/libical/libical_3.0.12.bb
>>> index b2b2211b9b..614a76ba5b 100644
>>> --- a/meta/recipes-support/libical/libical_3.0.12.bb
>>> +++ b/meta/recipes-support/libical/libical_3.0.12.bb
>>> @@ -16,7 +16,7 @@ SRC_URI = 
>>> "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.g
>>>   SRC_URI[sha256sum] = 
>>> "35095a4cc1a061a3de0f332c2dc728226cf127fa0baa818e9f8856cee6d35830"
>>>   UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
>>>   -inherit cmake pkgconfig
>>> +inherit cmake pkgconfig gobject-introspection vala
>>>     DEPENDS += "libical-native"
>>>   @@ -32,6 +32,11 @@ EXTRA_OECMAKE += 
>>> "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl"
>>>   EXTRA_OECMAKE += "-DLIBICAL_BUILD_TESTING=false"
>>>   # doc build fails with linker error (??) for libical-glib so 
>>> disable it
>>>   EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false"
>>> +# gobject-introspection
>>> +EXTRA_OECMAKE += 
>>> "-DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper"
>>> +EXTRA_OECMAKE += 
>>> "-DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper"
>>> +EXTRA_OECMAKE += "-DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen"
>>> +EXTRA_OECMAKE += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 
>>> '-DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=ON', 
>>> '-DGOBJECT_INTROSPECTION=OFF', d)}"
>>>     # Tell the cross-libical where the tool it needs to build is
>>>   EXTRA_OECMAKE:append:class-target = " 
>>> -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake"
>>
>> Looks like this breaks libical-native:
>>
>> https://autobuilder.yoctoproject.org/typhoon/#/builders/76/builds/4618
>> https://autobuilder.yoctoproject.org/typhoon/#/builders/64/builds/4645
>>
>> and many more in that build.
>>
>> Cheers,
>>
>> Richard
>>
>>
>>
>>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#160935): https://lists.openembedded.org/g/openembedded-core/message/160935
> Mute This Topic: https://lists.openembedded.org/mt/88576745/3618223
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [f_l_k@t-online.de]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Markus Volk Jan. 25, 2022, 2:57 p.m. UTC | #5
but with this no gir files are created at all

Am 25.01.22 um 15:39 schrieb Markus Volk:
> it also compiles here like this:
>
> EXTRA_OECMAKE:class-target += 
> "-DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper"
> EXTRA_OECMAKE:class-target += 
> "-DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper 
> -DICAL_BUILD_DOCS=false"
>
> no idea why i have to explicitly disable ICAL_BUILD_DOCS or it'll fail 
> with linker error. But nevertheless. This may also help
>
>
> Am 25.01.22 um 15:27 schrieb Markus Volk:
>> it doesn't break on my machine but according to the log it fails at 
>> trying to create gir for native.  Does this line help solving the issue?
>>
>> EXTRA_OECMAKE:class-native += "-DGOBJECT_INTROSPECTION=OFF 
>> -DICAL_BUILD_DOCS=false"
>>
>> Am 25.01.22 um 14:31 schrieb Richard Purdie:
>>> On Fri, 2022-01-21 at 04:56 +0100, Markus Volk wrote:
>>>> Signed-off-by: Markus Volk <f_l_k@t-online.de>
>>>> ---
>>>>   meta/recipes-support/libical/libical_3.0.12.bb | 7 ++++++-
>>>>   1 file changed, 6 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/meta/recipes-support/libical/libical_3.0.12.bb 
>>>> b/meta/recipes-support/libical/libical_3.0.12.bb
>>>> index b2b2211b9b..614a76ba5b 100644
>>>> --- a/meta/recipes-support/libical/libical_3.0.12.bb
>>>> +++ b/meta/recipes-support/libical/libical_3.0.12.bb
>>>> @@ -16,7 +16,7 @@ SRC_URI = 
>>>> "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.g
>>>>   SRC_URI[sha256sum] = 
>>>> "35095a4cc1a061a3de0f332c2dc728226cf127fa0baa818e9f8856cee6d35830"
>>>>   UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
>>>>   -inherit cmake pkgconfig
>>>> +inherit cmake pkgconfig gobject-introspection vala
>>>>     DEPENDS += "libical-native"
>>>>   @@ -32,6 +32,11 @@ EXTRA_OECMAKE += 
>>>> "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl"
>>>>   EXTRA_OECMAKE += "-DLIBICAL_BUILD_TESTING=false"
>>>>   # doc build fails with linker error (??) for libical-glib so 
>>>> disable it
>>>>   EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false"
>>>> +# gobject-introspection
>>>> +EXTRA_OECMAKE += 
>>>> "-DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper"
>>>> +EXTRA_OECMAKE += 
>>>> "-DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper" 
>>>>
>>>> +EXTRA_OECMAKE += "-DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen"
>>>> +EXTRA_OECMAKE += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 
>>>> '-DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=ON', 
>>>> '-DGOBJECT_INTROSPECTION=OFF', d)}"
>>>>     # Tell the cross-libical where the tool it needs to build is
>>>>   EXTRA_OECMAKE:append:class-target = " 
>>>> -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake"
>>>
>>> Looks like this breaks libical-native:
>>>
>>> https://autobuilder.yoctoproject.org/typhoon/#/builders/76/builds/4618
>>> https://autobuilder.yoctoproject.org/typhoon/#/builders/64/builds/4645
>>>
>>> and many more in that build.
>>>
>>> Cheers,
>>>
>>> Richard
>>>
>>>
>>>
>>>
>>
>>
>>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#160936): https://lists.openembedded.org/g/openembedded-core/message/160936
> Mute This Topic: https://lists.openembedded.org/mt/88576745/3618223
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [f_l_k@t-online.de]
> -=-=-=-=-=-=-=-=-=-=-=-
>

Patch

diff --git a/meta/recipes-support/libical/libical_3.0.12.bb b/meta/recipes-support/libical/libical_3.0.12.bb
index b2b2211b9b..614a76ba5b 100644
--- a/meta/recipes-support/libical/libical_3.0.12.bb
+++ b/meta/recipes-support/libical/libical_3.0.12.bb
@@ -16,7 +16,7 @@  SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.g
 SRC_URI[sha256sum] = "35095a4cc1a061a3de0f332c2dc728226cf127fa0baa818e9f8856cee6d35830"
 UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
 
-inherit cmake pkgconfig
+inherit cmake pkgconfig gobject-introspection vala
 
 DEPENDS += "libical-native"
 
@@ -32,6 +32,11 @@  EXTRA_OECMAKE += "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl"
 EXTRA_OECMAKE += "-DLIBICAL_BUILD_TESTING=false"
 # doc build fails with linker error (??) for libical-glib so disable it
 EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false"
+# gobject-introspection
+EXTRA_OECMAKE += "-DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper"
+EXTRA_OECMAKE += "-DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper"
+EXTRA_OECMAKE += "-DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen"
+EXTRA_OECMAKE += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=ON', '-DGOBJECT_INTROSPECTION=OFF', d)}"
 
 # Tell the cross-libical where the tool it needs to build is
 EXTRA_OECMAKE:append:class-target = " -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake"