[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-frameworks-devel
Subject:    Re: Review Request 126494: Add cross compile support for desktoptojson.
From:       "Ralf Habacker" <ralf.habacker () freenet ! de>
Date:       2016-01-04 15:38:23
Message-ID: 20160104153823.6499.12906 () mimi ! kde ! org
[Download RAW message or body]

--===============0819281812769479189==
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit



> On Jan. 4, 2016, 3:09 nachm., Aleix Pol Gonzalez wrote:
> > KF5CoreAddonsConfig.cmake.in, line 12
> > <https://git.reviewboard.kde.org/r/126494/diff/1/?file=425586#file425586line12>
> > 
> > What's that property supposed to do? `IMPORTED_LOCATION_NONE`
> 
> Ralf Habacker wrote:
> If I remember correctly I took it from a different location in the framework code. \
> Better to use IMPORTED_LOCATION ? 
> Aleix Pol Gonzalez wrote:
> Better not use anything. This target should be properly exported already. My \
> impression is that it's not working for you because you have mixed cmake build \
> types. 
> Ralf Habacker wrote:
> Not sure I understand you correctly: 
> In cross compile environments a host provided desktoptojson executable is required \
> to build kcoreaddons (tested with mingw32). With this patch I can specify \
> -DDESKTOPTOJSON_EXECUTABLE=<host-provided-desktoptojson-executable> on the cmake \
> command line (see https://build.opensuse.org/package/view_file/home:rhabacker:branches:windows:mingw:win32:KF516/mingw32-kf5-filesystem/macros.mingw32-kf5?expand=1 \
> line 92ff) to solve this. Also it provides the host provided executable for \
> packages requiring desktoptojson. 
> Aleix Pol Gonzalez wrote:
> But that's not very practical, because you'll have to point to each and every \
> target that it's used. You can consider adopting the `KF5_HOST_TOOLING` variable, \
> which is meant for exactly this.

From Qt4/KDE4 times providing each tool on the configure command line was the \
prefered method:

QT4 https://build.opensuse.org/package/view_file/windows:mingw:win32/mingw32-libqt4/macros.mingw32-qt4?expand=1
 KDE4 https://build.opensuse.org/package/view_file/windows:mingw:win32/mingw32-kde4-filesystem/macros.mingw32-kde4?expand=1 \


For Qt5 related host tool support is provided by using the  CROSS_COMPILE configure \
switch

configure .... CROSS_COMPILE=<build-target> eg. CROSS_COMPILE=i686-w64-mingw32-

For KF5 now there is the KF5_HOST_TOOLING support, which needs for every host \
provided tool (currently 8 [1]) to create a related \
${KF5_HOST_TOOLING}/<package>/<some-name>Targets.cmake, which points to the related \
host provided executable ? 

[1] from https://build.opensuse.org/package/view_file/home:rhabacker:branches:windows:mingw:win32:KF516/mingw32-kf5-filesystem/macros.mingw32-kf5?expand=1


      -DKCONFIG_COMPILER_EXECUTABLE=/usr/bin/%{_mingw32_target}-kconfig_compiler_kf5 \
                \\
      -DKCONF_UPDATE_EXECUTABLE=/usr/bin/%{_mingw32_target}-kconf_update \\
      -DMEINPROC5_EXECUTABLE=/usr/bin/%{_mingw32_target}-meinproc5 \\
      -DCHECKXML5_EXECUTABLE=/usr/bin/%{_mingw32_target}-checkXML5 \\
      -DDOCBOOKL10NHELPER_EXECUTABLE=/usr/bin/%{_mingw32_target}-docbookl10nhelper \\
      -DDESKTOPTOJSON_EXECUTABLE=/usr/bin/%{_mingw32_target}-desktoptojson \\
      -DPARSETRIGRAMS_EXECUTABLE=/usr/bin/%{_mingw32_target}-parsetrigrams \\
      -DKATEHIGHLIGHTINGINDEXER_EXECUTABLE=/usr/bin/%{_mingw32_target}-katehighlightingindexer \
\\

A scan of kf5 git repos show me only three references to KF5_HOST_TOOLING, which \
looks incomplete

./kconfig/KF5ConfigConfig.cmake.in:9:if(CMAKE_CROSSCOMPILING AND KF5_HOST_TOOLING)
./kconfig/KF5ConfigConfig.cmake.in:10:    find_file(KCONFIGCOMPILER_PATH \
KF5Config/KF5ConfigCompilerTargets.cmake PATHS ${KF5_HOST_TOOLING} \
                ${CMAKE_CURRENT_LIST_DIR} NO_DEFAULT_PATH)
./kconfig/KF5ConfigConfig.cmake.in-11-    include("${KCONFIGCOMPILER_PATH}")
  -> should KCONFIGCOMPILER_PATH not better TARGETSFILE similar to the other \
                locations 
  -> KF5ConfigCompilerTargets.cmake: does it include all required tools for package \
                KF5Config or simple for KCONFIGCOMPILER
  -> if KF5Config related it should be named KF5ConfigToolsTarget.cmake similar to \
the other

./kauth/KF5AuthConfig.cmake.in:17:    if(CMAKE_CROSSCOMPILING AND KF5_HOST_TOOLING)
./kauth/KF5AuthConfig.cmake.in:18:        find_file(TARGETSFILE \
KF5Auth/KF5AuthToolsTargets.cmake PATHS ${KF5_HOST_TOOLING} ${CMAKE_CURRENT_LIST_DIR} \
                NO_DEFAULT_PATH)
./kauth/KF5AuthConfig.cmake.in-19-        include("${TARGETSFILE}")


./kcoreaddons/KF5CoreAddonsConfig.cmake.in:6:if(CMAKE_CROSSCOMPILING AND \
                KF5_HOST_TOOLING)
./kcoreaddons/KF5CoreAddonsConfig.cmake.in:7:    find_file(TARGETSFILE \
KF5CoreAddons/KF5CoreAddonsToolingTargets.cmake PATHS ${KF5_HOST_TOOLING} \
                ${CMAKE_CURRENT_LIST_DIR} NO_DEFAULT_PATH)
   -> KF5CoreAddonsToolingTargets.cmake not better KF5CoreAddonsToolsTargets.cmake
./kcoreaddons/KF5CoreAddonsConfig.cmake.in-8-    include("${TARGETSFILE}")


Unfortunally I did not found an example set for the structure of such cmake files \
(any howto available ?)


- Ralf


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/126494/#review90552
-----------------------------------------------------------


On Jan. 4, 2016, 3:11 nachm., Ralf Habacker wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/126494/
> -----------------------------------------------------------
> 
> (Updated Jan. 4, 2016, 3:11 nachm.)
> 
> 
> Review request for KDE Frameworks.
> 
> 
> Repository: kcoreaddons
> 
> 
> Description
> -------
> 
> Add cross compile support for desktoptojson.
> 
> 
> Diffs
> -----
> 
> KF5CoreAddonsConfig.cmake.in dce3a4e65599b286d8fedbaa20235f5025f509e8 
> 
> Diff: https://git.reviewboard.kde.org/r/126494/diff/
> 
> 
> Testing
> -------
> 
> Cross compiled package has been build at \
> https://build.opensuse.org/package/show/home:rhabacker:branches:windows:mingw:win32:KF516/mingw32-kcoreaddons
>  
> 
> Thanks,
> 
> Ralf Habacker
> 
> 


--===============0819281812769479189==
MIME-Version: 1.0
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: 7bit




<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 \
solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">  \
<tr>  <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/126494/">https://git.reviewboard.kde.org/r/126494/</a>
  </td>
    </tr>
   </table>
   <br />










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <p style="margin-top: 0;">On Januar 4th, 2016, 3:09 nachm. CET, <b>Aleix Pol \
Gonzalez</b> wrote:</p>  <blockquote style="margin-left: 1em; border-left: 2px solid \
#d0d0d0; padding-left: 10px;">  


<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/126494/diff/1/?file=425586#file425586line12" \
style="color: black; font-weight: bold; text-decoration: \
underline;">KF5CoreAddonsConfig.cmake.in</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">12</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        \
set_target_properties(KF5::desktoptojson PROPERTIES IMPORTED_LOCATION_NONE \
${DESKTOPTOJSON_EXECUTABLE})</pre></td>  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">What's that property supposed to do? <code style="text-rendering: \
inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: \
inherit;">IMPORTED_LOCATION_NONE</code></p></pre>  </blockquote>



 <p>On Januar 4th, 2016, 3:20 nachm. CET, <b>Ralf Habacker</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">If I \
remember correctly I took it from a different location in the framework code. Better \
to use IMPORTED_LOCATION ?</p></pre>  </blockquote>





 <p>On Januar 4th, 2016, 3:21 nachm. CET, <b>Aleix Pol Gonzalez</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Better not use anything. This target should be properly exported already. \
My impression is that it's not working for you because you have mixed cmake build \
types.</p></pre>  </blockquote>





 <p>On Januar 4th, 2016, 3:32 nachm. CET, <b>Ralf Habacker</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Not \
sure I understand you correctly:  In cross compile environments a host provided \
desktoptojson executable is required to build kcoreaddons (tested with mingw32). With \
this patch I can specify \
-DDESKTOPTOJSON_EXECUTABLE=&lt;host-provided-desktoptojson-executable&gt; on the \
cmake command line (see \
https://build.opensuse.org/package/view_file/home:rhabacker:branches:windows:mingw:win32:KF516/mingw32-kf5-filesystem/macros.mingw32-kf5?expand=1 \
line 92ff) to solve this. Also it provides the host provided executable for packages \
requiring desktoptojson.</p></pre>  </blockquote>





 <p>On Januar 4th, 2016, 3:34 nachm. CET, <b>Aleix Pol Gonzalez</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">But \
that's not very practical, because you'll have to point to each and every target that \
it's used. You can consider adopting the <code style="text-rendering: inherit;color: \
#4444cc;padding: 0;white-space: normal;margin: 0;line-height: \
inherit;">KF5_HOST_TOOLING</code> variable, which is meant for exactly \
this.</p></pre>  </blockquote>







</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">From Qt4/KDE4 times providing each tool on the configure command line was \
the prefered method:</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">QT4 \
https://build.opensuse.org/package/view_file/windows:mingw:win32/mingw32-libqt4/macros.mingw32-qt4?expand=1
 KDE4 https://build.opensuse.org/package/view_file/windows:mingw:win32/mingw32-kde4-filesystem/macros.mingw32-kde4?expand=1 \
</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">For Qt5 related host tool support is provided by using \
the  CROSS_COMPILE configure switch</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">configure .... \
CROSS_COMPILE=&lt;build-target&gt; eg. CROSS_COMPILE=i686-w64-mingw32-</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">For KF5 now there is the KF5_HOST_TOOLING support, which needs for every \
host provided tool (currently 8 [1]) to create a related \
${KF5_HOST_TOOLING}/&lt;package&gt;/&lt;some-name&gt;Targets.cmake, which points to \
the related host provided executable ? </p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">[1] from \
https://build.opensuse.org/package/view_file/home:rhabacker:branches:windows:mingw:win32:KF516/mingw32-kf5-filesystem/macros.mingw32-kf5?expand=1</p>
 <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;"><div class="codehilite" style="background: \
#f8f8f8"><pre style="line-height: 125%">  \
                -DKCONFIG_COMPILER_EXECUTABLE=/usr/bin/%{_mingw32_target}-kconfig_compiler_kf5 \
                \\\
  -DKCONF_UPDATE_EXECUTABLE=/usr/bin/%{_mingw32_target}-kconf_update \\\
  -DMEINPROC5_EXECUTABLE=/usr/bin/%{_mingw32_target}-meinproc5 \\\
  -DCHECKXML5_EXECUTABLE=/usr/bin/%{_mingw32_target}-checkXML5 \\\
  -DDOCBOOKL10NHELPER_EXECUTABLE=/usr/bin/%{_mingw32_target}-docbookl10nhelper \\\
  -DDESKTOPTOJSON_EXECUTABLE=/usr/bin/%{_mingw32_target}-desktoptojson \\\
  -DPARSETRIGRAMS_EXECUTABLE=/usr/bin/%{_mingw32_target}-parsetrigrams \\\
  -DKATEHIGHLIGHTINGINDEXER_EXECUTABLE=/usr/bin/%{_mingw32_target}-katehighlightingindexer \
\\\ </pre></div>
</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">A scan of kf5 git repos show me only three references \
to KF5_HOST_TOOLING, which looks incomplete</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: \
inherit;">./kconfig/KF5ConfigConfig.cmake.in:9:if(CMAKE_CROSSCOMPILING AND \
                KF5_HOST_TOOLING)
./kconfig/KF5ConfigConfig.cmake.in:10:    find_file(KCONFIGCOMPILER_PATH \
KF5Config/KF5ConfigCompilerTargets.cmake PATHS ${KF5_HOST_TOOLING} \
                ${CMAKE_CURRENT_LIST_DIR} NO_DEFAULT_PATH)
./kconfig/KF5ConfigConfig.cmake.in-11-    include("${KCONFIGCOMPILER_PATH}")
  -&gt; should KCONFIGCOMPILER_PATH not better TARGETSFILE similar to the other \
                locations 
  -&gt; KF5ConfigCompilerTargets.cmake: does it include all required tools for \
                package KF5Config or simple for KCONFIGCOMPILER
  -&gt; if KF5Config related it should be named KF5ConfigToolsTarget.cmake similar to \
the other</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">./kauth/KF5AuthConfig.cmake.in:17:    \
                if(CMAKE_CROSSCOMPILING AND KF5_HOST_TOOLING)
./kauth/KF5AuthConfig.cmake.in:18:        find_file(TARGETSFILE \
KF5Auth/KF5AuthToolsTargets.cmake PATHS ${KF5_HOST_TOOLING} ${CMAKE_CURRENT_LIST_DIR} \
                NO_DEFAULT_PATH)
./kauth/KF5AuthConfig.cmake.in-19-        include("${TARGETSFILE}")</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: \
inherit;">./kcoreaddons/KF5CoreAddonsConfig.cmake.in:6:if(CMAKE_CROSSCOMPILING AND \
                KF5_HOST_TOOLING)
./kcoreaddons/KF5CoreAddonsConfig.cmake.in:7:    find_file(TARGETSFILE \
KF5CoreAddons/KF5CoreAddonsToolingTargets.cmake PATHS ${KF5_HOST_TOOLING} \
                ${CMAKE_CURRENT_LIST_DIR} NO_DEFAULT_PATH)
   -&gt; KF5CoreAddonsToolingTargets.cmake not better KF5CoreAddonsToolsTargets.cmake
./kcoreaddons/KF5CoreAddonsConfig.cmake.in-8-    include("${TARGETSFILE}")</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Unfortunally I did not found an example set for the \
structure of such cmake files (any howto available ?)</p></pre> <br />




<p>- Ralf</p>


<br />
<p>On Januar 4th, 2016, 3:11 nachm. CET, Ralf Habacker wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: \
1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; \
-webkit-border-radius: 6px;">  <tr>
  <td>

<div>Review request for KDE Frameworks.</div>
<div>By Ralf Habacker.</div>


<p style="color: grey;"><i>Updated Jan. 4, 2016, 3:11 nachm.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
kcoreaddons
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" \
style="border: 1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">Add cross compile support for desktoptojson.</pre>  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: \
1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Cross compiled package has been build at \
https://build.opensuse.org/package/show/home:rhabacker:branches:windows:mingw:win32:KF516/mingw32-kcoreaddons</p></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>KF5CoreAddonsConfig.cmake.in <span style="color: \
grey">(dce3a4e65599b286d8fedbaa20235f5025f509e8)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/126494/diff/" style="margin-left: \
3em;">View Diff</a></p>






  </td>
 </tr>
</table>







  </div>
 </body>
</html>


--===============0819281812769479189==--


[Attachment #3 (text/plain)]

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic