Tests: Add test for VS Nsight Tegra generator support
Create a VSNsightTegra test based on the "two-libs" example from the Android NDK. Add it whenever testing on a machine with VS 11 or 12 and the NVIDIA Nsight Tegra Visual Studio Edition installed. Exclude it when there is a space in the path to the source or build tree because the tools do not seem to support it.
This commit is contained in:
parent
a62894998f
commit
7115702f1b
|
@ -1781,13 +1781,15 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
set(reg_vs10 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0;InstallDir]")
|
||||||
set(reg_vs11 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\11.0;InstallDir]")
|
set(reg_vs11 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\11.0;InstallDir]")
|
||||||
set(reg_vs12 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\12.0;InstallDir]")
|
set(reg_vs12 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\12.0;InstallDir]")
|
||||||
set(reg_ws80 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v8.0;InstallationFolder]")
|
set(reg_ws80 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v8.0;InstallationFolder]")
|
||||||
set(reg_ws81 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v8.1;InstallationFolder]")
|
set(reg_ws81 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v8.1;InstallationFolder]")
|
||||||
set(reg_wp80 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\WindowsPhone\\v8.0;InstallationFolder]")
|
set(reg_wp80 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\WindowsPhone\\v8.0;InstallationFolder]")
|
||||||
set(reg_wp81 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\WindowsPhone\\v8.1;InstallationFolder]")
|
set(reg_wp81 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\WindowsPhone\\v8.1;InstallationFolder]")
|
||||||
foreach(reg vs11 vs12 ws80 ws81 wp80 wp81)
|
set(reg_tegra "[HKEY_LOCAL_MACHINE\\SOFTWARE\\NVIDIA Corporation\\Nsight Tegra;sdkRoot]")
|
||||||
|
foreach(reg vs10 vs11 vs12 ws80 ws81 wp80 wp81 tegra)
|
||||||
get_filename_component(r "${reg_${reg}}" ABSOLUTE)
|
get_filename_component(r "${reg_${reg}}" ABSOLUTE)
|
||||||
if(IS_DIRECTORY "${r}")
|
if(IS_DIRECTORY "${r}")
|
||||||
set(${reg} 1)
|
set(${reg} 1)
|
||||||
|
@ -1833,6 +1835,30 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(tegra AND NOT "${CMake_SOURCE_DIR};${CMake_BINARY_DIR}" MATCHES " ")
|
||||||
|
macro(add_test_VSNsightTegra name generator)
|
||||||
|
add_test(NAME VSNsightTegra.${name} COMMAND ${CMAKE_CTEST_COMMAND}
|
||||||
|
--build-and-test
|
||||||
|
"${CMake_SOURCE_DIR}/Tests/VSNsightTegra"
|
||||||
|
"${CMake_BINARY_DIR}/Tests/VSNsightTegra/${name}"
|
||||||
|
--build-generator "${generator}"
|
||||||
|
--build-project VSNsightTegra
|
||||||
|
--build-config $<CONFIGURATION>
|
||||||
|
--build-options -DCMAKE_SYSTEM_NAME=Android
|
||||||
|
)
|
||||||
|
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSNsightTegra/${name}")
|
||||||
|
endmacro()
|
||||||
|
if(vs10)
|
||||||
|
add_test_VSNsightTegra(vs10 "Visual Studio 10 2010")
|
||||||
|
endif()
|
||||||
|
if(vs11)
|
||||||
|
add_test_VSNsightTegra(vs11 "Visual Studio 11 2012")
|
||||||
|
endif()
|
||||||
|
if(vs12)
|
||||||
|
add_test_VSNsightTegra(vs12 "Visual Studio 12 2013")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
if (CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
if (CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||||
set(BundleTestInstallDir
|
set(BundleTestInstallDir
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="com.example.twolibs"
|
||||||
|
android:versionCode="1"
|
||||||
|
android:versionName="1.0">
|
||||||
|
<uses-sdk android:minSdkVersion="3" />
|
||||||
|
<application android:label="@string/app_name">
|
||||||
|
<activity android:name=".TwoLibs"
|
||||||
|
android:label="@string/app_name">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
</application>
|
||||||
|
</manifest>
|
|
@ -0,0 +1,38 @@
|
||||||
|
cmake_minimum_required(VERSION 3.0)
|
||||||
|
project(VSNsightTegra C CXX)
|
||||||
|
|
||||||
|
set(CMAKE_ANDROID_API 15)
|
||||||
|
set(CMAKE_ANDROID_GUI 1)
|
||||||
|
|
||||||
|
set(FIRST_C_FILES
|
||||||
|
jni/first.c
|
||||||
|
jni/first.h
|
||||||
|
)
|
||||||
|
|
||||||
|
source_group(jni FILES ${FIRST_C_FILES})
|
||||||
|
add_library(twolib-first ${FIRST_C_FILES})
|
||||||
|
|
||||||
|
set(SECOND_C_FILES
|
||||||
|
jni/second.c
|
||||||
|
)
|
||||||
|
set(SECOND_JAVA_FILES
|
||||||
|
src/com/example/twolibs/TwoLibs.java
|
||||||
|
)
|
||||||
|
set(SECOND_RES_FILES
|
||||||
|
res/values/strings.xml
|
||||||
|
)
|
||||||
|
set(SECOND_ANDROID_FILES
|
||||||
|
AndroidManifest.xml
|
||||||
|
)
|
||||||
|
|
||||||
|
source_group(jni FILES ${SECOND_C_FILES})
|
||||||
|
source_group(res\\values FILES ${SECOND_RES_FILES})
|
||||||
|
source_group(src\\com\\example\\twolibs FILES ${SECOND_JAVA_FILES})
|
||||||
|
add_executable(twolib-second
|
||||||
|
${SECOND_C_FILES}
|
||||||
|
${SECOND_JAVA_FILES}
|
||||||
|
${SECOND_RES_FILES}
|
||||||
|
${SECOND_ANDROID_FILES}
|
||||||
|
)
|
||||||
|
target_include_directories(twolib-second PUBLIC jni)
|
||||||
|
target_link_libraries(twolib-second twolib-first)
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project name="TwoLibs" default="help">
|
||||||
|
<import file="${sdk.dir}/tools/ant/build.xml" />
|
||||||
|
</project>
|
|
@ -0,0 +1,22 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2009 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#include "first.h"
|
||||||
|
|
||||||
|
int first(int x, int y)
|
||||||
|
{
|
||||||
|
return x + y;
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2009 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#ifndef FIRST_H
|
||||||
|
#define FIRST_H
|
||||||
|
|
||||||
|
extern int first(int x, int y);
|
||||||
|
|
||||||
|
#endif /* FIRST_H */
|
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2009 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#include "first.h"
|
||||||
|
#include <jni.h>
|
||||||
|
|
||||||
|
jint
|
||||||
|
Java_com_example_twolibs_TwoLibs_add( JNIEnv* env,
|
||||||
|
jobject this,
|
||||||
|
jint x,
|
||||||
|
jint y )
|
||||||
|
{
|
||||||
|
return first(x, y);
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">TwoLibs</string>
|
||||||
|
</resources>
|
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2009 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package com.example.twolibs;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.widget.TextView;
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
public class TwoLibs extends Activity
|
||||||
|
{
|
||||||
|
/** Called when the activity is first created. */
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState)
|
||||||
|
{
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
TextView tv = new TextView(this);
|
||||||
|
int x = 1000;
|
||||||
|
int y = 42;
|
||||||
|
|
||||||
|
// here, we dynamically load the library at runtime
|
||||||
|
// before calling the native method.
|
||||||
|
//
|
||||||
|
System.loadLibrary("twolib-second");
|
||||||
|
|
||||||
|
int z = add(x, y);
|
||||||
|
|
||||||
|
tv.setText( "The sum of " + x + " and " + y + " is " + z );
|
||||||
|
setContentView(tv);
|
||||||
|
}
|
||||||
|
|
||||||
|
public native int add(int x, int y);
|
||||||
|
}
|
Loading…
Reference in New Issue