MYNT-EYE-S-SDK/wrappers/android/mynteye/libmynteye/CMakeLists.txt

114 lines
3.4 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.4.1)
get_filename_component(MYNTETE_ROOT "${PROJECT_SOURCE_DIR}/../../../.." ABSOLUTE)
message(STATUS "MYNTETE_ROOT: ${MYNTETE_ROOT}")
get_filename_component(PRO_ROOT "${PROJECT_SOURCE_DIR}/.." ABSOLUTE)
message(STATUS "PRO_ROOT: ${PRO_ROOT}")
set(LIB_ROOT "${PROJECT_SOURCE_DIR}")
message(STATUS "LIB_ROOT: ${LIB_ROOT}")
if(NOT DJINNI_DIR)
if(DEFINED ENV{DJINNI_DIR})
set(DJINNI_DIR $ENV{DJINNI_DIR})
else()
set(DJINNI_DIR "${PRO_ROOT}/third_party/djinni")
endif()
endif()
# libs
## log
find_library(log-lib log)
## djinni_jni
include_directories(
${DJINNI_DIR}/support-lib/jni
)
add_library(djinni_jni STATIC
${DJINNI_DIR}/support-lib/jni/djinni_support.cpp
)
# targets
## libmynteye
add_definitions(-DMYNTEYE_EXPORTS)
set(MYNTEYE_NAMESPACE "mynteye")
#message(STATUS "Namespace: ${MYNTEYE_NAMESPACE}")
configure_file(
${MYNTETE_ROOT}/include/mynteye/mynteye.h.in
include/mynteye/mynteye.h @ONLY
)
set(MYNTEYE_SRCS
${MYNTETE_ROOT}/src/mynteye/uvc/linux/uvc-v4l2.cc
${MYNTETE_ROOT}/src/mynteye/types.cc
${MYNTETE_ROOT}/src/mynteye/util/files.cc
${MYNTETE_ROOT}/src/mynteye/util/strings.cc
${MYNTETE_ROOT}/src/mynteye/device/channel/bytes.cc
${MYNTETE_ROOT}/src/mynteye/device/channel/channels.cc
${MYNTETE_ROOT}/src/mynteye/device/channel/file_channel.cc
${MYNTETE_ROOT}/src/mynteye/device/config.cc
${MYNTETE_ROOT}/src/mynteye/device/context.cc
${MYNTETE_ROOT}/src/mynteye/device/device.cc
${MYNTETE_ROOT}/src/mynteye/device/motions.cc
${MYNTETE_ROOT}/src/mynteye/device/standard/channels_adapter_s.cc
${MYNTETE_ROOT}/src/mynteye/device/standard/device_s.cc
${MYNTETE_ROOT}/src/mynteye/device/standard/streams_adapter_s.cc
${MYNTETE_ROOT}/src/mynteye/device/standard2/channels_adapter_s2.cc
${MYNTETE_ROOT}/src/mynteye/device/standard2/device_s2.cc
${MYNTETE_ROOT}/src/mynteye/device/standard2/streams_adapter_s2.cc
${MYNTETE_ROOT}/src/mynteye/device/standard2/channels_adapter_s210a.cc
${MYNTETE_ROOT}/src/mynteye/device/standard2/device_s210a.cc
${MYNTETE_ROOT}/src/mynteye/device/standard2/streams_adapter_s210a.cc
${MYNTETE_ROOT}/src/mynteye/device/streams.cc
${MYNTETE_ROOT}/src/mynteye/device/types.cc
${MYNTETE_ROOT}/src/mynteye/device/utils.cc
)
list(APPEND MYNTEYE_SRCS ${MYNTETE_ROOT}/src/mynteye/miniglog.cc)
add_library(mynteye STATIC ${MYNTEYE_SRCS})
target_link_libraries(mynteye ${log-lib})
target_include_directories(mynteye PUBLIC
"$<BUILD_INTERFACE:${MYNTETE_ROOT}/include>"
"$<BUILD_INTERFACE:${MYNTETE_ROOT}/src>"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>"
"$<INSTALL_INTERFACE:include>"
)
## libmynteye_jni
set(CPP_DIR "${PROJECT_SOURCE_DIR}/src/main/cpp")
include_directories(
${CPP_DIR}/mynteye/cpp
${CPP_DIR}/mynteye/impl
${CPP_DIR}/mynteye/jni
)
set(MYNTEYE_JNI_SRCS "")
foreach(__dir cpp impl jni)
file(GLOB __srcs "${CPP_DIR}/mynteye/${__dir}/*.cpp")
list(APPEND MYNTEYE_JNI_SRCS ${__srcs})
endforeach()
#message(STATUS "MYNTEYE_JNI_SRCS: ${MYNTEYE_JNI_SRCS}")
add_library(mynteye_jni SHARED
${DJINNI_DIR}/support-lib/jni/djinni_main.cpp
${MYNTEYE_JNI_SRCS}
)
target_link_libraries(mynteye_jni ${log-lib} djinni_jni mynteye)