Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f382c3f

Browse files
committed
Set PATH using real SDK and NDK directories
This is a regression from f7f8cea. Previously, `self.sdk_dir` and `self.ndk_dir` were passed to `select_and_check_toolchain_version`.
1 parent 783ea19 commit f382c3f

File tree

2 files changed

+45
-4
lines changed

2 files changed

+45
-4
lines changed

pythonforandroid/build.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -370,9 +370,9 @@ def prepare_build_environment(self,
370370

371371
self.env["PATH"] = ":".join(
372372
[
373-
f"{ndk_dir}/toolchains/llvm/prebuilt/{py_platform}-x86_64/bin",
374-
ndk_dir,
375-
f"{sdk_dir}/tools",
373+
f"{self.ndk_dir}/toolchains/llvm/prebuilt/{py_platform}-x86_64/bin",
374+
self.ndk_dir,
375+
f"{self.sdk_dir}/tools",
376376
environ.get("PATH"),
377377
]
378378
)

tests/test_build.py

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1+
import os
2+
import sys
13
import unittest
24
from unittest import mock
35

46
import jinja2
57

6-
from pythonforandroid.build import run_pymodules_install
8+
from pythonforandroid.build import (
9+
Context, RECOMMENDED_TARGET_API, run_pymodules_install,
10+
)
711
from pythonforandroid.archs import ArchARMv7_a, ArchAarch_64
812

913

@@ -89,3 +93,40 @@ def test_android_manifest_xml(self):
8993
assert xml.count('android:debuggable="true"') == 1
9094
assert xml.count('<service android:name="abcd" />') == 1
9195
# TODO: potentially some other checks to be added here to cover other "logic" (flags and loops) in the template
96+
97+
98+
class TestContext(unittest.TestCase):
99+
100+
@mock.patch.dict('pythonforandroid.build.Context.env')
101+
@mock.patch('pythonforandroid.build.get_available_apis')
102+
@mock.patch('pythonforandroid.build.ensure_dir')
103+
def test_sdk_ndk_paths(
104+
self,
105+
mock_ensure_dir,
106+
mock_get_available_apis,
107+
):
108+
mock_get_available_apis.return_value = [RECOMMENDED_TARGET_API]
109+
context = Context()
110+
context.setup_dirs(os.getcwd())
111+
context.prepare_build_environment(
112+
user_sdk_dir='sdk',
113+
user_ndk_dir='ndk',
114+
user_android_api=None,
115+
user_ndk_api=None,
116+
)
117+
118+
real_sdk_dir = os.path.join(os.getcwd(), 'sdk')
119+
real_ndk_dir = os.path.join(os.getcwd(), 'ndk')
120+
assert context.sdk_dir == real_sdk_dir
121+
assert context.ndk_dir == real_ndk_dir
122+
123+
py_platform = sys.platform
124+
if py_platform in ['linux2', 'linux3']:
125+
py_platform = 'linux'
126+
127+
context_paths = context.env['PATH'].split(':')
128+
assert context_paths[0:3] == [
129+
f'{real_ndk_dir}/toolchains/llvm/prebuilt/{py_platform}-x86_64/bin',
130+
real_ndk_dir,
131+
f'{real_sdk_dir}/tools'
132+
]

0 commit comments

Comments
 (0)