<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=iso-8859-2">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi,<br>
    <br>
    from your reply I feel some defensive attitude, so I assure you my
    message wasn't intended to push you into something. It was more like
    sharing my experience from trying to build on Windows and ideas that
    might help with that.<br>
    <br>
    Dne 08.03.2018 v 16:50 Dave Mielke napsal(a):<br>
    <blockquote type="cite"
      cite="mid:20180308155059.GT7329@beta.private.mielke.cc">
      <pre wrap="">Simply changing brltty to build with cmake would be a bad idea because that's a 
Windows-specific tool. We need to build brltty on others platforms, not the 
laast of which is Linux., and I don't really want to have more than one way to 
do it.</pre>
    </blockquote>
    Well, I understand CMake as a multiplatform tool, definitely not a
    Windows-specific tool. On CMake about page
    (<a class="moz-txt-link-freetext" href="https://cmake.org/overview/">https://cmake.org/overview/</a>) they say:<br>
    <i><br>
      "CMake is an extensible, open-source system that manages the build
      process in an operating system and in a compiler-independent
      manner. Unlike many cross-platform systems, CMake is designed to
      be used in conjunction with the native build environment. Simple
      configuration files placed in each source directory (called
      CMakeLists.txt files) are used to generate standard build files
      (e.g., makefiles on Unix and projects/workspaces in Windows MSVC)
      which are used in the usual way. (...)"<br>
    </i><br>
    I saw various multiplatform projects using CMake and also on their
    website they mention projects like MySQL or KDE are using it too.
    Since it's so popular and makes building multiplatform projects much
    easier, I <i></i><i></i>wanted to know whether you thought about
    it. I understand that when something works it's better to keep it
    that way and don't change things without proper reason.<br>
    <br>
    <blockquote type="cite"
      cite="mid:20180308155059.GT7329@beta.private.mielke.cc">
      <pre wrap="">The only way I'd consider accommodating cmake is if we could convince autoconf 
to get it right.</pre>
    </blockquote>
    As I understand it, CMake is an alternative to autoconf, so I think
    it doesn't make sense to use both of them at the same time anyway.<br>
    <br>
    <blockquote type="cite"
      cite="mid:20180308155059.GT7329@beta.private.mielke.cc">
      <pre wrap="">One reason you had difficulty building brltty is because you included brltty.c, 
which means that you tried to make an executable. That, of course, makes no 
sense on Android. If cfg-android has successfully run then all you need to do 
for the core part is to make the two needed shared objects: libbrltty_core.so, 
and libbrltty_jni.so.</pre>
    </blockquote>
    I see, can you please tell me where can I find list of source files
    from which is libbrltty_core.so compiled?<br>
    <br>
    <blockquote type="cite"
      cite="mid:20180308155059.GT7329@beta.private.mielke.cc">
      <pre wrap="">We build with ant because it works. I don't personally see any need to convert 
to using gradle because we build brltty with older tools since it runs all the 
way back to ICS (4.0).</pre>
    </blockquote>
    Google maintains backward compatibility with older Android versions,
    so you don't need to use older build tools to support older Android
    versions. You can use latest version of SDK / build tools and still
    keep BRLTTY app working on Android 4.0 (by setting minSdkVersion
    value).<br>
    On the other hand, using old SDK / build tools might cause problems
    on newer Android versions, as we've seen with the "native text
    relocations" error recently.<br>
    <br>
    Google previously used Eclipse as main IDE and Ant as build system.
    Few years ago they created Android Studio and since then they use
    Gradle as build system. With Gradle it is easier and also more
    powerful to build Android projects.  And as I mentioned in last
    e-mail, they even removed the Ant build scripts from SDK last year,
    so they expect everyone switching to Gradle eventually. For building
    native code via NDK they use CMake - Gradle will run that CMake
    script to compile and get binaries which then Gradle builds into
    resulting APK. That's why I mentioned that (from this point of view)
    it would be best if whole BRLTTY would use CMake too (but I'm not
    saying it should).<br>
    <br>
    <blockquote type="cite"
      cite="mid:20180308155059.GT7329@beta.private.mielke.cc">
      <pre wrap="">The android command is part of the Android SDK.The directory it's in needs to 
be in your command search path.</pre>
    </blockquote>
    Yes, that error message came from the <i>android</i> command
    itself, because support for that parameter was removed in recent
    build tools (same as they removed the Ant scripts). In older SDK
    version that command works.<br>
    <br>
    <blockquote type="cite"
      cite="mid:20180308155059.GT7329@beta.private.mielke.cc">
      <pre wrap="">My question is: Rather than introduce a bunch of needless and 
unwanted turbulence into our way of building, why not just install a Linux VM 
on Windows and do it our way?
</pre>
    </blockquote>
    Because since I already spent some time trying to make it work, I
    thought that finishing it and finding working solution for building
    on Windows would also help others who may want to do the same thing
    in the future.<br>
    <br>
    <blockquote type="cite"
      cite="mid:20180308155059.GT7329@beta.private.mielke.cc">
      <pre wrap="">I'd much rather invest my time and effort into solving real problems, 
and also would rather devote a chunk of it to my personal life (family, etc). </pre>
    </blockquote>
    I understand that and I appreciate your time you invest in BRLTTY
    and in this conversation.<br>
    <br>
    Robert<br>
  </body>
</html>