Skip to content

Commit

Permalink
Add tools.to_android_arch helper method
Browse files Browse the repository at this point in the history
  • Loading branch information
CAMOBAP committed Feb 17, 2019
1 parent 6ec73ac commit 7fdd871
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 7 deletions.
7 changes: 1 addition & 6 deletions conans/client/build/cmake_flags.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,12 +190,7 @@ def _cmake_cross_build_defines(self):

# Adjust Android stuff
if os_ == "Android":
arch_abi_settings = {"armv8": "arm64-v8a",
"armv7": "armeabi-v7a",
"armv7hf": "armeabi-v7a",
"armv6": "armeabi-v6",
"armv5": "armeabi"
}.get(arch, arch)
arch_abi_settings = tools.to_android_abi(arch)
if arch_abi_settings:
ret["CMAKE_ANDROID_ARCH_ABI"] = arch_abi_settings

Expand Down
2 changes: 2 additions & 0 deletions conans/client/tools/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@

# noinspection PyUnresolvedReferences
# noinspection PyUnresolvedReferences
from .android import *
# noinspection PyUnresolvedReferences
from .apple import *
from .env import *
# noinspection PyUnresolvedReferences
Expand Down
13 changes: 13 additions & 0 deletions conans/client/tools/android.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import subprocess


def to_android_abi(arch):
"""converts conan-style architecture into Android-NDK ABI"""
return {'armv5': 'armeabi',
'armv6': 'armeabi-v6',
'armv7': 'armeabi-v7a',
'armv7hf': 'armeabi-v7a',
'armv8': 'arm64-v8a'}.get(str(arch), str(arch))
3 changes: 2 additions & 1 deletion conans/test/unittests/client/build/cmake_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -707,7 +707,8 @@ def convenient_functions_test(self):

cross = '-DCMAKE_SYSTEM_NAME="Android"' \
' -DCMAKE_SYSROOT="/path/to/sysroot"' \
' -DCMAKE_ANDROID_ARCH_ABI="armeabi-v7a"'
' -DCMAKE_ANDROID_ARCH_ABI="armeabi-v7a"' \
' -DANDROID_ABI="armeabi-v7a"'
target_test = CMakeTest.scape('--target test')

cmake.configure()
Expand Down
21 changes: 21 additions & 0 deletions conans/test/unittests/util/android_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import platform
import unittest

from conans.client import tools


class AndroidTest(unittest.TestCase):
def test_to_android_abi(self):
self.assertEqual(tools.to_android_abi('x86'), 'x86')
self.assertEqual(tools.to_android_abi('x86_64'), 'x86_64')
self.assertEqual(tools.to_android_abi('armv5'), 'armeabi')
self.assertEqual(tools.to_android_abi('armv6'), 'armeabi-v6')
self.assertEqual(tools.to_android_abi('armv7'), 'armeabi-v7a')
self.assertEqual(tools.to_android_abi('armv7hf'), 'armeabi-v7a')
self.assertEqual(tools.to_android_abi('armv8'), 'arm64-v8a')
self.assertEqual(tools.to_android_abi('mips'), 'mips')
self.assertEqual(tools.to_android_abi('mips64'), 'mips64')
1 change: 1 addition & 0 deletions conans/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
from conans.client.tools.pkg_config import * # pylint: disable=unused-import
from conans.client.tools.scm import * # pylint: disable=unused-import
from conans.client.tools.apple import *
from conans.client.tools.android import *
# Tools form conans.util
from conans.util.env_reader import get_env
from conans.util.files import _generic_algorithm_sum, load, md5, md5sum, mkdir, relative_dirs, \
Expand Down

0 comments on commit 7fdd871

Please sign in to comment.