>>> >> >> target to build) in the leaf build gradle files.
>>> >> >> >>>>> >> >> However
>>> >> >> >>>>> >> >> you
>>> >> >> >>>>> >>
gt; >> >> >>>>> >> >> > the
>> >> >> >>>>> >> >> > APK.
>> >> >> >>>>> >> >> > Is
>> >> >> >>>>> >> >> > the
>&g
t; On Mon, Aug 21, 2017 at 9:00 AM, Robert Dailey
> >> >> >>>>> >> >> > <rcdailey.li...@gmail.com>
> >> >> >>>>> >> >> > wrote:
> >> >> >>>>> >> >> >>
> >> >> >>>>> >> >> >
gt;>> >> >> >> I
>> >> >>>>> >> >> >> want
>> >> >>>>> >> >> >> to specify the CMake root in 1 place, and have targets
>> >> >>>>> >> >> >> (defined
>> >> >>>>> >> >> >> furth
ecify the root CMakeLists.txt?
>> >> >>>>> >> >> >> Basically,
>> >> >>>>> >> >> >> I
>> >> >>>>> >> >> >> want
>> >> >>>>> >> >> >> to specify the CMake root in 1
On Thu, Aug 24, 2017 at 5:20 AM, Jom O'Fisher wrote:
> We'll definitely be discussing this use case at our next C++ meeting and
> I'll also be checking for myself whether ccache will work in this CMake
> scenario. If ccache does work it seems like the natural level at which
gt;> >>>>> >> >> >> doable
> >> >>>>> >> >> >> at
> >> >>>>> >> >> >> the moment? What is the recommended setup?
> >> >>>>> >> >&
ion on the CMake build to find .so
>> >>>>> >> >> >> > targets
>> >>>>> >> >> >> > and
>> >>>>> >> >> >> > those
>> >>>>> >> >> >> > get packaged.
>>
g 21, 2017 at 7:30 AM, Robert Dailey
> >>>>> >> >> >> > <rcdailey.li...@gmail.com>
> >>>>> >> >> >> > wrote:
> >>>>> >> >> >> >>
> >>>>> >> >> >> >> How exactly does Gra
; do
>>>>> >> >> >> >> some
>>>>> >> >> >> >> introspection into CMake targets to see if outputs are *.so,
>>>>> >> >> >> >> and
>>>>> >> >> &
ike to know
>>>> >> >> >> >> if
>>>> >> >> >> >> any
>>>> >> >> >> >> manual copy steps are needed in CMake to put outputs in
>>>> >> >> >> >&g
>> >> manual copy steps are needed in CMake to put outputs in
>>>> >> >> >> >> proper
>>>> >> >> >> >> locations for the APK build step. I had to do this when
>>>> >> >> >> >> us
gt;> >> >> >> > https://developer.android.com/
>> ndk/guides/cmake.html#variables.
>> >> >> >> >> > Philosophically, we try to set as little as we can get away
>> >> >> >> >> > with.
>&
gt; >> > lays
> >> >> >> >> > out exactly what we set. You can also see the folders we
> >> >> >> >> > specify
> >> >> >> >> > (one
> >> >> >> >> &
h taking a look at (if you haven't
>> >> >> >> > already)
>> >> >> >> > is:
>> >> >> >> >
>> >> >> >> > https://developer.android.com/studio/projects/add-native-code.html
>> >> >> &g
;
> >> >> >> >> Honestly, I prefer option 1 to work simply because that's how
> >> >> >> >> Google's
> >> >> >> >> officially supporting CMake. But it also has debugging which is
> >> >> >>
gt;
>> >> >> >> However, I'd like to understand a lot more about how the
>> >> >> >> integration
>> >> >> >> really happens. For example, I have these questions:
>> >> >> >>
>> >> >> >> 1)
ic
> >> >> >> platform (x86, armeabi-v7a, etc)?
> >> >> >> 2) Last time I looked into CMake integration, things defined
> inside
> >> >> >> the CMake scripts were ignored because they are specified at the
> >> >
gt; >> Gradle configuration (CXX language level was one in particular I
>> >> >> think; I specify C++14 support via CMake, but I recall this being
>> >> >> overridden from outside)?
>> >> >> 3) How redundant is it to configure individ
the differences in the actual gradle build files for each
> >> >> corresponding Java target (like, defining the name of the native
> >> >> (shared library) target in Gradle, but the command line invocation,
> -D
> >> >> CMake settings, etc would all be c
mmand line invocation, -D
>> >> CMake settings, etc would all be common and defined at the root).
>> >>
>> >> The TLDR is, the closer we can stay to CMake's way of doing things and
>> >> keep CMake-related settings self-contained to the CMake script
and defined at the root).
> >>
> >> The TLDR is, the closer we can stay to CMake's way of doing things and
> >> keep CMake-related settings self-contained to the CMake scripts
> >> themselves, the better. This also makes cross-platform easier (we
> >> build th
in Windows, for example, so having settings
>> specified in the gradle files do not carry over to other platforms.
>> Namely, settings that are not platform specific like the C++ language
>> level).
>>
>> If there's a detailed document / wiki I can read on the intrinsics
On 8/8/17, Jom O'Fisher wrote:
> Yeah, we'd like to support any CMake more recent than 3.7.0 (which is the
> first version to support server mode). So your fork would need to be based
> on a somewhat recent CMake. We probably wouldn't support a path directly in
>
Yeah, we'd like to support any CMake more recent than 3.7.0 (which is the
first version to support server mode). So your fork would need to be based
on a somewhat recent CMake. We probably wouldn't support a path directly in
build.gradle since that is typically a source controlled artifact. We'd
Hi Jom,
I'm glad to hear Android's CMake will eventually catch up.
But since you are here, can you add a feature that allows a user to
specify an alternate location for where CMake is located? There are
two useful cases for this.
1) Users daring or desperate enough to try using a more recent
ike the C++ language
> level).
>
> If there's a detailed document / wiki I can read on the intrinsics of
> CMake integration in Gradle / Android Studio, I'd love to read it.
> Otherwise, I hope you won't mind if I pick your brain as questions
> come up. I think I'm going to try
in Gradle / Android Studio, I'd love to read it.
Otherwise, I hope you won't mind if I pick your brain as questions
come up. I think I'm going to try option 1 for now and see how it
goes. It's just black box for me because unlike option 2, I have very
little control over what happens after building
Either option can work fine. Disclosure: I work on Android Studio and was
the one that added CMake support.
Option (1) is the way it's designed to work and we're working toward
getting rid of the need for the CMake fork. I can't really say when that
will happen but if you can get away with an
Right now I have custom targets set to execute the "ant release"
command after my native targets are built. Part of that command
involves copying *.so files to the libs/armeabi-v7a directory so they
get packaged in an APK.
When switching to gradle, I have two options:
1. Gradle drives CMake:
30 matches
Mail list logo