<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>