@@ -11,8 +11,12 @@ if(ESP_PLATFORM)
1111 get_filename_component (BINDING_DIR ${CMAKE_CURRENT_LIST_DIR} /../.. ABSOLUTE )
1212 set (LIBVNC_DIR ${BINDING_DIR} /lib/libvncserver
1313 set (LIBVNCSERVER_DIR ${LIBVNC_DIR} /src/libvncserver)
14-
14+ set (LIBVNCCLIENT_DIR ${LIBVNC_DIR} /src/libvncclient)
1515 set (LIBVNCCOMMON_DIR ${LIBVNC_DIR} /src/common)
16+ set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${LIBVNC_DIR} /cmake/Modules/" )
17+
18+ set (FREERTOS_POSIX_DIR ${BINDING_DIR} /lib/Lab-Project-FreeRTOS-POSIX)
19+ set (LWIP_DIR ${BINDING_DIR} /lib/micropythob/lib/lwip)
1620
1721 include (CheckFunctionExists)
1822 include (CheckSymbolExists)
@@ -26,10 +30,18 @@ if(ESP_PLATFORM)
2630 set (LCD_INCLUDES
2731 ${CMAKE_CURRENT_LIST_DIR}
2832 ${CMAKE_CURRENT_LIST_DIR} /esp32_include
33+ ${CMAKE_CURRENT_LIST_DIR} /rfb_bus
2934 ${LIBVNC_DIR} /include
3035 ${CMAKE_CURRENT_BINARY_DIR} /include
3136 ${LIBVNCSERVER_DIR}
37+ ${LIBVNCCLIENT_DIR}
3238 ${LIBVNCCOMMON_DIR}
39+ ${FREERTOS_POSIX_DIR} /include
40+ ${FREERTOS_POSIX_DIR} /include /FreeRTOS_POSIX
41+ ${FREERTOS_POSIX_DIR} /FreeRTOS-Plus-POSIX/include
42+ ${FREERTOS_POSIX_DIR} /FreeRTOS-Plus-POSIX/include /portable/espressif/esp32_devkitc_esp_wrover_kit
43+ ${LWIP_DIR} /src/include /lwip
44+ ${LWIP_DIR} /src/compat/posix
3345 )
3446
3547 set (LCD_SOURCES
@@ -39,6 +51,10 @@ if(ESP_PLATFORM)
3951 ${CMAKE_CURRENT_LIST_DIR} /esp32_src/spi_bus.c
4052 ${CMAKE_CURRENT_LIST_DIR} /esp32_src/i80_bus.c
4153 ${CMAKE_CURRENT_LIST_DIR} /esp32_src/rgb_bus.c
54+ #
55+ ${CMAKE_CURRENT_LIST_DIR} /rfb_bus/rfb_bus.c
56+ ${CMAKE_CURRENT_LIST_DIR} /rfb_bus/rfb_keysym.c
57+ #
4258 ${LIBVNCSERVER_DIR} /main.c
4359 ${LIBVNCSERVER_DIR} /rfbserver.c
4460 ${LIBVNCSERVER_DIR} /rfbregion.c
@@ -55,33 +71,61 @@ if(ESP_PLATFORM)
5571 ${LIBVNCSERVER_DIR} /font.c
5672 ${LIBVNCSERVER_DIR} /draw.c
5773 ${LIBVNCSERVER_DIR} /selbox.c
58- ${LIBVNCCOMMON_DIR} /vncauth.c
59- ${LIBVNCCOMMON_DIR} /sockets.c
6074 ${LIBVNCSERVER_DIR} /cargs.c
6175 ${LIBVNCSERVER_DIR} /ultra.c
6276 ${LIBVNCSERVER_DIR} /scale.c
77+ #
78+ ${LIBVNCCLIENT_DIR} /cursor.c
79+ ${LIBVNCCLIENT_DIR} /listen.c
80+ ${LIBVNCCLIENT_DIR} /rfbclient.c
81+ ${LIBVNCCLIENT_DIR} /sockets.c
82+ ${LIBVNCCLIENT_DIR} /vncviewer.c
83+ #
84+ ${LIBVNCCOMMON_DIR} /vncauth.c
85+ ${LIBVNCCOMMON_DIR} /sockets.c
86+ ${LIBVNCCOMMON_DIR} /sockets.c
87+ #
88+ ${FREERTOS_POSIX_DIR} /FreeRTOS-Plus-POSIX/source /FreeRTOS_POSIX_clock.c
89+ ${FREERTOS_POSIX_DIR} /FreeRTOS-Plus-POSIX/source /FreeRTOS_POSIX_mqueue.c
90+ ${FREERTOS_POSIX_DIR} /FreeRTOS-Plus-POSIX/source /FreeRTOS_POSIX_pthread.c
91+ ${FREERTOS_POSIX_DIR} /FreeRTOS-Plus-POSIX/source /FreeRTOS_POSIX_pthread_barrier.c
92+ ${FREERTOS_POSIX_DIR} /FreeRTOS-Plus-POSIX/source /FreeRTOS_POSIX_pthread_cond.c
93+ ${FREERTOS_POSIX_DIR} /FreeRTOS-Plus-POSIX/source /FreeRTOS_POSIX_pthread_mutex.c
94+ ${FREERTOS_POSIX_DIR} /FreeRTOS-Plus-POSIX/source /FreeRTOS_POSIX_sched.c
95+ ${FREERTOS_POSIX_DIR} /FreeRTOS-Plus-POSIX/source /FreeRTOS_POSIX_semaphore.c
96+ ${FREERTOS_POSIX_DIR} /FreeRTOS-Plus-POSIX/source /FreeRTOS_POSIX_timer.c
97+ ${FREERTOS_POSIX_DIR} /FreeRTOS-Plus-POSIX/source /FreeRTOS_POSIX_unistd.c
98+ ${FREERTOS_POSIX_DIR} /FreeRTOS-Plus-POSIX/source /FreeRTOS_POSIX_utils.c
6399 )
64100
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)
77101
102+ check_include_file("dirent.h" LIBVNCSERVER_HAVE_DIRENT_H)
103+ check_include_file("endian.h" LIBVNCSERVER_HAVE_ENDIAN_H)
104+ check_include_file("fcntl.h" LIBVNCSERVER_HAVE_FCNTL_H)
105+ check_include_file("netinet/in.h" LIBVNCSERVER_HAVE_NETINET_IN_H)
106+ check_include_file("sys/endian.h" LIBVNCSERVER_HAVE_SYS_ENDIAN_H)
107+ check_include_file("sys/socket.h" LIBVNCSERVER_HAVE_SYS_SOCKET_H)
108+ check_include_file("sys/stat.h" LIBVNCSERVER_HAVE_SYS_STAT_H)
109+ check_include_file("sys/time.h" LIBVNCSERVER_HAVE_SYS_TIME_H)
110+ check_include_file("sys/types.h" LIBVNCSERVER_HAVE_SYS_TYPES_H)
111+ check_include_file("sys/wait.h" LIBVNCSERVER_HAVE_SYS_WAIT_H)
112+ check_include_file("unistd.h" LIBVNCSERVER_HAVE_UNISTD_H)
113+ check_include_file("sys/resource.h" LIBVNCSERVER_HAVE_SYS_RESOURCE_H)
114+
115+
116+ # headers needed for check_type_size()
78117 check_include_file("vfork.h" LIBVNCSERVER_HAVE_VFORK_H)
79118 check_include_file("ws2tcpip.h" LIBVNCSERVER_HAVE_WS2TCPIP_H)
80119 check_include_file("arpa/inet.h" HAVE_ARPA_INET_H)
81120 check_include_file("stdint.h" HAVE_STDINT_H)
82121 check_include_file("stddef.h" HAVE_STDDEF_H)
83122 check_include_file("sys/types.h" HAVE_SYS_TYPES_H)
84123
124+ # error out if required headers not found
125+ if (NOT HAVE_STDINT_H)
126+ message (FATAL_ERROR "Could NOT find required header stdint.h" )
127+ endif ()
128+
85129 check_function_exists(gettimeofday LIBVNCSERVER_HAVE_GETTIMEOFDAY)
86130 check_function_exists(vfork LIBVNCSERVER_HAVE_VFORK)
87131 check_function_exists(vprintf LIBVNCSERVER_HAVE_VPRINTF)
@@ -102,23 +146,29 @@ if(ESP_PLATFORM)
102146 check_function_exists(strerror LIBVNCSERVER_HAVE_STRERROR)
103147 check_function_exists(strstr LIBVNCSERVER_HAVE_STRSTR)
104148
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-
110149 check_symbol_exists(htobe64 "endian.h" LIBVNCSERVER_HAVE_HTOBE64)
111150 check_symbol_exists(htobe64 "sys/endian.h" LIBVNCSERVER_HAVE_HTOBE64)
112151 check_symbol_exists(OSSwapHostToBigInt64 "libkern/OSByteOrder.h" LIBVNCSERVER_HAVE_OSSWAPHOSTTOBIGINT64)
113152
153+ if (LIBVNCSERVER_HAVE_SYS_SOCKET_H)
154+ # socklen_t
155+ list (APPEND CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h" )
156+ endif (LIBVNCSERVER_HAVE_SYS_SOCKET_H)
114157 if (HAVE_ARPA_INET_H)
115158 # in_addr_t
116159 list (APPEND CMAKE_EXTRA_INCLUDE_FILES "arpa/inet.h" )
117160 endif (HAVE_ARPA_INET_H)
118161
119- set (LIBVNCSERVER_NEED_INADDR_T 1)
162+ check_type_size(pid_t LIBVNCSERVER_PID_T)
163+ check_type_size(size_t LIBVNCSERVER_SIZE_T)
164+ check_type_size(socklen_t LIBVNCSERVER_SOCKLEN_T)
165+ check_type_size(in_addr_t LIBVNCSERVER_IN_ADDR_T)
166+
167+ if (NOT HAVE_LIBVNCSERVER_IN_ADDR_T)
168+ set (LIBVNCSERVER_NEED_INADDR_T 1)
169+ endif (NOT HAVE_LIBVNCSERVER_IN_ADDR_T)
120170
121- TEST_BIG_ENDIAN(LIBVNCSERVER_WORDS_BIGENDIAN)
171+ TEST_BIG_ENDIAN(LIBVNCSERVER_WORDS_BIGENDIAN)
122172
123173 configure_file (${LIBVNC_DIR} /include /rfb/rfbconfig.h.cmakein ${CMAKE_CURRENT_BINARY_DIR} /include /rfb/rfbconfig.h)
124174
0 commit comments