Android compile problem, local and on Travis

Jan Mulder jlmulder at xs4all.nl
Tue Dec 26 08:48:18 PST 2017


On 26-12-17 17:23, Dirk Hohndel wrote:
> 
>> On Dec 26, 2017, at 6:55 AM, Jan Mulder <jlmulder at xs4all.nl> wrote:
>>
>> Since some days (do not know exactly what introduced this) I have a compile problem when building the Android apk on my local system. I'm building using the build.sh from packaging (already from a long time).
>>
>> It's just after the apk is created (so it does not hinder testing of own build apks, and as side note/question, why is there any build processing going on after the apk is created?). After Dirk fixed the Android Travis build (sdkmanager does not understand yes), the Travis build are failing again (after, I think 2 successful runs). Remarkably, the Travis fail is also just after the apk is produced, so there might be a relation between my local fail and the Travis fail.
>>
>> My first idea was, the recent upgrade (on my desktop) to cmake 3.10. But Travis is still building with 3.9.3 ... so, no direct relation to local fail and Travis fail ...
>>
>> The local fail is:
>>
>> [ 82%] Built target subsurface-mobile.apk
>> [ 82%] Built target documentationLink
>> loading initial cache file <path stripped>/src/subsurface/Documentation
>> CMake Error: Error processing file: <path stripped>src/subsurface/Documentation
>> CMake Error: The source directory "<path stripped>src/subsurface-mobile-build-arm/doc" does not exist.
>> make[2]: *** [CMakeFiles/documentation] Error 1
>> make[1]: *** [CMakeFiles/documentation.dir/all] Error 2
>> make: *** [all] Error 2
>>
>> Notice the reference to the .../doc directory. Fully unclear to me where that is coming from. Our documentation directory is called "Documentation".
>>
>> Anybody a useful idea on this subject? I realize that there are not much own apk builders ...
> 
> I'll admit that my initial reaction to the renewed Android fails on Travis was a curse word.

Yes, fully understand a curse word. I was so surprised by this failure 
that I restarted that failing build multiple times, to see if it was a 
stupid glitch somewhere, but no ...


> 
> I did do a local build and I don't get the error that you show.
> I then gripped through all of the cmake created build files in my build directory for doc (not docs, documentation, etc, but "doc") and came up empty.
> Next I removed my build directories and rebuilt from scratch; there I ran into an odd bug where cmake couldn't find the build program for Unix makefiles.
> Adding a -DCMAKE_MAKE_PROGRAM=make fixed that (but I don't understand what's up with that).

I'm seeing that CMAKE_MAKE_PROGRAM thing, as well. Annoying, but easy to 
fix.

To add a new Android build thing ... when I build libgit2 with ndk-14d, 
I finally end up with one unresolved symbol (mmap64). So, I currently 
build libgit2 with ndk 10e. Lots of things to find on the internet on 
mmap64 stuff, but unclear to me, at this point, if it is a libgit2 
problem or a NDK thing.

> 
> Looking through the logic what we do and the snippet you show up there... hmm. We end up building the docs even though we don't bundle them. And that does happen for me after the apk is built.
> Can you take a look at subsurface-mobile-build-arm/CMakeFiles/documentationLink.dir/build.make and see if there's anything suspicious in there? For me there is no reference to just "doc" (nor is there in any of the other files in that directory)

That was the file I had been looking at earlier ... there is a lonely 
"doc" and the end of the following target (on my build):

CMakeFiles/documentation:
         /usr/bin/cmake -C <path stripped>/src/subsurface/Documentation 
OUT=<path stripped>/src/subsurface-mobile-build-arm/Documentation/ doc

--jan


More information about the subsurface mailing list