Add CMakeLists.txt

This commit is contained in:
LoveSy 2022-02-19 16:08:57 +08:00
parent c3b885b6a3
commit 68c6b5f96b
3 changed files with 71 additions and 6 deletions

View File

@ -55,10 +55,45 @@ android {
defaultConfig {
minSdk = androidMinSdkVersion
targetSdk = androidTargetSdkVersion
externalNativeBuild {
ndkBuild {
arguments += "-j${Runtime.getRuntime().availableProcessors()}"
cmake {
abiFilters("arm64-v8a", "armeabi-v7a", "x86", "x86_64")
val flags = arrayOf(
"-Wall",
"-Werror",
"-Qunused-arguments",
"-Wno-gnu-string-literal-operator-template",
"-fno-rtti",
"-fvisibility=hidden",
"-fvisibility-inlines-hidden",
"-fno-exceptions",
"-fno-stack-protector",
"-fomit-frame-pointer",
"-Wno-builtin-macro-redefined",
"-Wl,--strip-all",
"-ffunction-sections",
"-fdata-sections",
"-Wno-unused-value",
"-Wl,--gc-sections",
"-D__FILE__=__FILE_NAME__",
"-Wl,--exclude-libs,ALL",
)
cppFlags("-std=c++20", *flags)
cFlags("-std=c18", *flags)
arguments += "-DCMAKE_VERBOSE_MAKEFILE=ON"
arguments += "-DANDROID_STL=c++_shared"
val configFlags = arrayOf(
"-Oz",
"-DNDEBUG"
).joinToString(" ")
arguments.addAll(
arrayOf(
"-DCMAKE_CXX_FLAGS_RELEASE=$configFlags",
"-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=$configFlags",
"-DCMAKE_C_FLAGS_RELEASE=$configFlags",
"-DCMAKE_C_FLAGS_RELWITHDEBINFO=$configFlags"
)
)
}
}
}
@ -69,8 +104,8 @@ android {
}
externalNativeBuild {
ndkBuild {
path("jni/Android.mk")
cmake {
path("jni/CMakeLists.txt")
}
}
}

View File

@ -0,0 +1,30 @@
cmake_minimum_required(VERSION 3.4.1)
project(lsplant)
add_definitions(-std=c++20)
set(SOURCES lsplant.cc)
add_subdirectory(external/dex_builder)
add_library(${PROJECT_NAME} SHARED ${SOURCES})
add_library(${PROJECT_NAME}_static STATIC ${SOURCES})
target_include_directories(${PROJECT_NAME} PUBLIC include)
target_include_directories(${PROJECT_NAME}_static PUBLIC include)
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(${PROJECT_NAME}_static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
set(CFLAGS
-flto
)
target_compile_options(${PROJECT_NAME} PRIVATE ${CFLAGS})
target_link_options(${PROJECT_NAME} PRIVATE -flto)
target_compile_options(${PROJECT_NAME}_static PRIVATE ${CFLAGS})
target_link_libraries(${PROJECT_NAME} PUBLIC dex_builder log)
target_link_libraries(${PROJECT_NAME}_static PRIVATE dex_builder_static)
target_link_libraries(${PROJECT_NAME}_static PUBLIC log)

@ -1 +1 @@
Subproject commit 850add0912f11dc9b52fd13e4b52e5a4b20733eb
Subproject commit 2546d413f3dfe38b633fbba5aaa022959638035b