You've already forked ReZygisk
mirror of
https://github.com/PerformanC/ReZygisk.git
synced 2025-09-06 06:37:01 +00:00
use cmake instead of ndk-build
This commit is contained in:
@@ -15,12 +15,27 @@ fun Project.findInPath(executable: String, property: String): String? {
|
|||||||
}?.absolutePath ?: properties.getOrDefault(property, null) as? String?
|
}?.absolutePath ?: properties.getOrDefault(property, null) as? String?
|
||||||
}
|
}
|
||||||
|
|
||||||
val ccachePatch by lazy {
|
val ccachePath by lazy {
|
||||||
project.findInPath("ccache", "ccache.path")?.also {
|
project.findInPath("ccache", "ccache.path")?.also {
|
||||||
println("loader: Use ccache: $it")
|
println("loader: Use ccache: $it")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val defaultCFlags = arrayOf(
|
||||||
|
"-Wall", "-Wextra",
|
||||||
|
"-fno-rtti", "-fno-exceptions",
|
||||||
|
"-fno-stack-protector", "-fomit-frame-pointer",
|
||||||
|
"-Wno-builtin-macro-redefined", "-D__FILE__=__FILE_NAME__"
|
||||||
|
)
|
||||||
|
|
||||||
|
val releaseFlags = arrayOf(
|
||||||
|
"-Oz", "-flto",
|
||||||
|
"-Wno-unused", "-Wno-unused-parameter",
|
||||||
|
"-fvisibility=hidden", "-fvisibility-inlines-hidden",
|
||||||
|
"-fno-unwind-tables", "-fno-asynchronous-unwind-tables",
|
||||||
|
"-Wl,--exclude-libs,ALL", "-Wl,--gc-sections", "-Wl,--strip-all"
|
||||||
|
)
|
||||||
|
|
||||||
android {
|
android {
|
||||||
buildFeatures {
|
buildFeatures {
|
||||||
androidResources = false
|
androidResources = false
|
||||||
@@ -28,16 +43,27 @@ android {
|
|||||||
prefab = true
|
prefab = true
|
||||||
}
|
}
|
||||||
|
|
||||||
externalNativeBuild.ndkBuild {
|
externalNativeBuild.cmake {
|
||||||
path("src/Android.mk")
|
path("src/CMakeLists.txt")
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
externalNativeBuild {
|
externalNativeBuild.cmake {
|
||||||
ndkBuild {
|
arguments += "-DANDROID_STL=none"
|
||||||
ccachePatch?.let {
|
arguments += "-DLSPLT_STANDALONE=ON"
|
||||||
arguments += "NDK_CCACHE=$it"
|
cFlags("-std=c18", *defaultCFlags)
|
||||||
}
|
cppFlags("-std=c++20", *defaultCFlags)
|
||||||
|
ccachePath?.let {
|
||||||
|
arguments += "-DNDK_CCACHE=$it"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
buildTypes {
|
||||||
|
release {
|
||||||
|
externalNativeBuild.cmake {
|
||||||
|
cFlags += releaseFlags
|
||||||
|
cppFlags += releaseFlags
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
LOCAL_PATH := $(call my-dir)
|
|
||||||
define walk
|
|
||||||
$(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))
|
|
||||||
endef
|
|
||||||
|
|
||||||
include $(CLEAR_VARS)
|
|
||||||
LOCAL_MODULE := common
|
|
||||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
|
||||||
FILE_LIST := $(filter %.cpp, $(call walk, $(LOCAL_PATH)/common))
|
|
||||||
LOCAL_SRC_FILES := $(FILE_LIST:COMMON_FILE_LIST:$(LOCAL_PATH)/%=%)
|
|
||||||
LOCAL_STATIC_LIBRARIES := cxx
|
|
||||||
LOCAL_LDLIBS := -llog
|
|
||||||
include $(BUILD_STATIC_LIBRARY)
|
|
||||||
|
|
||||||
include $(CLEAR_VARS)
|
|
||||||
LOCAL_MODULE := zygisk
|
|
||||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
|
||||||
FILE_LIST := $(filter %.cpp, $(call walk, $(LOCAL_PATH)/injector))
|
|
||||||
LOCAL_SRC_FILES := $(FILE_LIST:COMMON_FILE_LIST:$(LOCAL_PATH)/%=%)
|
|
||||||
LOCAL_STATIC_LIBRARIES := cxx common liblsplt libphmap
|
|
||||||
LOCAL_LDLIBS := -llog
|
|
||||||
include $(BUILD_SHARED_LIBRARY)
|
|
||||||
|
|
||||||
$(call import-module,prefab/cxx)
|
|
||||||
|
|
||||||
include src/external/Android.mk
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
APP_CFLAGS := -Wall -Wextra
|
|
||||||
APP_CFLAGS += -fno-stack-protector -fomit-frame-pointer
|
|
||||||
APP_CFLAGS += -Wno-builtin-macro-redefined -D__FILE__=__FILE_NAME__
|
|
||||||
APP_CPPFLAGS := -std=c++20
|
|
||||||
APP_CONLYFLAGS := -std=c18
|
|
||||||
APP_STL := none
|
|
||||||
|
|
||||||
ifneq ($(NDK_DEBUG),1)
|
|
||||||
APP_CFLAGS += -Oz -flto
|
|
||||||
APP_CFLAGS += -Wno-unused -Wno-unused-parameter
|
|
||||||
APP_CFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
|
|
||||||
APP_CFLAGS += -fno-unwind-tables -fno-asynchronous-unwind-tables
|
|
||||||
APP_LDFLAGS += -Wl,--exclude-libs,ALL -flto -Wl,--gc-sections -Wl,--strip-all
|
|
||||||
endif
|
|
||||||
16
loader/src/CMakeLists.txt
Normal file
16
loader/src/CMakeLists.txt
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.22.1)
|
||||||
|
project("loader")
|
||||||
|
|
||||||
|
find_package(cxx REQUIRED CONFIG)
|
||||||
|
|
||||||
|
aux_source_directory(common COMMON_SRC_LIST)
|
||||||
|
add_library(common STATIC ${COMMON_SRC_LIST})
|
||||||
|
target_include_directories(common PRIVATE include)
|
||||||
|
target_link_libraries(common cxx::cxx log)
|
||||||
|
|
||||||
|
aux_source_directory(injector INJECTOR_SRC_LIST)
|
||||||
|
add_library(zygisk SHARED ${INJECTOR_SRC_LIST})
|
||||||
|
target_include_directories(zygisk PRIVATE include)
|
||||||
|
target_link_libraries(zygisk cxx::cxx log common lsplt_static phmap)
|
||||||
|
|
||||||
|
add_subdirectory(external)
|
||||||
21
loader/src/external/Android.mk
vendored
21
loader/src/external/Android.mk
vendored
@@ -1,21 +0,0 @@
|
|||||||
LOCAL_PATH := $(call my-dir)
|
|
||||||
|
|
||||||
# liblsplt.a
|
|
||||||
include $(CLEAR_VARS)
|
|
||||||
LOCAL_MODULE:= liblsplt
|
|
||||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/lsplt/lsplt/src/main/jni/include
|
|
||||||
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
|
|
||||||
LOCAL_CFLAGS := -Wall -Wextra -Werror -fvisibility=hidden -DLOG_DISABLED
|
|
||||||
LOCAL_CPPFLAGS := -std=c++20
|
|
||||||
LOCAL_STATIC_LIBRARIES := libcxx
|
|
||||||
LOCAL_SRC_FILES := \
|
|
||||||
lsplt/lsplt/src/main/jni/elf_util.cc \
|
|
||||||
lsplt/lsplt/src/main/jni/lsplt.cc
|
|
||||||
include $(BUILD_STATIC_LIBRARY)
|
|
||||||
|
|
||||||
# Header only library
|
|
||||||
include $(CLEAR_VARS)
|
|
||||||
LOCAL_MODULE:= libphmap
|
|
||||||
LOCAL_CFLAGS := -Wno-unused-value
|
|
||||||
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/parallel-hashmap
|
|
||||||
include $(BUILD_STATIC_LIBRARY)
|
|
||||||
8
loader/src/external/CMakeLists.txt
vendored
Normal file
8
loader/src/external/CMakeLists.txt
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
project(external)
|
||||||
|
|
||||||
|
OPTION(LSPLT_BUILD_SHARED OFF)
|
||||||
|
add_subdirectory(lsplt/lsplt/src/main/jni)
|
||||||
|
|
||||||
|
add_library(phmap INTERFACE)
|
||||||
|
target_include_directories(phmap INTERFACE parallel-hashmap)
|
||||||
|
target_compile_options(phmap INTERFACE -Wno-unused-value)
|
||||||
Reference in New Issue
Block a user