77add_library (usermod_lcd_busINTERFACE )
88
99if (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} /)