Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit141a1e6

Browse files
committed
working on the vnc driver
1 parentf88ec5d commit141a1e6

File tree

3 files changed

+1247
-6
lines changed

3 files changed

+1247
-6
lines changed

‎ext_mod/lcd_bus/micropython.cmake‎

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,29 @@
77
add_library(usermod_lcd_busINTERFACE)
88

99
if(ESP_PLATFORM)
10+
11+
get_filename_component(BINDING_DIR${CMAKE_CURRENT_LIST_DIR}/../..ABSOLUTE)
12+
set(LIBVNC_DIR${BINDING_DIR}/lib/libvncserver
13+
set(LIBVNCSERVER_DIR${LIBVNC_DIR}/src/libvncserver)
14+
15+
set(LIBVNCCOMMON_DIR${LIBVNC_DIR}/src/common)
16+
17+
include(CheckFunctionExists)
18+
include(CheckSymbolExists)
19+
include(CheckIncludeFile)
20+
include(CheckTypeSize)
21+
include(TestBigEndian)
22+
include(CheckCSourceCompiles)
23+
include(CheckCSourceRuns)
24+
include(GNUInstallDirs)
25+
1026
set(LCD_INCLUDES
1127
${CMAKE_CURRENT_LIST_DIR}
1228
${CMAKE_CURRENT_LIST_DIR}/esp32_include
29+
${LIBVNC_DIR}/include
30+
${CMAKE_CURRENT_BINARY_DIR}/include
31+
${LIBVNCSERVER_DIR}
32+
${LIBVNCCOMMON_DIR}
1333
)
1434

1535
set(LCD_SOURCES
@@ -19,12 +39,96 @@ if(ESP_PLATFORM)
1939
${CMAKE_CURRENT_LIST_DIR}/esp32_src/spi_bus.c
2040
${CMAKE_CURRENT_LIST_DIR}/esp32_src/i80_bus.c
2141
${CMAKE_CURRENT_LIST_DIR}/esp32_src/rgb_bus.c
42+
${LIBVNCSERVER_DIR}/main.c
43+
${LIBVNCSERVER_DIR}/rfbserver.c
44+
${LIBVNCSERVER_DIR}/rfbregion.c
45+
${LIBVNCSERVER_DIR}/auth.c
46+
${LIBVNCSERVER_DIR}/sockets.c
47+
${LIBVNCSERVER_DIR}/stats.c
48+
${LIBVNCSERVER_DIR}/corre.c
49+
${LIBVNCSERVER_DIR}/hextile.c
50+
${LIBVNCSERVER_DIR}/rre.c
51+
${LIBVNCSERVER_DIR}/translate.c
52+
${LIBVNCSERVER_DIR}/cutpaste.c
53+
${LIBVNCSERVER_DIR}/httpd.c
54+
${LIBVNCSERVER_DIR}/cursor.c
55+
${LIBVNCSERVER_DIR}/font.c
56+
${LIBVNCSERVER_DIR}/draw.c
57+
${LIBVNCSERVER_DIR}/selbox.c
58+
${LIBVNCCOMMON_DIR}/vncauth.c
59+
${LIBVNCCOMMON_DIR}/sockets.c
60+
${LIBVNCSERVER_DIR}/cargs.c
61+
${LIBVNCSERVER_DIR}/ultra.c
62+
${LIBVNCSERVER_DIR}/scale.c
2263
)
2364

65+
check_include_file("dirent.h" LIBVNCSERVER_HAVE_DIRENT_H)
66+
check_include_file("endian.h" LIBVNCSERVER_HAVE_ENDIAN_H)
67+
check_include_file("fcntl.h" LIBVNCSERVER_HAVE_FCNTL_H)
68+
check_include_file("netinet/in.h" LIBVNCSERVER_HAVE_NETINET_IN_H)
69+
check_include_file("sys/endian.h" LIBVNCSERVER_HAVE_SYS_ENDIAN_H)
70+
check_include_file("sys/socket.h" LIBVNCSERVER_HAVE_SYS_SOCKET_H)
71+
check_include_file("sys/stat.h" LIBVNCSERVER_HAVE_SYS_STAT_H)
72+
check_include_file("sys/time.h" LIBVNCSERVER_HAVE_SYS_TIME_H)
73+
check_include_file("sys/types.h" LIBVNCSERVER_HAVE_SYS_TYPES_H)
74+
check_include_file("sys/wait.h" LIBVNCSERVER_HAVE_SYS_WAIT_H)
75+
check_include_file("unistd.h" LIBVNCSERVER_HAVE_UNISTD_H)
76+
check_include_file("sys/resource.h" LIBVNCSERVER_HAVE_SYS_RESOURCE_H)
77+
78+
check_include_file("vfork.h" LIBVNCSERVER_HAVE_VFORK_H)
79+
check_include_file("ws2tcpip.h" LIBVNCSERVER_HAVE_WS2TCPIP_H)
80+
check_include_file("arpa/inet.h" HAVE_ARPA_INET_H)
81+
check_include_file("stdint.h" HAVE_STDINT_H)
82+
check_include_file("stddef.h" HAVE_STDDEF_H)
83+
check_include_file("sys/types.h" HAVE_SYS_TYPES_H)
84+
85+
check_function_exists(gettimeofday LIBVNCSERVER_HAVE_GETTIMEOFDAY)
86+
check_function_exists(vfork LIBVNCSERVER_HAVE_VFORK)
87+
check_function_exists(vprintf LIBVNCSERVER_HAVE_VPRINTF)
88+
check_function_exists(mmap LIBVNCSERVER_HAVE_MMAP)
89+
check_function_exists(fork LIBVNCSERVER_HAVE_FORK)
90+
check_function_exists(ftime LIBVNCSERVER_HAVE_FTIME)
91+
check_function_exists(gethostbyname LIBVNCSERVER_HAVE_GETHOSTBYNAME)
92+
check_function_exists(gethostname LIBVNCSERVER_HAVE_GETHOSTNAME)
93+
check_function_exists(inet_ntoa LIBVNCSERVER_HAVE_INET_NTOA)
94+
check_function_exists(memmove LIBVNCSERVER_HAVE_MEMMOVE)
95+
check_function_exists(memset LIBVNCSERVER_HAVE_MEMSET)
96+
check_function_exists(mkfifo LIBVNCSERVER_HAVE_MKFIFO)
97+
check_function_exists(select LIBVNCSERVER_HAVE_SELECT)
98+
check_function_exists(socket LIBVNCSERVER_HAVE_SOCKET)
99+
check_function_exists(strchr LIBVNCSERVER_HAVE_STRCHR)
100+
check_function_exists(strcspn LIBVNCSERVER_HAVE_STRCSPN)
101+
check_function_exists(strdup LIBVNCSERVER_HAVE_STRDUP)
102+
check_function_exists(strerror LIBVNCSERVER_HAVE_STRERROR)
103+
check_function_exists(strstr LIBVNCSERVER_HAVE_STRSTR)
104+
105+
check_type_size(pid_t LIBVNCSERVER_PID_T)
106+
check_type_size(size_t LIBVNCSERVER_SIZE_T)
107+
check_type_size(socklen_t LIBVNCSERVER_SOCKLEN_T)
108+
check_type_size(in_addr_t LIBVNCSERVER_IN_ADDR_T)
109+
110+
check_symbol_exists(htobe64"endian.h" LIBVNCSERVER_HAVE_HTOBE64)
111+
check_symbol_exists(htobe64"sys/endian.h" LIBVNCSERVER_HAVE_HTOBE64)
112+
check_symbol_exists(OSSwapHostToBigInt64"libkern/OSByteOrder.h" LIBVNCSERVER_HAVE_OSSWAPHOSTTOBIGINT64)
113+
114+
if(HAVE_ARPA_INET_H)
115+
# in_addr_t
116+
list(APPEND CMAKE_EXTRA_INCLUDE_FILES"arpa/inet.h")
117+
endif(HAVE_ARPA_INET_H)
118+
119+
set(LIBVNCSERVER_NEED_INADDR_T 1)
120+
121+
TEST_BIG_ENDIAN(LIBVNCSERVER_WORDS_BIGENDIAN)
122+
123+
configure_file(${LIBVNC_DIR}/include/rfb/rfbconfig.h.cmakein${CMAKE_CURRENT_BINARY_DIR}/include/rfb/rfbconfig.h)
124+
24125
# gets esp_lcd include paths
25126
idf_component_get_property(ESP_LCD_INCLUDES esp_lcd INCLUDE_DIRS)
26127
idf_component_get_property(ESP_LCD_DIR esp_lcd COMPONENT_DIR)
27128

129+
set(LIBVNCSERVER_HAVE_LIBPTHREAD 1)
130+
set(LIBVNCSERVER_ALLOW24BPP 1)
131+
28132
# sets the include paths into INCLUDES variable
29133
if(ESP_LCD_INCLUDES)
30134
list(TRANSFORM ESP_LCD_INCLUDES PREPEND${ESP_LCD_DIR}/)

‎ext_mod/lcd_bus/vnc/vnc.cmake‎

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
2+
3+
4+
cmake_minimum_required(VERSION 3.4)
5+
6+
set(PROJECT_LANGUAGES C)
7+
8+
if(DEFINED CMAKE_CXX_COMPILER)
9+
set(CMAKE_CXX_STANDARD 17)
10+
list(APPEND PROJECT_LANGUAGES CXX)
11+
endif(DEFINED CMAKE_CXX_COMPILER)
12+
13+
14+
15+
16+
17+
project(LibVNCServerVERSION 0.9.15 LANGUAGES${PROJECT_LANGUAGES})
18+
19+
20+
enable_testing()
21+
22+
set(PACKAGE_NAME"LibVNCServer")
23+
set(FULL_PACKAGE_NAME"LibVNCServer")
24+
set(VERSION_SO"1")
25+
set(PROJECT_BUGREPORT_PATH"https://github.com/LibVNC/libvncserver/issues")
26+
27+
set(CMAKE_MODULE_PATH${CMAKE_MODULE_PATH}"${LIBVNC_DIR}/cmake/Modules/")
28+
set(CMAKE_EXPORT_COMPILE_COMMANDSON)
29+
30+
31+
option(LIBVNCSERVER_INSTALL"Generate installation target"OFF)
32+
option(BUILD_SHARED_LIBS"Build shared libraries"OFF)
33+
option(WITH_ZLIB"Search for the zlib compression library to support additional encodings"OFF)
34+
option(WITH_LZO"Search for the LZO compression library to omit internal miniLZO implementation"OFF)
35+
option(WITH_JPEG"Search for the libjpeg compression library to support additional encodings"OFF)
36+
option(WITH_PNG"Search for the PNG compression library to support additional encodings"OFF)
37+
option(WITH_SDL"Search for the Simple Direct Media Layer library to build an example SDL vnc client"OFF)
38+
option(WITH_GTK"Search for the GTK library to build an example GTK vnc client"OFF)
39+
option(WITH_LIBSSHTUNNEL"Search for libsshtunnel to build an example ssh-tunneled client"OFF)
40+
option(WITH_THREADS"Search for a threading library to build with multithreading support"OFF)
41+
option(PREFER_WIN32THREADS"When searching for a threading library, prefer win32 threads if they are found"OFF)
42+
option(WITH_GNUTLS"Search for the GnuTLS secure communications library to support TLS"OFF)
43+
option(WITH_OPENSSL"Search for the OpenSSL cryptography library to support TLS and use as crypto backend"OFF)
44+
option(WITH_SYSTEMD"Search for libsystemd to build with systemd socket activation support"OFF)
45+
option(WITH_GCRYPT"Search for Libgcrypt to use as crypto backend"OFF)
46+
option(WITH_FFMPEG"Search for FFMPEG to build an example VNC to MPEG encoder"OFF)
47+
option(WITH_TIGHTVNC_FILETRANSFER"Enable filetransfer if there is pthreads support"OFF)
48+
option(WITH_24BPP"Allow 24 bpp"OFF)
49+
option(WITH_IPv6"Enable IPv6 Support"OFF)
50+
option(WITH_WEBSOCKETS"Build with websockets support"OFF)
51+
option(WITH_SASL"Build with SASL support"OFF)
52+
option(WITH_XCB"Build with XCB support"OFF)
53+
option(WITH_EXAMPLES"Build examples"OFF)
54+
option(WITH_TESTS"Build tests"OFF)
55+
option(WITH_QT"Build the Qt client example"OFF)
56+
57+
58+
# headers needed for check_type_size()
59+
60+
61+
# error out if required headers not found
62+
if(NOT HAVE_STDINT_H)
63+
message(FATAL_ERROR"Could NOT find required header stdint.h")
64+
endif()
65+
66+
67+
list(APPEND CMAKE_EXTRA_INCLUDE_FILES"sys/socket.h")
68+
69+
70+
71+
72+
73+
# TODO:
74+
# LIBVNCSERVER_ENOENT_WORKAROUND
75+
# inline
76+
77+
78+
set(LIBVNCSERVER_SOURCES
79+
80+
)
81+
82+
83+
84+
add_library(vncserver${LIBVNCSERVER_SOURCES})
85+
86+
target_link_libraries(vncserver
87+
${ADDITIONAL_LIBS}
88+
)
89+
90+
SET_TARGET_PROPERTIES(vncserver
91+
PROPERTIESSOVERSION"${VERSION_SO}"VERSION"${LibVNCServer_VERSION}" C_STANDARD 90
92+
93+
94+
95+
#
96+
# this gets the libraries needed by TARGET in "-libx -liby ..." form
97+
#
98+
function(get_link_libraries OUTTARGET)
99+
set(RESULT"")
100+
get_target_property(LIBRARIES${TARGET} INTERFACE_LINK_LIBRARIES)
101+
foreach(LIB${LIBRARIES})
102+
if("${LIB}"MATCHES".*NOTFOUND.*")
103+
continue()
104+
endif()
105+
string(REGEX REPLACE"^.*/lib""" LIB${LIB})# remove leading path and "lib" name prefix
106+
string(REGEX REPLACE"-l""" LIB${LIB})# remove leading -l
107+
string(REGEX REPLACE"\\.so$""" LIB${LIB})# remove trailing .so
108+
list(APPEND RESULT"-l${LIB}")
109+
endforeach()
110+
list(REMOVE_DUPLICATES RESULT)
111+
string(CONCAT RESULT${RESULT})# back to string
112+
if(RESULT)
113+
string(REPLACE"-l"" -l" RESULT${RESULT})# re-add separators
114+
endif(RESULT)
115+
set(${OUT}${RESULT} PARENT_SCOPE)
116+
endfunction()
117+
118+
119+
get_link_libraries(PRIVATE_LIBS vncserver)
120+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/libvncserver/libvncserver.pc.cmakein${CMAKE_CURRENT_BINARY_DIR}/libvncserver.pc @ONLY)
121+
122+
target_sources(
123+
124+
125+
126+

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp