Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build-artifacts/project-template-gradle/settings.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"v8Version": "7.2.502.28",
"v8Version": "7.3.492.25",
"mksnapshotParams": "--profile_deserialization --turbo_instruction_scheduling"
}
Binary file modified test-app/app/src/main/assets/app/modules/libCalc-arm.so
Binary file not shown.
Binary file modified test-app/app/src/main/assets/app/modules/libCalc-arm64.so
Binary file not shown.
Binary file modified test-app/app/src/main/assets/app/modules/libCalc-x86.so
Binary file not shown.
247 changes: 126 additions & 121 deletions test-app/runtime/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,7 @@ endif (CCACHE_FOUND AND (USE_CCACHE))
# "-DANDROID_STL=c++_static" is just not enough for clang++ to find some libraries in the ndk
MESSAGE(STATUS "## ANDROID_NDK_ROOT: " ${ANDROID_NDK_ROOT})

if (ANDROID_ABI MATCHES "arm64")
set(ARCH_INCLUDE_DIR "aarch64-linux-android")
else ()
set(ARCH_INCLUDE_DIR "arm-linux-androideabi")
endif ()

set(COMMON_CMAKE_ARGUMENTS "-std=c++11 -stdlib=libc++ -Werror -Wno-unused-result -mstackrealign -fexceptions -fno-builtin-stpcpy -fno-rtti")
set(COMMON_CMAKE_ARGUMENTS "-std=c++11 -Werror -Wno-unused-result -mstackrealign -fexceptions -fno-builtin-stpcpy -fno-rtti -D_LIBCPP_ABI_VERSION=Cr -D_LIBCPP_ENABLE_NODISCARD -D_LIBCPP_ABI_UNSTABLE")

# AOSP has switched to using LLD by default and the NDK will use it by default in the next release.
# BFD and Gold will be removed once LLD has been through a release cycle with no major unresolved issues (estimated r21)
Expand All @@ -42,14 +36,14 @@ set(COMMON_CMAKE_ARGUMENTS "-std=c++11 -stdlib=libc++ -Werror -Wno-unused-result

# Command info: https://cmake.org/cmake/help/v3.4/command/include_directories.html
include_directories(
src/main/cpp
src/main/cpp/include
src/main/cpp/v8_inspector

# hack to find some libraries from the ndk
${ANDROID_NDK_ROOT}/sysroot/usr/include/${ARCH_INCLUDE_DIR}/

src/main/libs/${ANDROID_ABI}/include
# V8 uses a custom STL compiled with the LIBCPP_ABI_UNSTABLE flag. To maintain the ABI
# compatibility we use this same STL headers for building the runtime
src/main/cpp/include/libc++
src/main/cpp
src/main/cpp/include
src/main/cpp/v8_inspector
# This folder contains V8's built-in natives and snapshot blobs
src/main/libs/${ANDROID_ABI}/include
)

if (OPTIMIZED_BUILD OR OPTIMIZED_WITH_INSPECTOR_BUILD)
Expand All @@ -63,61 +57,61 @@ if (NOT OPTIMIZED_BUILD OR OPTIMIZED_WITH_INSPECTOR_BUILD)
add_definitions(-DAPPLICATION_IN_DEBUG)

set(
INSPECTOR_SOURCES

src/main/cpp/com_tns_AndroidJsV8Inspector.cpp
src/main/cpp/JsV8InspectorClient.cpp
src/main/cpp/DOMDomainCallbackHandlers.cpp
src/main/cpp/NetworkDomainCallbackHandlers.cpp

src/main/cpp/v8_inspector/src/inspector/protocol/CSS.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Console.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/DOM.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Debugger.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/HeapProfiler.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Log.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Network.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Overlay.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Page.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Profiler.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Protocol.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Runtime.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Schema.cpp
src/main/cpp/v8_inspector/src/inspector/utils/base64.cpp
src/main/cpp/v8_inspector/src/inspector/utils/v8-inspector-common.cpp
src/main/cpp/v8_inspector/src/inspector/utils/v8-network-request-data.cpp
src/main/cpp/v8_inspector/src/inspector/utils/v8-page-resources.cpp
src/main/cpp/v8_inspector/src/inspector/v8-css-agent-impl.cpp
src/main/cpp/v8_inspector/src/inspector/v8-dom-agent-impl.cpp
src/main/cpp/v8_inspector/src/inspector/v8-log-agent-impl.cpp
src/main/cpp/v8_inspector/src/inspector/v8-network-agent-impl.cpp
src/main/cpp/v8_inspector/src/inspector/v8-overlay-agent-impl.cpp
src/main/cpp/v8_inspector/src/inspector/v8-page-agent-impl.cpp

src/main/cpp/v8_inspector/src/inspector/custom-preview.cc
src/main/cpp/v8_inspector/src/inspector/injected-script.cc
src/main/cpp/v8_inspector/src/inspector/inspected-context.cc
src/main/cpp/v8_inspector/src/inspector/remote-object-id.cc
src/main/cpp/v8_inspector/src/inspector/search-util.cc
src/main/cpp/v8_inspector/src/inspector/string-16.cc
src/main/cpp/v8_inspector/src/inspector/string-util.cc
src/main/cpp/v8_inspector/src/inspector/v8-console.cc
src/main/cpp/v8_inspector/src/inspector/v8-console-agent-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-console-message.cc
src/main/cpp/v8_inspector/src/inspector/v8-debugger.cc
src/main/cpp/v8_inspector/src/inspector/v8-debugger-agent-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-debugger-script.cc
src/main/cpp/v8_inspector/src/inspector/v8-heap-profiler-agent-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-inspector-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-inspector-session-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-profiler-agent-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-regex.cc
src/main/cpp/v8_inspector/src/inspector/v8-runtime-agent-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-schema-agent-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-stack-trace-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-value-utils.cc
src/main/cpp/v8_inspector/src/inspector/value-mirror.cc
src/main/cpp/v8_inspector/src/inspector/wasm-translation.cc
INSPECTOR_SOURCES

src/main/cpp/com_tns_AndroidJsV8Inspector.cpp
src/main/cpp/JsV8InspectorClient.cpp
src/main/cpp/DOMDomainCallbackHandlers.cpp
src/main/cpp/NetworkDomainCallbackHandlers.cpp

src/main/cpp/v8_inspector/src/inspector/protocol/CSS.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Console.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/DOM.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Debugger.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/HeapProfiler.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Log.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Network.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Overlay.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Page.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Profiler.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Protocol.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Runtime.cpp
src/main/cpp/v8_inspector/src/inspector/protocol/Schema.cpp
src/main/cpp/v8_inspector/src/inspector/utils/base64.cpp
src/main/cpp/v8_inspector/src/inspector/utils/v8-inspector-common.cpp
src/main/cpp/v8_inspector/src/inspector/utils/v8-network-request-data.cpp
src/main/cpp/v8_inspector/src/inspector/utils/v8-page-resources.cpp
src/main/cpp/v8_inspector/src/inspector/v8-css-agent-impl.cpp
src/main/cpp/v8_inspector/src/inspector/v8-dom-agent-impl.cpp
src/main/cpp/v8_inspector/src/inspector/v8-log-agent-impl.cpp
src/main/cpp/v8_inspector/src/inspector/v8-network-agent-impl.cpp
src/main/cpp/v8_inspector/src/inspector/v8-overlay-agent-impl.cpp
src/main/cpp/v8_inspector/src/inspector/v8-page-agent-impl.cpp

src/main/cpp/v8_inspector/src/inspector/custom-preview.cc
src/main/cpp/v8_inspector/src/inspector/injected-script.cc
src/main/cpp/v8_inspector/src/inspector/inspected-context.cc
src/main/cpp/v8_inspector/src/inspector/remote-object-id.cc
src/main/cpp/v8_inspector/src/inspector/search-util.cc
src/main/cpp/v8_inspector/src/inspector/string-16.cc
src/main/cpp/v8_inspector/src/inspector/string-util.cc
src/main/cpp/v8_inspector/src/inspector/v8-console.cc
src/main/cpp/v8_inspector/src/inspector/v8-console-agent-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-console-message.cc
src/main/cpp/v8_inspector/src/inspector/v8-debugger.cc
src/main/cpp/v8_inspector/src/inspector/v8-debugger-agent-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-debugger-script.cc
src/main/cpp/v8_inspector/src/inspector/v8-heap-profiler-agent-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-inspector-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-inspector-session-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-profiler-agent-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-regex.cc
src/main/cpp/v8_inspector/src/inspector/v8-runtime-agent-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-schema-agent-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-stack-trace-impl.cc
src/main/cpp/v8_inspector/src/inspector/v8-value-utils.cc
src/main/cpp/v8_inspector/src/inspector/value-mirror.cc
src/main/cpp/v8_inspector/src/inspector/wasm-translation.cc
)
else ()
# Debug builds will include the V8 inspector sources
Expand All @@ -128,55 +122,55 @@ endif ()
# Creates(shared static) and names a library given relative sources
# Gradle automatically packages shared libraries with your APK.
add_library(
# Sets the name of the library. When it's built you can find it with lib prefix libNativeScript.so
NativeScript

# Sets the library as a shared library.
SHARED

# Runtime source
src/main/cpp/ArgConverter.cpp
src/main/cpp/ArrayBufferHelper.cpp
src/main/cpp/ArrayElementAccessor.cpp
src/main/cpp/ArrayHelper.cpp
src/main/cpp/AssetExtractor.cpp
src/main/cpp/CallbackHandlers.cpp
src/main/cpp/Constants.cpp
src/main/cpp/DirectBuffer.cpp
src/main/cpp/FieldAccessor.cpp
src/main/cpp/File.cpp
src/main/cpp/JEnv.cpp
src/main/cpp/DesugaredInterfaceCompanionClassNameResolver.cpp
src/main/cpp/JType.cpp
src/main/cpp/JniSignatureParser.cpp
src/main/cpp/JsArgConverter.cpp
src/main/cpp/JsArgToArrayConverter.cpp
src/main/cpp/Logger.cpp
src/main/cpp/ManualInstrumentation.cpp
src/main/cpp/MetadataMethodInfo.cpp
src/main/cpp/MetadataNode.cpp
src/main/cpp/MetadataReader.cpp
src/main/cpp/MetadataTreeNode.cpp
src/main/cpp/MethodCache.cpp
src/main/cpp/ModuleInternal.cpp
src/main/cpp/NativeScriptException.cpp
src/main/cpp/NumericCasts.cpp
src/main/cpp/ObjectManager.cpp
src/main/cpp/Profiler.cpp
src/main/cpp/ReadWriteLock.cpp
src/main/cpp/Runtime.cpp
src/main/cpp/SimpleAllocator.cpp
src/main/cpp/SimpleProfiler.cpp
src/main/cpp/Util.cpp
src/main/cpp/V8GlobalHelpers.cpp
src/main/cpp/V8StringConstants.cpp
src/main/cpp/WeakRef.cpp
src/main/cpp/com_tns_AssetExtractor.cpp
src/main/cpp/com_tns_Runtime.cpp
src/main/cpp/console/Console.cpp

# V8 inspector source files will be included only in Release mode
${INSPECTOR_SOURCES}
# Sets the name of the library. When it's built you can find it with lib prefix libNativeScript.so
NativeScript

# Sets the library as a shared library.
SHARED

# Runtime source
src/main/cpp/ArgConverter.cpp
src/main/cpp/ArrayBufferHelper.cpp
src/main/cpp/ArrayElementAccessor.cpp
src/main/cpp/ArrayHelper.cpp
src/main/cpp/AssetExtractor.cpp
src/main/cpp/CallbackHandlers.cpp
src/main/cpp/Constants.cpp
src/main/cpp/DirectBuffer.cpp
src/main/cpp/FieldAccessor.cpp
src/main/cpp/File.cpp
src/main/cpp/JEnv.cpp
src/main/cpp/DesugaredInterfaceCompanionClassNameResolver.cpp
src/main/cpp/JType.cpp
src/main/cpp/JniSignatureParser.cpp
src/main/cpp/JsArgConverter.cpp
src/main/cpp/JsArgToArrayConverter.cpp
src/main/cpp/Logger.cpp
src/main/cpp/ManualInstrumentation.cpp
src/main/cpp/MetadataMethodInfo.cpp
src/main/cpp/MetadataNode.cpp
src/main/cpp/MetadataReader.cpp
src/main/cpp/MetadataTreeNode.cpp
src/main/cpp/MethodCache.cpp
src/main/cpp/ModuleInternal.cpp
src/main/cpp/NativeScriptException.cpp
src/main/cpp/NumericCasts.cpp
src/main/cpp/ObjectManager.cpp
src/main/cpp/Profiler.cpp
src/main/cpp/ReadWriteLock.cpp
src/main/cpp/Runtime.cpp
src/main/cpp/SimpleAllocator.cpp
src/main/cpp/SimpleProfiler.cpp
src/main/cpp/Util.cpp
src/main/cpp/V8GlobalHelpers.cpp
src/main/cpp/V8StringConstants.cpp
src/main/cpp/WeakRef.cpp
src/main/cpp/com_tns_AssetExtractor.cpp
src/main/cpp/com_tns_Runtime.cpp
src/main/cpp/console/Console.cpp

# V8 inspector source files will be included only in Release mode
${INSPECTOR_SOURCES}
)

set(NATIVES_BLOB_INCLUDE_DIRECTORIES ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/include)
Expand All @@ -189,7 +183,8 @@ if (OPTIMIZED_BUILD OR OPTIMIZED_WITH_INSPECTOR_BUILD)
)
else ()
set_target_properties(
NativeScript PROPERTIES LINK_FLAGS "-Wl,--allow-multiple-definition"
NativeScript
PROPERTIES LINK_FLAGS -Wl,--allow-multiple-definition
INTERFACE_INCLUDE_DIRECTORIES NATIVES_BLOB_INCLUDE_DIRECTORIES
)
endif ()
Expand All @@ -203,7 +198,7 @@ MESSAGE(STATUS "# CMAKE_C_FLAGS: " ${CMAKE_C_FLAGS})
MESSAGE(STATUS "# CMAKE_CXX_FLAGS: " ${CMAKE_CXX_FLAGS})

# Command info: https://cmake.org/cmake/help/v3.4/command/target_link_libraries.html
# linking v8 and inspector libraries to runtime(NativeScript library)
# linking v8 and custom STL libraries to the runtime (NativeScript library)
target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libzip.a)
target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libv8_base.a)
target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libv8_external_snapshot.a)
Expand All @@ -213,6 +208,16 @@ target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID
target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libv8_libsampler.a)
target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libv8_libbase.a)

# This is the custom STL produced during the V8 build
target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libc++.a)
target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libc++abi.a)

if("${ANDROID_ABI}" MATCHES "armeabi-v7a" OR "${ANDROID_ABI}" MATCHES "x86")
# On API Level 19 and lower we need to link with android_support
# because it contains some implementation of functions such as "strtoll" and "strtoul"
target_link_libraries(NativeScript ${ANDROID_NDK_ROOT}/sources/cxx-stl/llvm-libc++/libs/${ANDROID_ABI}/libandroid_support.a)
endif()

# Command info: https://cmake.org/cmake/help/v3.4/command/find_library.html
# Searches for a specified prebuilt library and stores the path as a
# variable. Because CMake includes system libraries in the search path by
Expand Down
Loading