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.
TermApp/app/src/main/cpp/CMakeLists.txt

485 lines
16 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)
2 years ago
set(CMAKE_CXX_STANDARD 17)
# set(CMAKE_ANDROID_ARM_MODE ON) # breakpad
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffunction-sections -fdata-sections -Wformat-security ")
2 years ago
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
# SET_TARGET_PROPERTIES(microphoto PROPERTIES LINK_FLAGS "-Wl,-s,--gc-sections")
add_definitions(-DUSING_ETHERNET)
if(ANDROID_ABI STREQUAL "armeabi-v7a")
add_definitions(-DUSING_N938)
elseif(ANDROID_ABI STREQUAL "arm64-v8a")
# add_definitions(-DUSING_N938)
# add_definitions(-DUSING_PLZ)
endif()
# OUTPUT_DBG_INFO: 输出调试相关信息
add_definitions(-DOUTPUT_DBG_INFO)
# OUTPUT_SOCKET_DBG_INFO Depends ON OUTPUT_DBG_INFO
# TerminalService.cpp
add_definitions(-DOUTPUT_SOCKET_DBG_INFO)
# OUTPUT_DB_DBG_INFO Depends ON OUTPUT_DBG_INFO
# Database.cpp
3 months ago
# add_definitions(-DOUTPUT_DB_DBG_INFO)
2 years ago
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)
2 years ago
add_definitions(-DASIO_STANDALONE)
add_definitions(-DUSING_XY_EXTENSION)
# add_definitions(-DUSING_BREAK_PAD)
add_definitions(-DSQLITE_THREADSAFE=1)
add_definitions(-DLIBRAW_NO_MEMPOOL_CHECK=1)
# add_definitions(-DHDRPLUS_NO_DETAILED_OUTPUT=1)
add_definitions(-DHAVE_STRING_H) # for memcpy in md5.c
# add_definitions(-DUSING_NRSEC)
# add_definitions(-DUSING_NRSEC_VPN)
# add_definitions(-DUSING_CERT)
# add_definitions(-DUSING_DOWSE)
add_definitions(-DALIGN_HB_TIMER_TO_PHOTO)
add_definitions(-DENABLE_3V3_ALWAYS)
add_definitions(-DCURL_STATICLIB)
add_definitions(-DUSING_HDRPLUS)
add_definitions(-DUSING_EXEC_HDRP=1)
set(USING_EXEC_HDRP 1)
2 years ago
# 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")
9 months ago
find_package(OpenCV REQUIRED core imgproc highgui photo)
1 year ago
# find_package(OpenCV REQUIRED core imgproc)
2 years ago
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)
# libzip
# set(libzip_DIR ${LIBZIP_ROOT}/${ANDROID_ABI}/lib/cmake/libzip)
# find_package(libzip REQUIRED)
# ncnn
set(ncnn_DIR ${NCNN_ROOT}/${ANDROID_ABI}/lib/cmake/ncnn)
find_package(ncnn REQUIRED)
9 months ago
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/libcutils/include)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/libutils/include)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/img_utils/include)
SET( IMG_UTILS_SRCS
"img_utils/src/EndianUtils.cpp"
#"img_utils/src/FileInput.cpp"
#"img_utils/src/FileOutput.cpp"
#"img_utils/src/SortedEntryVector.cpp"
"img_utils/src/Input.cpp"
"img_utils/src/Output.cpp"
"img_utils/src/Orderable.cpp"
"img_utils/src/TiffIfd.cpp"
"img_utils/src/TiffWritable.cpp"
"img_utils/src/TiffWriter.cpp"
"img_utils/src/TiffEntry.cpp"
"img_utils/src/TiffEntryImpl.cpp"
"img_utils/src/ByteArrayOutput.cpp"
"img_utils/src/DngUtils.cpp"
"img_utils/src/StripSource.cpp"
libutils/SharedBuffer.cpp
libutils/StrongPointer.cpp
DngCreator.cpp
)
message(WARNING "include_directories ${HDRPLUS_ROOT}/${ANDROID_ABI}/include")
include_directories(${HDRPLUS_ROOT}/${ANDROID_ABI}/include)
link_directories(${HDRPLUS_ROOT}/${ANDROID_ABI}/lib)
# message(WARNING "exiv2_DIR=${HDRPLUS_ROOT}/${ANDROID_ABI}/lib/cmake/exiv2")
# SET(exiv2_DIR ${HDRPLUS_ROOT}/${ANDROID_ABI}/lib/cmake/exiv2)
# list(APPEND CMAKE_PREFIX_PATH ${HDRPLUS_ROOT}/${ANDROID_ABI}/lib/cmake/exiv2)
# find_package(exiv2 REQUIRED CONFIG NAMES exiv2)
# message(STATUS "Found Exiv2 and linked")
# OpenMP
find_package(OpenMP REQUIRED)
# library
include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/hdrplus/include )
# include_directories(${HDRPLUS_ROOT}/${ANDROID_ABI}/include)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/hdrplus2)
include_directories(hdrplus2/${ANDROID_ABI})
include_directories(${HALIDE_ROOT}/${ANDROID_ABI}/include)
4 months ago
SET(ZLMEDIAKIT_LIBS "")
SET(STREAMING_SRCS "")
add_definitions(-DDISABLE_RTTI)
# include_directories( ${HDRPLUS_ROOT}/${ANDROID_ABI}/include/ZLMediaKit )
# include_directories( ${HDRPLUS_ROOT}/${ANDROID_ABI}/include/ZLToolKit/src/ )
# SET(ZLMEDIAKIT_LIBS ${ZLMEDIAKIT_LIBS} zlmediakit zltoolkit)
SET(STREAMING_SRCS media/RTSPToMP4.cpp media/RTSPRecorder.cpp media/Streaming.cpp )
4 months ago
SET(HDRPLUS_LIBS raw exiv2 exiv2-xmp expat lcms2 OpenMP::OpenMP_CXX)
SET(HDRPLUS2_LIBS raw raw_r lcms2 tiff tiffxx jpeg hdrplus_pipeline)
SET(HDRPLUS_SOURCES
hdrplus/src/align.cpp
hdrplus/src/bayer_image.cpp
hdrplus/src/burst.cpp
hdrplus/src/finish.cpp
hdrplus/src/hdrplus_pipeline.cpp
hdrplus/src/merge.cpp
hdrplus/src/params.cpp
)
SET(HDRPLUS2_SOURCES
hdrplus2/src/HDRPlus.cpp
hdrplus2/src/Burst.cpp
hdrplus2/src/InputSource.cpp
hdrplus2/src/LibRaw2DngConverter.cpp
hdrplus2/${ANDROID_ABI}/hdrplus_pipeline.registration.cpp)
SET(YAMC_INC_DIR ${CMAKE_SOURCE_DIR})
# SET(TERM_CORE_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../xymp/Core)
1 year ago
#SET(TERM_CORE_ROOT D:/shxy/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(FREETYPE_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/freetype)
# SET(EVPP_SRC_DIR ${EVPP_ROOT}/evpp)
include_directories(${YAMC_INC_DIR})
include_directories(${BREAKPAD_ROOT} ${BREAKPAD_ROOT}/common/android/include)
2 years ago
include_directories(${ASIO_ROOT}/include)
4 months ago
# SET(SQLITE_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/sqlite)
# SET(SQLITE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/sqlite)
# add_library(sqlite3 STATIC ${SQLITE_SRC_DIR}/sqlite3.c )
# INCLUDE_DIRECTORIES(${SQLITE_INCLUDE_DIR})
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)
add_definitions(-DFT2_BUILD_LIBRARY=1)
SET(FREETYPE_SRC_FILES
${FREETYPE_ROOT}/src/autofit/autofit.c
${FREETYPE_ROOT}/src/base/ftbase.c
${FREETYPE_ROOT}/src/base/ftbbox.c
${FREETYPE_ROOT}/src/base/ftbdf.c
${FREETYPE_ROOT}/src/base/ftbitmap.c
${FREETYPE_ROOT}/src/base/ftcid.c
${FREETYPE_ROOT}/src/base/ftdebug.c
${FREETYPE_ROOT}/src/base/ftfstype.c
${FREETYPE_ROOT}/src/base/ftgasp.c
${FREETYPE_ROOT}/src/base/ftglyph.c
${FREETYPE_ROOT}/src/base/ftgxval.c
${FREETYPE_ROOT}/src/base/ftinit.c
${FREETYPE_ROOT}/src/base/ftlcdfil.c
${FREETYPE_ROOT}/src/base/ftmm.c
${FREETYPE_ROOT}/src/base/ftotval.c
${FREETYPE_ROOT}/src/base/ftpatent.c
${FREETYPE_ROOT}/src/base/ftpfr.c
${FREETYPE_ROOT}/src/base/ftstroke.c
${FREETYPE_ROOT}/src/base/ftsynth.c
${FREETYPE_ROOT}/src/base/ftsystem.c
${FREETYPE_ROOT}/src/base/fttype1.c
${FREETYPE_ROOT}/src/base/ftwinfnt.c
${FREETYPE_ROOT}/src/bdf/bdf.c
${FREETYPE_ROOT}/src/bzip2/ftbzip2.c
${FREETYPE_ROOT}/src/cache/ftcache.c
${FREETYPE_ROOT}/src/cff/cff.c
${FREETYPE_ROOT}/src/cid/type1cid.c
${FREETYPE_ROOT}/src/gzip/ftgzip.c
${FREETYPE_ROOT}/src/lzw/ftlzw.c
${FREETYPE_ROOT}/src/pcf/pcf.c
${FREETYPE_ROOT}/src/pfr/pfr.c
${FREETYPE_ROOT}/src/psaux/psaux.c
${FREETYPE_ROOT}/src/pshinter/pshinter.c
${FREETYPE_ROOT}/src/psnames/psmodule.c
${FREETYPE_ROOT}/src/raster/raster.c
${FREETYPE_ROOT}/src/sfnt/sfnt.c
${FREETYPE_ROOT}/src/smooth/smooth.c
${FREETYPE_ROOT}/src/tools/apinames.c
${FREETYPE_ROOT}/src/truetype/truetype.c
${FREETYPE_ROOT}/src/type1/type1.c
${FREETYPE_ROOT}/src/type42/type42.c
${FREETYPE_ROOT}/src/winfonts/winfnt.c
${FREETYPE_ROOT}/src/svg/svg.c
${FREETYPE_ROOT}/src/sdf/sdf.c
)
include_directories(${FREETYPE_ROOT}/include)
include_directories(${TERM_CORE_ROOT})
# include_directories(${PROJECT_SOURCE_DIR}/../../../../../libs/inc/)
# 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_definitions(-DDARWIN_NO_CARBON)
add_definitions(-DFT2_BUILD_LIBRARY)
add_library(
freetype
STATIC
${FREETYPE_SRC_FILES}
)
if(USING_EXEC_HDRP)
message(WARNING "HDRP Compiled")
add_executable( libhdrp.so
${HDRPLUS_SOURCES}
hdrplus/bin/hdrplus.cpp )
target_link_libraries( libhdrp.so PUBLIC -fopenmp -static-openmp
android z
${OpenCV_LIBS}
# ${LIBRAW_LIBRARY}
${HDRPLUS_LIBS}
)
else(USING_EXEC_HDRP)
endif()
SET(HDRPLUS_SOURCES_EMBED ${HDRPLUS2_SOURCES} )
SET(HDRPLUS_LIBS_EMBED ${HDRPLUS2_LIBS} )
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).
GPIOControl.cpp
MicroPhoto.cpp
PhoneDevice.cpp
1 year ago
# PhoneDevice2.cpp
Camera.cpp
Camera2Reader.cpp
# TextPaint.cpp
CvText.cpp
SerialPort.cpp
#WeatherComm.cpp
SensorsProtocol.cpp
SerialComm.cpp
ncnn/yolov5ncnn.cpp
netcamera/httpclient.cpp
netcamera/VendorCtrl.cpp
netcamera/YuShiCtrl.cpp
netcamera/HangYuCtrl.cpp
4 months ago
${STREAMING_SRCS}
#serial/WeatherComm.cpp
1 year ago
# camera2/OpenCVFont.cpp
${HDRPLUS_SOURCES_EMBED}
${CAMERA2_SOURCES}
9 months ago
${IMG_UTILS_SRCS}
${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
2 years ago
${TERM_CORE_ROOT}/SpecData_I1_HENZZ.cpp
${TERM_CORE_ROOT}/SpecData_I1_SHX.cpp
${TERM_CORE_ROOT}/SpecData_I1_NX.cpp
${TERM_CORE_ROOT}/SpecData_XY.cpp
${TERM_CORE_ROOT}/SpecData_ZJ.cpp
${TERM_CORE_ROOT}/SpecData_NW.cpp
1 year ago
${TERM_CORE_ROOT}/SpecData_Nrsec.cpp
${TERM_CORE_ROOT}/Timer.cpp
${TERM_CORE_ROOT}/TimerThread.cpp
${TERM_CORE_ROOT}/Template.cpp
${TERM_CORE_ROOT}/Utils.cpp
${TERM_CORE_ROOT}/md5.c
${TERM_CORE_ROOT}/Client/SpiPort.cpp
${TERM_CORE_ROOT}/Client/NrsecPort.cpp
2 years ago
${TERM_CORE_ROOT}/Client/TerminalService.cpp
${TERM_CORE_ROOT}/Client/Terminal.cpp
${TERM_CORE_ROOT}/Client/Terminal_HN.cpp
2 years ago
${TERM_CORE_ROOT}/Client/Terminal_AH.cpp
2 years ago
${TERM_CORE_ROOT}/Client/Terminal_HEN_ZZ.cpp
${TERM_CORE_ROOT}/Client/Terminal_HEN.cpp
${TERM_CORE_ROOT}/Client/Terminal_SHX.cpp
2 years ago
${TERM_CORE_ROOT}/Client/Terminal_JS.cpp
${TERM_CORE_ROOT}/Client/Terminal_NX.cpp
${TERM_CORE_ROOT}/Client/Terminal_ZJ.cpp
${TERM_CORE_ROOT}/Client/Terminal_NW.cpp
${TERM_CORE_ROOT}/Client/UpgradeReceiver.cpp
${TERM_CORE_ROOT}/Client/Database.cpp
${TERM_CORE_ROOT}/Client/SimulatorDevice.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.
${PROJECT_NAME}
jsoncpp
freetype
# breakpad
# Links the target library to the log library
# included in the NDK.
4 months ago
avcodec avfilter avformat avutil swresample swscale x264
${log-lib}
android camera2ndk mediandk z curl
4 months ago
ncnn ${OpenCV_LIBS} sqlite3 ${HDRPLUS_LIBS_EMBED} ${ZLMEDIAKIT_LIBS}
)
1 year ago
# set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "-strip-all")