Message ID | 20230407043845.1314587-1-bindudaniel1996@gmail.com |
---|---|
State | New |
Headers | show |
Series | [meta-oe,kirkstone] flatbuffers: adapt for cross-compilation environments | expand |
On 4/7/23 12:38 AM, BINDU wrote: > Flatbuffers contains a library and a schema compiler. The package > contains cmake files to discover the libraries and the compiler tool. > Currently, all of these cmake files are installed into the target > sysroot. However, the compiler utility isn't installed into the sysroot > (as it is not runnable on the build machine). > > When an application that depends on flatbuffers gets built, it uses > flatbuffers' exported cmake targets to configure the project. One of the > exported targets is FlatcTarget.cmake which expects to see flatc binary > in /usr/bin of the sysroot. Since binaries for target don't end up in > target sysroot, cmake configuration fails. > > This patch addresses this problem of flatbuffers' build infrastructure > in cross-compiling environments. By removing FlatcTarget.cmake for > target builds from the sysroot we essentially skip this step of > flatbuffers' configuration. Does this need to be done in Master as well? -armin > > Signed-off-by: Ivan Stepic <Ivan.Stepic@bmw.de> > Signed-off-by: Bhabu Bindu <bindudaniel1996@gmail.com> > --- > meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb b/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb > index bf74f1229..44478ea0b 100644 > --- a/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb > +++ b/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb > @@ -25,12 +25,17 @@ BUILD_CXXFLAGS += "-fPIC" > # BUILD_TYPE=Release is required, otherwise flatc is not installed > EXTRA_OECMAKE += "\ > -DCMAKE_BUILD_TYPE=Release \ > - -DFLATBUFFERS_BUILD_TESTS=OFF \ > + -DFLATBUFFERS_BUILD_TESTS=OFF \ > -DFLATBUFFERS_BUILD_SHAREDLIB=ON \ > " > > inherit cmake > > +rm_flatc_cmaketarget_for_target() { > + rm -f "${SYSROOT_DESTDIR}/${libdir}/cmake/flatbuffers/FlatcTargets.cmake" > +} > +SYSROOT_PREPROCESS_FUNCS:class-target += "rm_flatc_cmaketarget_for_target" > + > do_install:append() { > install -d ${D}${PYTHON_SITEPACKAGES_DIR} > cp -rf ${S}/python/flatbuffers ${D}${PYTHON_SITEPACKAGES_DIR} > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#101976): https://lists.openembedded.org/g/openembedded-devel/message/101976 > Mute This Topic: https://lists.openembedded.org/mt/98119685/3616698 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [akuster808@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
Hello @akuster808@gmail.com <akuster808@gmail.com> , This is fixed in a different way in master, so this doesn't need to be be done for master. On Fri, 7 Apr, 2023, 5:15 pm akuster808, <akuster808@gmail.com> wrote: > > > On 4/7/23 12:38 AM, BINDU wrote: > > Flatbuffers contains a library and a schema compiler. The package > > contains cmake files to discover the libraries and the compiler tool. > > Currently, all of these cmake files are installed into the target > > sysroot. However, the compiler utility isn't installed into the sysroot > > (as it is not runnable on the build machine). > > > > When an application that depends on flatbuffers gets built, it uses > > flatbuffers' exported cmake targets to configure the project. One of the > > exported targets is FlatcTarget.cmake which expects to see flatc binary > > in /usr/bin of the sysroot. Since binaries for target don't end up in > > target sysroot, cmake configuration fails. > > > > This patch addresses this problem of flatbuffers' build infrastructure > > in cross-compiling environments. By removing FlatcTarget.cmake for > > target builds from the sysroot we essentially skip this step of > > flatbuffers' configuration. > > Does this need to be done in Master as well? > > -armin > > > > Signed-off-by: Ivan Stepic <Ivan.Stepic@bmw.de> > > Signed-off-by: Bhabu Bindu <bindudaniel1996@gmail.com> > > --- > > meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb | 7 ++++++- > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > diff --git a/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb > b/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb > > index bf74f1229..44478ea0b 100644 > > --- a/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb > > +++ b/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb > > @@ -25,12 +25,17 @@ BUILD_CXXFLAGS += "-fPIC" > > # BUILD_TYPE=Release is required, otherwise flatc is not installed > > EXTRA_OECMAKE += "\ > > -DCMAKE_BUILD_TYPE=Release \ > > - -DFLATBUFFERS_BUILD_TESTS=OFF \ > > + -DFLATBUFFERS_BUILD_TESTS=OFF \ > > -DFLATBUFFERS_BUILD_SHAREDLIB=ON \ > > " > > > > inherit cmake > > > > +rm_flatc_cmaketarget_for_target() { > > + rm -f > "${SYSROOT_DESTDIR}/${libdir}/cmake/flatbuffers/FlatcTargets.cmake" > > +} > > +SYSROOT_PREPROCESS_FUNCS:class-target += > "rm_flatc_cmaketarget_for_target" > > + > > do_install:append() { > > install -d ${D}${PYTHON_SITEPACKAGES_DIR} > > cp -rf ${S}/python/flatbuffers ${D}${PYTHON_SITEPACKAGES_DIR} > > > > -=-=-=-=-=-=-=-=-=-=-=- > > Links: You receive all messages sent to this group. > > View/Reply Online (#101976): > https://lists.openembedded.org/g/openembedded-devel/message/101976 > > Mute This Topic: https://lists.openembedded.org/mt/98119685/3616698 > > Group Owner: openembedded-devel+owner@lists.openembedded.org > > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [ > akuster808@gmail.com] > > -=-=-=-=-=-=-=-=-=-=-=- > > > >
On 4/13/23 3:02 AM, BINDU wrote: > Hello @akuster808@gmail.com <mailto:akuster808@gmail.com> , > > This is fixed in a different way in master, so this doesn't need to be > be done for master. thanks for checking. - armin > > > > On Fri, 7 Apr, 2023, 5:15 pm akuster808, <akuster808@gmail.com> wrote: > > > > On 4/7/23 12:38 AM, BINDU wrote: > > Flatbuffers contains a library and a schema compiler. The package > > contains cmake files to discover the libraries and the compiler > tool. > > Currently, all of these cmake files are installed into the target > > sysroot. However, the compiler utility isn't installed into the > sysroot > > (as it is not runnable on the build machine). > > > > When an application that depends on flatbuffers gets built, it uses > > flatbuffers' exported cmake targets to configure the project. > One of the > > exported targets is FlatcTarget.cmake which expects to see flatc > binary > > in /usr/bin of the sysroot. Since binaries for target don't end > up in > > target sysroot, cmake configuration fails. > > > > This patch addresses this problem of flatbuffers' build > infrastructure > > in cross-compiling environments. By removing FlatcTarget.cmake for > > target builds from the sysroot we essentially skip this step of > > flatbuffers' configuration. > > Does this need to be done in Master as well? > > -armin > > > > Signed-off-by: Ivan Stepic <Ivan.Stepic@bmw.de> > > Signed-off-by: Bhabu Bindu <bindudaniel1996@gmail.com> > > --- > > meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb > <http://flatbuffers_2.0.0.bb> | 7 ++++++- > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > diff --git > a/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb > <http://flatbuffers_2.0.0.bb> > b/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb > <http://flatbuffers_2.0.0.bb> > > index bf74f1229..44478ea0b 100644 > > --- a/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb > <http://flatbuffers_2.0.0.bb> > > +++ b/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb > <http://flatbuffers_2.0.0.bb> > > @@ -25,12 +25,17 @@ BUILD_CXXFLAGS += "-fPIC" > > # BUILD_TYPE=Release is required, otherwise flatc is not installed > > EXTRA_OECMAKE += "\ > > -DCMAKE_BUILD_TYPE=Release \ > > - -DFLATBUFFERS_BUILD_TESTS=OFF \ > > + -DFLATBUFFERS_BUILD_TESTS=OFF \ > > -DFLATBUFFERS_BUILD_SHAREDLIB=ON \ > > " > > > > inherit cmake > > > > +rm_flatc_cmaketarget_for_target() { > > + rm -f > "${SYSROOT_DESTDIR}/${libdir}/cmake/flatbuffers/FlatcTargets.cmake" > > +} > > +SYSROOT_PREPROCESS_FUNCS:class-target += > "rm_flatc_cmaketarget_for_target" > > + > > do_install:append() { > > install -d ${D}${PYTHON_SITEPACKAGES_DIR} > > cp -rf ${S}/python/flatbuffers ${D}${PYTHON_SITEPACKAGES_DIR} > > > > -=-=-=-=-=-=-=-=-=-=-=- > > Links: You receive all messages sent to this group. > > View/Reply Online (#101976): > https://lists.openembedded.org/g/openembedded-devel/message/101976 > > Mute This Topic: https://lists.openembedded.org/mt/98119685/3616698 > > Group Owner: openembedded-devel+owner@lists.openembedded.org > <mailto:openembedded-devel%2Bowner@lists.openembedded.org> > > Unsubscribe: > https://lists.openembedded.org/g/openembedded-devel/unsub > [akuster808@gmail.com] > > -=-=-=-=-=-=-=-=-=-=-=- > > >
diff --git a/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb b/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb index bf74f1229..44478ea0b 100644 --- a/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb +++ b/meta-oe/recipes-devtools/flatbuffers/flatbuffers_2.0.0.bb @@ -25,12 +25,17 @@ BUILD_CXXFLAGS += "-fPIC" # BUILD_TYPE=Release is required, otherwise flatc is not installed EXTRA_OECMAKE += "\ -DCMAKE_BUILD_TYPE=Release \ - -DFLATBUFFERS_BUILD_TESTS=OFF \ + -DFLATBUFFERS_BUILD_TESTS=OFF \ -DFLATBUFFERS_BUILD_SHAREDLIB=ON \ " inherit cmake +rm_flatc_cmaketarget_for_target() { + rm -f "${SYSROOT_DESTDIR}/${libdir}/cmake/flatbuffers/FlatcTargets.cmake" +} +SYSROOT_PREPROCESS_FUNCS:class-target += "rm_flatc_cmaketarget_for_target" + do_install:append() { install -d ${D}${PYTHON_SITEPACKAGES_DIR} cp -rf ${S}/python/flatbuffers ${D}${PYTHON_SITEPACKAGES_DIR}