aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2020-02-28 20:02:01 -0800
committerHaibo Huang <hhb@google.com>2020-03-02 18:34:25 +0000
commiteb3a81852f0f032c84257370fd09d12c367d41d6 (patch)
treef56353e5bc9dfd71f752322818427e530092ea96
parent020442632ec1b453961c944f9cefaa2e5b5109e2 (diff)
downloadndk-eb3a81852f0f032c84257370fd09d12c367d41d6.tar.gz
Specify cmake and ninja paths
New cmake will not come with ninja. Also fix a test. The new cmake does not allow a target with no source file. Exempt-From-Owner-Approval: Fixes two more tests Change-Id: Id091b49670ac888e1a724f9f60398c164596a5f6
-rw-r--r--ndk/test/types.py30
-rw-r--r--tests/build/build-assembly-file/CMakeLists.txt8
-rw-r--r--tests/build/build-mode-cmake/CMakeLists.txt6
3 files changed, 10 insertions, 34 deletions
diff --git a/ndk/test/types.py b/ndk/test/types.py
index 92c4a4fb6..f7b8944e0 100644
--- a/ndk/test/types.py
+++ b/ndk/test/types.py
@@ -398,32 +398,10 @@ def _run_cmake_build_test(test: CMakeBuildTest, obj_dir: str, dist_dir: str,
# Add prebuilts to PATH.
prebuilts_host_tag = ndk.hosts.get_default_host().value + '-x86'
- prebuilts_bin = ndk.paths.android_path(
- 'prebuilts', 'cmake', prebuilts_host_tag, 'bin')
- env_path = prebuilts_bin + os.pathsep + os.environ['PATH']
-
- # Fail if we don't have a working cmake executable, either from the
- # prebuilts, or from the SDK, or if a new enough version is installed.
- cmake_bin = shutil.which('cmake', path=env_path)
- if cmake_bin is None:
- return Failure(test, 'cmake executable not found')
-
- out = subprocess.check_output([cmake_bin, '--version']).decode('utf-8')
- version_pattern = r'cmake version (\d+)\.(\d+)\.'
- m = re.match(version_pattern, out)
- if m is None:
- raise RuntimeError('Unable to determine CMake version.')
- version = [int(v) for v in m.groups()]
- if version < [3, 6]:
- return Failure(test, 'cmake 3.6 or above required')
-
- # Also require a working ninja executable.
- ninja_bin = shutil.which('ninja', path=env_path)
- if ninja_bin is None:
- return Failure(test, 'ninja executable not found')
- rc, _ = ndk.ext.subprocess.call_output([ninja_bin, '--version'])
- if rc != 0:
- return Failure(test, 'ninja --version failed')
+ cmake_bin = ndk.paths.android_path(
+ 'prebuilts', 'cmake', prebuilts_host_tag, 'bin', 'cmake')
+ ninja_bin = ndk.paths.android_path(
+ 'prebuilts', 'ninja', prebuilts_host_tag, 'ninja')
toolchain_file = os.path.join(ndk_path, 'build', 'cmake',
'android.toolchain.cmake')
diff --git a/tests/build/build-assembly-file/CMakeLists.txt b/tests/build/build-assembly-file/CMakeLists.txt
index bb5f55460..b7170b2f4 100644
--- a/tests/build/build-assembly-file/CMakeLists.txt
+++ b/tests/build/build-assembly-file/CMakeLists.txt
@@ -10,6 +10,8 @@ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL mips)
set(TEST_SOURCES jni/assembly-mips.S)
endif()
-add_library(test_build_assembly SHARED ${TEST_SOURCES})
-# Without C or C++ files, CMake doesn't know which linker to use.
-set_target_properties(test_build_assembly PROPERTIES LINKER_LANGUAGE C)
+if(DEFINED TEST_SOURCES)
+ add_library(test_build_assembly SHARED ${TEST_SOURCES})
+ # Without C or C++ files, CMake doesn't know which linker to use.
+ set_target_properties(test_build_assembly PROPERTIES LINKER_LANGUAGE C)
+endif()
diff --git a/tests/build/build-mode-cmake/CMakeLists.txt b/tests/build/build-mode-cmake/CMakeLists.txt
index 4c948daa7..faa2f79ef 100644
--- a/tests/build/build-mode-cmake/CMakeLists.txt
+++ b/tests/build/build-mode-cmake/CMakeLists.txt
@@ -2,10 +2,6 @@ cmake_minimum_required(VERSION 3.6)
include(ExternalProject)
-find_program(NINJA_PATH
- NAMES ninja
- DOC "Path to ninja binary")
-
function(add_test name)
cmake_parse_arguments(ARG
"CHECK_NEON;CHECK_ARM;CHECK_THUMB2;CHECK_X86"
@@ -21,7 +17,7 @@ function(add_test name)
-DCHECK_ARM=${ARG_CHECK_ARM}
-DCHECK_THUMB2=${ARG_CHECK_THUMB2}
-DCHECK_X86=${ARG_CHECK_X86}
- -DCMAKE_MAKE_PROGRAM=${NINJA_PATH}
+ -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
)
if(DEFINED ARG_NEON)
list(APPEND args -DANDROID_ARM_NEON=${ARG_NEON})