From bec77b910b2db28421c19fcdda2ce21985688207 Mon Sep 17 00:00:00 2001 From: Darin Dimitrov Date: Tue, 8 May 2018 08:50:12 +0300 Subject: [PATCH] Set linker flags in release build --- test-app/runtime/CMakeLists.txt | 120 +++++++++++++++++--------------- 1 file changed, 63 insertions(+), 57 deletions(-) diff --git a/test-app/runtime/CMakeLists.txt b/test-app/runtime/CMakeLists.txt index 69d462d6d..ba6eee225 100644 --- a/test-app/runtime/CMakeLists.txt +++ b/test-app/runtime/CMakeLists.txt @@ -17,13 +17,15 @@ endif() set(COMMON_CMAKE_ARGUMENTS "-std=c++11 -Werror -Wno-unused-result -mstackrealign -fexceptions -fno-builtin-stpcpy -fno-rtti") # 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 +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}/ +) - # hack to find some libraries from the ndk - ${ANDROID_NDK_ROOT}/sysroot/usr/include/${ARCH_INCLUDE_DIR}/ - ) if ( OPTIMIZED_BUILD OR OPTIMIZED_WITH_INSPECTOR_BUILD ) set(CMAKE_CXX_FLAGS "${COMMON_CMAKE_ARGUMENTS} -O3 -fvisibility=hidden -ffunction-sections -fno-data-sections") else() @@ -102,58 +104,62 @@ endif() # Command info: https://cmake.org/cmake/help/v3.4/command/add_library.html # 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/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_target_properties(NativeScript PROPERTIES LINK_FLAGS -Wl,--allow-multiple-definition) +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/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} +) +if ( OPTIMIZED_BUILD OR OPTIMIZED_WITH_INSPECTOR_BUILD ) + set_target_properties(NativeScript PROPERTIES LINK_FLAGS -Wl,--allow-multiple-definition -Wl,--exclude-libs=ALL -Wl,--gc-sections) +else() + set_target_properties(NativeScript PROPERTIES LINK_FLAGS -Wl,--allow-multiple-definition) +endif() MESSAGE( STATUS "# General cmake Info" ) MESSAGE( STATUS "# PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR} )