Initial commit
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
cmake_minimum_required(VERSION 3.22.1)
|
||||
project(camera_hook LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
# Find Android libraries
|
||||
find_library(log-lib log)
|
||||
find_library(dl-lib dl)
|
||||
find_library(mediandk-lib mediandk)
|
||||
find_library(android-lib android)
|
||||
|
||||
# HAL hook shared library
|
||||
add_library(camera_hook SHARED
|
||||
src/camera_wrapper.cpp
|
||||
src/video_decoder.cpp
|
||||
src/rtsp_client.cpp
|
||||
src/buffer_converter.cpp
|
||||
)
|
||||
|
||||
target_include_directories(camera_hook PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/include
|
||||
)
|
||||
|
||||
target_link_libraries(camera_hook
|
||||
${log-lib}
|
||||
${dl-lib}
|
||||
${mediandk-lib}
|
||||
${android-lib}
|
||||
)
|
||||
|
||||
# Compiler flags for LD_PRELOAD hook
|
||||
target_compile_options(camera_hook PRIVATE
|
||||
-Wall
|
||||
-Wextra
|
||||
-fvisibility=hidden
|
||||
-fPIC
|
||||
)
|
||||
|
||||
# Enable NEON intrinsics for ARM64
|
||||
if(ANDROID_ABI STREQUAL "arm64-v8a")
|
||||
target_compile_options(camera_hook PRIVATE -march=armv8-a+simd)
|
||||
endif()
|
||||
|
||||
# Output name
|
||||
set_target_properties(camera_hook PROPERTIES
|
||||
OUTPUT_NAME "camera_hook"
|
||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/../app/src/main/jniLibs/${ANDROID_ABI}"
|
||||
)
|
||||
|
||||
# Camera provider wrapper (static C binary, bind-mounted over original)
|
||||
add_executable(camera_provider_wrapper src/camera_provider_wrapper.c)
|
||||
target_link_options(camera_provider_wrapper PRIVATE -static)
|
||||
set_target_properties(camera_provider_wrapper PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/../root-module"
|
||||
)
|
||||
Reference in New Issue
Block a user