mirror of
https://github.com/Cateners/tiny_computer.git
synced 2026-05-21 00:45:49 +08:00
Termux x11 port
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
project(NativeVNC C CXX ASM)
|
||||
@@ -13,12 +12,10 @@ set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared Libs" FORCE)
|
||||
# Make sure given submodule is checked out
|
||||
macro(avnc_check_submodule name)
|
||||
if (NOT EXISTS "${AVNC_EXTERN_DIR}/${name}/CMakeLists.txt")
|
||||
message(FATAL_ERROR "git submodule for ${name} is not initialized.
|
||||
Please run 'git submodule update --init'.")
|
||||
message(FATAL_ERROR "git submodule for ${name} is not initialized. Please run 'git submodule update --init'.")
|
||||
endif ()
|
||||
endmacro()
|
||||
|
||||
|
||||
# Required to enable SIMD support on ARM
|
||||
if (CMAKE_ANDROID_ARCH STREQUAL "arm64")
|
||||
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} --target=aarch64-linux-android${ANDROID_NATIVE_API_LEVEL}")
|
||||
@@ -26,7 +23,6 @@ elseif (CMAKE_ANDROID_ARCH STREQUAL "arm")
|
||||
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} --target=arm-linux-androideabi${ANDROID_NATIVE_API_LEVEL}")
|
||||
endif ()
|
||||
|
||||
|
||||
###############################################################################
|
||||
# JPEG
|
||||
###############################################################################
|
||||
@@ -39,10 +35,10 @@ add_subdirectory(${AVNC_LIBJPEG_SRC_DIR} ${AVNC_LIBJPEG_BUILD_DIR})
|
||||
|
||||
# Set these variables so FindJPEG can find the library
|
||||
set(JPEG_LIBRARY ${AVNC_LIBJPEG_BUILD_DIR}/libturbojpeg.a)
|
||||
set(JPEG_INCLUDE_DIR ${AVNC_LIBJPEG_SRC_DIR})
|
||||
|
||||
include_directories(${AVNC_LIBJPEG_SRC_DIR} ${AVNC_LIBJPEG_BUILD_DIR})
|
||||
|
||||
# Create an interface library to manage include directories
|
||||
add_library(libjpeg INTERFACE)
|
||||
target_include_directories(libjpeg INTERFACE ${AVNC_LIBJPEG_SRC_DIR})
|
||||
|
||||
###############################################################################
|
||||
# SSL
|
||||
@@ -63,13 +59,9 @@ add_definitions(-DOPENSSL_ALL -DOPENSSL_EXTRA -DHAVE_CRL -DHAVE_EX_DATA
|
||||
|
||||
add_subdirectory(${AVNC_LIBSSL_SRC_DIR} ${AVNC_LIBSSL_BUILD_DIR})
|
||||
|
||||
# Set these variables so FindOpenSSL can find the library
|
||||
set(OPENSSL_SSL_LIBRARY ${AVNC_LIBSSL_BUILD_DIR}/libwolfssl.a)
|
||||
set(OPENSSL_CRYPTO_LIBRARY ${AVNC_LIBSSL_BUILD_DIR}/libwolfssl.a)
|
||||
set(OPENSSL_INCLUDE_DIR ${AVNC_LIBSSL_SRC_DIR}/wolfssl)
|
||||
|
||||
include_directories(${AVNC_LIBSSL_SRC_DIR})
|
||||
|
||||
# Create an interface library to manage include directories
|
||||
add_library(libssl INTERFACE)
|
||||
target_include_directories(libssl INTERFACE ${AVNC_LIBSSL_SRC_DIR}/wolfssl)
|
||||
|
||||
###############################################################################
|
||||
# LibVNC
|
||||
@@ -78,29 +70,45 @@ avnc_check_submodule(libvncserver)
|
||||
|
||||
set(AVNC_LIBVNC_SRC_DIR ${AVNC_EXTERN_DIR}/libvncserver)
|
||||
set(AVNC_LIBVNC_BUILD_DIR ${CMAKE_BINARY_DIR}/libvncserver)
|
||||
set(WITH_LIBSSH2 OFF CACHE BOOL "Find LibSSH" FORCE)
|
||||
|
||||
add_subdirectory(${AVNC_LIBVNC_SRC_DIR} ${AVNC_LIBVNC_BUILD_DIR}) # (source dir, build dir)
|
||||
|
||||
include_directories(${AVNC_LIBVNC_SRC_DIR}/include ${AVNC_LIBVNC_BUILD_DIR}/include)
|
||||
add_subdirectory(${AVNC_LIBVNC_SRC_DIR} ${AVNC_LIBVNC_BUILD_DIR})
|
||||
|
||||
# Create an interface library to manage include directories
|
||||
add_library(libvnc INTERFACE)
|
||||
target_include_directories(libvnc INTERFACE ${AVNC_LIBVNC_SRC_DIR}/include ${AVNC_LIBVNC_BUILD_DIR}/include)
|
||||
|
||||
###############################################################################
|
||||
# Native VNC
|
||||
#
|
||||
# It contains implementation of JNI native methods, some NDK scaffolding and
|
||||
# some helpers for OpenGL ES rendring. This is the library loaded from Java.
|
||||
# some helpers for OpenGL ES rendering. This is the library loaded from Java.
|
||||
###############################################################################
|
||||
set(AVNC_NATIVE_SOURCE src/main/cpp/native-vnc.cpp)
|
||||
|
||||
add_library(native-vnc SHARED ${AVNC_NATIVE_SOURCE})
|
||||
|
||||
target_link_libraries(native-vnc vncclient)
|
||||
|
||||
# Link libraries
|
||||
target_link_libraries(native-vnc
|
||||
PRIVATE
|
||||
libjpeg
|
||||
libssl
|
||||
libvnc
|
||||
vncclient
|
||||
)
|
||||
|
||||
# Link NDK libraries
|
||||
find_library(LIB_LOG log)
|
||||
target_link_libraries(native-vnc ${LIB_LOG})
|
||||
|
||||
find_library(LIB_GLES GLESv2)
|
||||
target_link_libraries(native-vnc ${LIB_GLES})
|
||||
|
||||
target_link_libraries(native-vnc
|
||||
PRIVATE
|
||||
${LIB_LOG}
|
||||
${LIB_GLES}
|
||||
)
|
||||
|
||||
###############################################################################
|
||||
# Termux X11
|
||||
#
|
||||
###############################################################################
|
||||
set(X11_EXTERN_DIR ${PROJECT_SOURCE_DIR}/src/main/cpp)
|
||||
add_subdirectory(${X11_EXTERN_DIR})
|
||||
Reference in New Issue
Block a user