mirror of
https://github.com/ocornut/imgui.git
synced 2026-11-07 15:05:47 +01:00
Update CMakeLists.txt
This commit is contained in:
parent
0d2348557a
commit
85d2519c02
@ -1,56 +1,44 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
project(JKMenu)
|
||||
project(ModMenu)
|
||||
|
||||
# 1. 强制使用静态 STL,减少对系统库的依赖
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(ANDROID_STL c++_static)
|
||||
|
||||
# 2. 包含目录(确保 backends 路径正确)
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/backends)
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) # 如果 Dobby 的头文件在 include 里
|
||||
|
||||
# 3. ImGui 源文件定义
|
||||
set(IMGUI_SRCS
|
||||
imgui.cpp
|
||||
imgui_draw.cpp
|
||||
imgui_widgets.cpp
|
||||
imgui_tables.cpp
|
||||
imgui_demo.cpp
|
||||
backends/imgui_impl_android.cpp
|
||||
backends/imgui_impl_opengl3.cpp
|
||||
# --- 1. 引入 ImGui 源码 (假设放在项目根目录的 imgui 文件夹) ---
|
||||
set(IMGUI_DIR ${CMAKE_CURRENT_SOURCE_DIR}/imgui)
|
||||
set(IMGUI_SOURCES
|
||||
${IMGUI_DIR}/imgui.cpp
|
||||
${IMGUI_DIR}/imgui_draw.cpp
|
||||
${IMGUI_DIR}/imgui_tables.cpp
|
||||
${IMGUI_DIR}/imgui_widgets.cpp
|
||||
${IMGUI_DIR}/backends/imgui_impl_android.cpp
|
||||
${IMGUI_DIR}/backends/imgui_impl_opengl3.cpp
|
||||
)
|
||||
|
||||
# --- 重点:编译插件库 libJKMenu.so ---
|
||||
# 增加渲染相关的源文件,确保 OpenGL 绑定完整
|
||||
add_library(JKMenu SHARED
|
||||
main.cpp
|
||||
${IMGUI_SRCS}
|
||||
# --- 2. 引入 Dobby Hook 库 ---
|
||||
# 假设 dobby.h 在根目录,libdobby.a 在根目录下的 libs/${ANDROID_ABI}/ 文件夹中
|
||||
set(DOBBY_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set(DOBBY_LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libs/${ANDROID_ABI})
|
||||
|
||||
add_library(dobby STATIC IMPORTED)
|
||||
set_target_properties(dobby PROPERTIES IMPORTED_LOCATION ${DOBBY_LIB_DIR}/libdobby.a)
|
||||
|
||||
# --- 3. 创建你的目标库 libmodmenu.so ---
|
||||
add_library(modmenu SHARED main.cpp ${IMGUI_SOURCES})
|
||||
|
||||
# --- 4. 包含头文件路径 ---
|
||||
target_include_directories(modmenu PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${IMGUI_DIR}
|
||||
${IMGUI_DIR}/backends
|
||||
${DOBBY_INCLUDE}
|
||||
)
|
||||
|
||||
# 4. 解决符号隐藏问题 (非常重要!)
|
||||
# 很多游戏会扫描导出的符号,隐藏非必要符号可以提高隐蔽性并防止冲突
|
||||
set_target_properties(JKMenu PROPERTIES
|
||||
C_VISIBILITY_PRESET hidden
|
||||
CXX_VISIBILITY_PRESET hidden
|
||||
VISIBILITY_INLINES_HIDDEN ON
|
||||
# --- 5. 链接必要的系统库和 Dobby 库 ---
|
||||
target_link_libraries(modmenu
|
||||
dobby
|
||||
android
|
||||
EGL
|
||||
GLESv3
|
||||
log
|
||||
z
|
||||
)
|
||||
|
||||
# 5. 链接库文件
|
||||
# 注意:Dobby 最好使用全路径,且放在最后链接
|
||||
target_link_libraries(JKMenu
|
||||
android
|
||||
log
|
||||
EGL
|
||||
GLESv3
|
||||
-Wl,--whole-archive ${CMAKE_CURRENT_SOURCE_DIR}/libdobby.a -Wl,--no-whole-archive
|
||||
-static-libstdc++
|
||||
)
|
||||
|
||||
# --- 编译注入器 ---
|
||||
add_executable(jk_injector injector.cpp)
|
||||
target_link_libraries(jk_injector log)
|
||||
|
||||
# 6. 设置输出名称
|
||||
set_target_properties(JKMenu PROPERTIES OUTPUT_NAME "JKMenu")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user