You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
346 lines
12 KiB
CMake
346 lines
12 KiB
CMake
# For more information about using CMake with Android Studio, read the
|
|
# documentation: https://d.android.com/studio/projects/add-native-code.html
|
|
|
|
# Sets the minimum version of CMake required to build the native library.
|
|
|
|
cmake_minimum_required(VERSION 3.22.1)
|
|
|
|
# enable_language(ASM)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
# set(CMAKE_ANDROID_ARM_MODE ON) # breakpad
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffunction-sections -fdata-sections")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
|
|
# SET_TARGET_PROPERTIES(microphoto PROPERTIES LINK_FLAGS "-Wl,-s,--gc-sections")
|
|
|
|
IF (CMAKE_BUILD_TYPE STREQUAL Debug)
|
|
ADD_DEFINITIONS(-D_DEBUG)
|
|
ELSE()
|
|
ADD_DEFINITIONS(-DNDEBUG)
|
|
ENDIF()
|
|
# add_definitions(-DBOOST_EXCEPTION_DISABLE)
|
|
# add_definitions(-DBOOST_NO_EXCEPTIONS)
|
|
add_definitions(-DTERMINAL_CLIENT)
|
|
add_definitions(-DKEEP_FRAME_TYPE_ON_REVERSE)
|
|
add_definitions(-DBOOST_ALL_NO_LIB)
|
|
add_definitions(-DASIO_STANDALONE)
|
|
# add_definitions(-DUSING_BREAK_PAD)
|
|
|
|
# set(OpenCV_DIR D:/Workspace/deps/OpenCV-android-sdk/sdk/native/jni/)
|
|
set(OPENCV_EXTRA_MODULES_PATH D:/Workspace/Github/opencv_contrib/modules)
|
|
|
|
# include_directories(${OpenCV_DIR}/include)
|
|
# add_library( lib_opencv SHARED IMPORTED )
|
|
# set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${OpenCV_DIR}/../libs/${ANDROID_ABI}/libopencv_java4.so)
|
|
|
|
# Declares and names the project.
|
|
|
|
project("microphoto")
|
|
|
|
# message(FATAL_ERROR "OpenCV ${OpenCV_DIR}")
|
|
|
|
find_package(OpenCV REQUIRED core imgproc highgui)
|
|
if(OpenCV_FOUND)
|
|
include_directories(${OpenCV_INCLUDE_DIRS})
|
|
message(WARNING "OpenCV library status:")
|
|
message(WARNING " version: ${OpenCV_VERSION}")
|
|
message(WARNING " libraries: ${OpenCV_LIBS}")
|
|
message(WARNING " include path: ${OpenCV_INCLUDE_DIRS}")
|
|
else(OpenCV_FOUND)
|
|
message(FATAL_ERROR "OpenCV library not found")
|
|
endif(OpenCV_FOUND)
|
|
|
|
# ncnn
|
|
set(ncnn_DIR ${CMAKE_SOURCE_DIR}/ncnn-20230517-android-vulkan/${ANDROID_ABI}/lib/cmake/ncnn)
|
|
find_package(ncnn REQUIRED)
|
|
|
|
# include(mars/src/CMakeUtils.txt)
|
|
|
|
SET(YAMC_INC_DIR ${CMAKE_SOURCE_DIR})
|
|
|
|
SET(TERM_CORE_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../xymp/Core)
|
|
#SET(TERM_CORE_ROOT D:/Workspace/xymp/Core)
|
|
|
|
SET(JSONCPP_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp)
|
|
SET(JSONCPP_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp/include)
|
|
|
|
SET(BREAKPAD_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/breakpad)
|
|
|
|
SET(CAMERA2_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/camera2)
|
|
|
|
SET(EVPP_SRC_DIR ${EVPP_ROOT}/evpp)
|
|
|
|
include_directories(${YAMC_INC_DIR})
|
|
include_directories(${BREAKPAD_ROOT} ${BREAKPAD_ROOT}/common/android/include)
|
|
include_directories(${ASIO_ROOT}/include)
|
|
|
|
file(GLOB BREAKPAD_SOURCES_COMMON
|
|
native-lib.cpp
|
|
${BREAKPAD_ROOT}/client/linux/crash_generation/crash_generation_client.cc
|
|
${BREAKPAD_ROOT}/client/linux/dump_writer_common/thread_info.cc
|
|
${BREAKPAD_ROOT}/client/linux/dump_writer_common/ucontext_reader.cc
|
|
${BREAKPAD_ROOT}/client/linux/handler/exception_handler.cc
|
|
${BREAKPAD_ROOT}/client/linux/handler/minidump_descriptor.cc
|
|
${BREAKPAD_ROOT}/client/linux/log/log.cc
|
|
${BREAKPAD_ROOT}/client/linux/microdump_writer/microdump_writer.cc
|
|
${BREAKPAD_ROOT}/client/linux/minidump_writer/linux_dumper.cc
|
|
${BREAKPAD_ROOT}/client/linux/minidump_writer/linux_ptrace_dumper.cc
|
|
${BREAKPAD_ROOT}/client/linux/minidump_writer/minidump_writer.cc
|
|
${BREAKPAD_ROOT}/client/linux/minidump_writer/pe_file.cc
|
|
${BREAKPAD_ROOT}/client/minidump_file_writer.cc
|
|
${BREAKPAD_ROOT}/common/convert_UTF.cc
|
|
${BREAKPAD_ROOT}/common/md5.cc
|
|
${BREAKPAD_ROOT}/common/string_conversion.cc
|
|
${BREAKPAD_ROOT}/common/linux/elfutils.cc
|
|
${BREAKPAD_ROOT}/common/linux/file_id.cc
|
|
${BREAKPAD_ROOT}/common/linux/guid_creator.cc
|
|
${BREAKPAD_ROOT}/common/linux/linux_libc_support.cc
|
|
${BREAKPAD_ROOT}/common/linux/memory_mapped_file.cc
|
|
${BREAKPAD_ROOT}/common/linux/safe_readlink.cc
|
|
)
|
|
|
|
file(GLOB BREAKPAD_ASM_SOURCE ${BREAKPAD_ROOT}/common/linux/breakpad_getcontext.S)
|
|
set_property(SOURCE ${BREAKPAD_ROOT}/common/linux/breakpad_getcontext.S PROPERTY LANGUAGE C)
|
|
# set_source_files_properties(${BREAKPAD_ASM_SOURCE} PROPERTIES LANGUAGE C)
|
|
|
|
# Creates and names a library, sets it as either STATIC
|
|
# or SHARED, and provides the relative paths to its source code.
|
|
# You can define multiple libraries, and CMake builds them for you.
|
|
# Gradle automatically packages shared libraries with your APK.
|
|
|
|
add_library( # Sets the name of the library.
|
|
breakpad
|
|
|
|
# Sets the library as a shared library.
|
|
STATIC
|
|
|
|
# Provides a relative path to your source file(s).
|
|
${BREAKPAD_SOURCES_COMMON}
|
|
${BREAKPAD_ASM_SOURCE}
|
|
)
|
|
|
|
|
|
INCLUDE_DIRECTORIES(${JSONCPP_INCLUDE_DIR})
|
|
|
|
SET(PUBLIC_HEADERS
|
|
${JSONCPP_INCLUDE_DIR}/json/config.h
|
|
${JSONCPP_INCLUDE_DIR}/json/forwards.h
|
|
${JSONCPP_INCLUDE_DIR}/json/features.h
|
|
${JSONCPP_INCLUDE_DIR}/json/value.h
|
|
${JSONCPP_INCLUDE_DIR}/json/reader.h
|
|
${JSONCPP_INCLUDE_DIR}/json/writer.h
|
|
${JSONCPP_INCLUDE_DIR}/json/assertions.h
|
|
${JSONCPP_INCLUDE_DIR}/json/version.h
|
|
)
|
|
|
|
SET(JSONCPP_SOURCES
|
|
${JSONCPP_SRC_DIR}/src/lib_json/json_tool.h
|
|
${JSONCPP_SRC_DIR}/src/lib_json/json_reader.cpp
|
|
${JSONCPP_SRC_DIR}/src/lib_json/json_valueiterator.inl
|
|
${JSONCPP_SRC_DIR}/src/lib_json/json_value.cpp
|
|
${JSONCPP_SRC_DIR}/src/lib_json/json_writer.cpp
|
|
${JSONCPP_SRC_DIR}/version.in)
|
|
|
|
SET(CAMERA2_SOURCES
|
|
# ${CAMERA2_ROOT_DIR}/android_main.cpp
|
|
# ${CAMERA2_ROOT_DIR}/camera_engine.cpp
|
|
# ${CAMERA2_ROOT_DIR}/camera_manager.cpp
|
|
# ${CAMERA2_ROOT_DIR}/camera_listeners.cpp
|
|
# ${CAMERA2_ROOT_DIR}/image_reader.cpp
|
|
# ${CAMERA2_ROOT_DIR}/camera_ui.cpp
|
|
# ${CAMERA2_ROOT_DIR}/utils/camera_utils.cpp
|
|
${CAMERA2_ROOT_DIR}/ndkcamera.cpp)
|
|
|
|
SET(EVPP_SOURCES
|
|
${EVPP_SRC_DIR}/any.h
|
|
${EVPP_SRC_DIR}/buffer.cc
|
|
${EVPP_SRC_DIR}/buffer.h
|
|
${EVPP_SRC_DIR}/connector.cc
|
|
${EVPP_SRC_DIR}/connector.h
|
|
${EVPP_SRC_DIR}/dns_resolver.cc
|
|
${EVPP_SRC_DIR}/dns_resolver.h
|
|
${EVPP_SRC_DIR}/duration.cc
|
|
${EVPP_SRC_DIR}/duration.h
|
|
${EVPP_SRC_DIR}/duration.inl.h
|
|
${EVPP_SRC_DIR}/event_loop.cc
|
|
${EVPP_SRC_DIR}/event_loop.h
|
|
${EVPP_SRC_DIR}/event_loop_thread.cc
|
|
${EVPP_SRC_DIR}/event_loop_thread.h
|
|
${EVPP_SRC_DIR}/event_loop_thread_pool.cc
|
|
${EVPP_SRC_DIR}/event_loop_thread_pool.h
|
|
${EVPP_SRC_DIR}/event_watcher.cc
|
|
${EVPP_SRC_DIR}/event_watcher.h
|
|
${EVPP_SRC_DIR}/fd_channel.cc
|
|
${EVPP_SRC_DIR}/fd_channel.h
|
|
${EVPP_SRC_DIR}/gettimeofday.h
|
|
#${EVPP_SRC_DIR}/httpc\conn.cc
|
|
#${EVPP_SRC_DIR}/httpc\conn.h
|
|
#${EVPP_SRC_DIR}/httpc\conn_pool.cc
|
|
#${EVPP_SRC_DIR}/httpc\conn_pool.h
|
|
#${EVPP_SRC_DIR}/httpc\request.cc
|
|
#${EVPP_SRC_DIR}/httpc\request.h
|
|
#${EVPP_SRC_DIR}/httpc\response.cc
|
|
#${EVPP_SRC_DIR}/httpc\response.h
|
|
#${EVPP_SRC_DIR}/httpc\ssl.cc
|
|
#${EVPP_SRC_DIR}/httpc\ssl.h
|
|
#${EVPP_SRC_DIR}/httpc\url_parser.cc
|
|
#${EVPP_SRC_DIR}/httpc\url_parser.h
|
|
${EVPP_SRC_DIR}/inner_pre.cc
|
|
${EVPP_SRC_DIR}/inner_pre.h
|
|
${EVPP_SRC_DIR}/invoke_timer.cc
|
|
${EVPP_SRC_DIR}/invoke_timer.h
|
|
${EVPP_SRC_DIR}/libevent.cc
|
|
${EVPP_SRC_DIR}/libevent.h
|
|
${EVPP_SRC_DIR}/listener.cc
|
|
${EVPP_SRC_DIR}/listener.h
|
|
${EVPP_SRC_DIR}/logging.h
|
|
${EVPP_SRC_DIR}/memmem.h
|
|
${EVPP_SRC_DIR}/platform_config.h
|
|
${EVPP_SRC_DIR}/server_status.h
|
|
${EVPP_SRC_DIR}/slice.h
|
|
${EVPP_SRC_DIR}/sockets.cc
|
|
${EVPP_SRC_DIR}/sockets.h
|
|
${EVPP_SRC_DIR}/sys_addrinfo.h
|
|
${EVPP_SRC_DIR}/sys_sockets.h
|
|
${EVPP_SRC_DIR}/tcp_callbacks.h
|
|
${EVPP_SRC_DIR}/tcp_client.cc
|
|
${EVPP_SRC_DIR}/tcp_client.h
|
|
${EVPP_SRC_DIR}/tcp_conn.cc
|
|
${EVPP_SRC_DIR}/tcp_conn.h
|
|
${EVPP_SRC_DIR}/tcp_server.cc
|
|
${EVPP_SRC_DIR}/tcp_server.h
|
|
${EVPP_SRC_DIR}/thread_dispatch_policy.h
|
|
${EVPP_SRC_DIR}/timestamp.h
|
|
${EVPP_SRC_DIR}/timestamp.inl.h
|
|
${EVPP_SRC_DIR}/utility.h
|
|
${EVPP_SRC_DIR}/windows_port.h
|
|
)
|
|
|
|
include_directories(${TERM_CORE_ROOT})
|
|
# include_directories(${PROJECT_SOURCE_DIR}/../../../../../libs/inc/)
|
|
|
|
|
|
#add_library( # Sets the name of the library.
|
|
# evpp_lite
|
|
#
|
|
# # Sets the library as a shared library.
|
|
# STATIC
|
|
#
|
|
# # Provides a relative path to your source file(s).
|
|
# ${EVPP_SOURCES} )
|
|
|
|
|
|
IF (CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
|
|
# set(BOOST_ROOT C:/ProgramData/boost_1_82_0/)
|
|
# set(BOOST_INCLUDEDIR C:/ProgramData/boost_1_82_0/)
|
|
include_directories(C:/ProgramData/boost_1_82_0/)
|
|
ELSE()
|
|
# find_package(Boost 1.58.0 COMPONENTS)
|
|
find_package(Boost 1.58.0)
|
|
if(Boost_FOUND)
|
|
include_directories(${Boost_INCLUDE_DIRS})
|
|
else()
|
|
message(FATAL_ERROR "Boost Not Found")
|
|
endif()
|
|
endif()
|
|
|
|
# Creates and names a library, sets it as either STATIC
|
|
# or SHARED, and provides the relative paths to its source code.
|
|
# You can define multiple libraries, and CMake builds them for you.
|
|
# Gradle automatically packages shared libraries with your APK.
|
|
|
|
|
|
add_library( # Sets the name of the library.
|
|
jsoncpp
|
|
|
|
# Sets the library as a shared library.
|
|
STATIC
|
|
|
|
# Provides a relative path to your source file(s).
|
|
${JSONCPP_SOURCES}
|
|
)
|
|
|
|
add_library( # Sets the name of the library.
|
|
microphoto
|
|
|
|
# Sets the library as a shared library.
|
|
SHARED
|
|
|
|
# Provides a relative path to your source file(s).
|
|
MicroPhoto.cpp
|
|
TerminalDevice.cpp
|
|
PhoneDevice.cpp
|
|
PhoneDevice2.cpp
|
|
Camera.cpp
|
|
Camera2Reader.cpp
|
|
|
|
${CAMERA2_SOURCES}
|
|
|
|
${TERM_CORE_ROOT}/Factory.cpp
|
|
${TERM_CORE_ROOT}/FilePoster.cpp
|
|
${TERM_CORE_ROOT}/LogThread.cpp
|
|
${TERM_CORE_ROOT}/SpecData.cpp
|
|
${TERM_CORE_ROOT}/SpecData_I1.cpp
|
|
${TERM_CORE_ROOT}/SpecData_I1_AH.cpp
|
|
${TERM_CORE_ROOT}/SpecData_I1_JS.cpp
|
|
${TERM_CORE_ROOT}/SpecData_I1_HN.cpp
|
|
${TERM_CORE_ROOT}/SpecData_I1_HEN.cpp
|
|
${TERM_CORE_ROOT}/SpecData_I1_HENZZ.cpp
|
|
${TERM_CORE_ROOT}/SpecData_I1_SHX.cpp
|
|
${TERM_CORE_ROOT}/SpecData_XY.cpp
|
|
${TERM_CORE_ROOT}/SpecData_ZJ.cpp
|
|
${TERM_CORE_ROOT}/SpecData_NW.cpp
|
|
${TERM_CORE_ROOT}/Timer.cpp
|
|
${TERM_CORE_ROOT}/TimerThread.cpp
|
|
${TERM_CORE_ROOT}/Template.cpp
|
|
${TERM_CORE_ROOT}/Utils.cpp
|
|
${TERM_CORE_ROOT}/Client/TerminalService.cpp
|
|
${TERM_CORE_ROOT}/Client/Terminal.cpp
|
|
${TERM_CORE_ROOT}/Client/Terminal_HN.cpp
|
|
${TERM_CORE_ROOT}/Client/Terminal_AH.cpp
|
|
${TERM_CORE_ROOT}/Client/Terminal_HEN_ZZ.cpp
|
|
${TERM_CORE_ROOT}/Client/Terminal_HEN.cpp
|
|
${TERM_CORE_ROOT}/Client/Terminal_SHX.cpp
|
|
${TERM_CORE_ROOT}/Client/Terminal_JS.cpp
|
|
${TERM_CORE_ROOT}/Client/Terminal_NW.cpp
|
|
${TERM_CORE_ROOT}/Client/UpgradeReceiver.cpp
|
|
|
|
)
|
|
|
|
|
|
# Searches for a specified prebuilt library and stores the path as a
|
|
# variable. Because CMake includes system libraries in the search path by
|
|
# default, you only need to specify the name of the public NDK library
|
|
# you want to add. CMake verifies that the library exists before
|
|
# completing its build.
|
|
|
|
find_library( # Sets the name of the path variable.
|
|
log-lib
|
|
|
|
# Specifies the name of the NDK library that
|
|
# you want CMake to locate.
|
|
log)
|
|
|
|
# Specifies libraries CMake should link to your target library. You
|
|
# can link multiple libraries, such as libraries you define in this
|
|
# build script, prebuilt third-party libraries, or system libraries.
|
|
|
|
target_link_libraries( # Specifies the target library.
|
|
microphoto
|
|
|
|
jsoncpp
|
|
|
|
# breakpad
|
|
|
|
# Links the target library to the log library
|
|
# included in the NDK.
|
|
${log-lib}
|
|
|
|
android camera2ndk mediandk z
|
|
|
|
ncnn ${OpenCV_LIBS}
|
|
|
|
)
|
|
|