summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPProvost <[email protected]>2020-05-11 16:02:39 -0600
committerPProvost <[email protected]>2020-05-11 16:02:39 -0600
commitda3eea79d5da9573c3c9395828da47c272ab0974 (patch)
treeb1c1b2e6e4d39f3584843c31891922f3e865c386
parentccb347c4cc20a5dbfd51acdd384b9f5cd6c427bd (diff)
Added option NXD_ENABLE_FILE_SERVERS
-rwxr-xr-xCMakeLists.txt12
-rw-r--r--protocol_handlers/CMakeLists.txt32
2 files changed, 32 insertions, 12 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f96c1527..3f3c2209 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,6 +6,8 @@ project(netxduo
LANGUAGES C ASM
)
+option(NXD_ENABLE_FILE_SERVERS "Includes a dependency on FileX to support 'server' protocol handlers" ON)
+
if(NOT DEFINED THREADX_ARCH)
message(FATAL_ERROR "Error: THREADX_ARCH not defined")
endif()
@@ -18,10 +20,12 @@ add_library(${PROJECT_NAME})
add_library("azrtos::${PROJECT_NAME}" ALIAS ${PROJECT_NAME})
# Define any required dependencies between this library and others
-target_link_libraries(${PROJECT_NAME} PUBLIC
- "azrtos::threadx"
- "azrtos::filex"
-)
+target_link_libraries(${PROJECT_NAME} PUBLIC "azrtos::threadx")
+
+if(NXD_ENABLE_FILE_SERVERS)
+ message(STATUS "NXD_ENABLE_FILE_SERVERS - defined")
+ target_link_libraries(${PROJECT_NAME} PUBLIC "azrtos::filex")
+endif()
# A place for generated/copied include files (no need to change)
set(CUSTOM_INC_DIR ${CMAKE_CURRENT_BINARY_DIR}/custom_inc)
diff --git a/protocol_handlers/CMakeLists.txt b/protocol_handlers/CMakeLists.txt
index a45a543f..4d6d75cf 100644
--- a/protocol_handlers/CMakeLists.txt
+++ b/protocol_handlers/CMakeLists.txt
@@ -1,17 +1,19 @@
# Each protocol handler is listed below. If you want
# to disable some / all of these, comment out the block(s) in question
-target_sources(${PROJECT_NAME} PRIVATE
+set(SOURCES
+ # {{BEGIN_TARGET_SOURCES}}
${CMAKE_CURRENT_LIST_DIR}/auto_ip/nx_auto_ip.c
- ${CMAKE_CURRENT_LIST_DIR}/dhcp/nxd_dhcp_client.c
- ${CMAKE_CURRENT_LIST_DIR}/dhcp/nxd_dhcp_server.c
+ # ${CMAKE_CURRENT_LIST_DIR}/BSD/nxd_bsd.c
${CMAKE_CURRENT_LIST_DIR}/dhcp/nxd_dhcpv6_client.c
${CMAKE_CURRENT_LIST_DIR}/dhcp/nxd_dhcpv6_server.c
+ ${CMAKE_CURRENT_LIST_DIR}/dhcp/nxd_dhcp_client.c
+ ${CMAKE_CURRENT_LIST_DIR}/dhcp/nxd_dhcp_server.c
${CMAKE_CURRENT_LIST_DIR}/dns/nxd_dns.c
${CMAKE_CURRENT_LIST_DIR}/ftp/nxd_ftp_client.c
- # ${CMAKE_CURRENT_LIST_DIR}/ftp/nxd_ftp_server.c
+ ${CMAKE_CURRENT_LIST_DIR}/ftp/nxd_ftp_server.c
${CMAKE_CURRENT_LIST_DIR}/http/nxd_http_client.c
- # ${CMAKE_CURRENT_LIST_DIR}/http/nxd_http_server.c
+ ${CMAKE_CURRENT_LIST_DIR}/http/nxd_http_server.c
${CMAKE_CURRENT_LIST_DIR}/mdns/nxd_mdns.c
${CMAKE_CURRENT_LIST_DIR}/mqtt/nxd_mqtt_client.c
${CMAKE_CURRENT_LIST_DIR}/nat/nx_nat.c
@@ -27,14 +29,29 @@ target_sources(${PROJECT_NAME} PRIVATE
${CMAKE_CURRENT_LIST_DIR}/telnet/nxd_telnet_client.c
${CMAKE_CURRENT_LIST_DIR}/telnet/nxd_telnet_server.c
${CMAKE_CURRENT_LIST_DIR}/tftp/nxd_tftp_client.c
- # ${CMAKE_CURRENT_LIST_DIR}/tftp/nxd_tftp_server.c
+ ${CMAKE_CURRENT_LIST_DIR}/tftp/nxd_tftp_server.c
${CMAKE_CURRENT_LIST_DIR}/web/nx_tcpserver.c
${CMAKE_CURRENT_LIST_DIR}/web/nx_web_http_client.c
- # ${CMAKE_CURRENT_LIST_DIR}/web/nx_web_http_server.c
+ ${CMAKE_CURRENT_LIST_DIR}/web/nx_web_http_server.c
+ # {{END_TARGET_SOURCES}}
)
+# Remove the file server files if the user doesn't want them
+if(NOT NXD_ENABLE_FILE_SERVERS)
+ message(STATUS "*** Not using filex ***")
+ list(REMOVE_ITEM SOURCES
+ "${CMAKE_CURRENT_LIST_DIR}/web/nx_web_http_server.c"
+ "${CMAKE_CURRENT_LIST_DIR}/http/nxd_http_server.c"
+ "${CMAKE_CURRENT_LIST_DIR}/ftp/nxd_ftp_server.c"
+ "${CMAKE_CURRENT_LIST_DIR}/tftp/nxd_tftp_server.c"
+ )
+endif()
+
+target_sources(${PROJECT_NAME} PRIVATE ${SOURCES})
+
target_include_directories(${PROJECT_NAME} PUBLIC
${CMAKE_CURRENT_LIST_DIR}/auto_ip
+ ${CMAKE_CURRENT_LIST_DIR}/BSD
${CMAKE_CURRENT_LIST_DIR}/dhcp
${CMAKE_CURRENT_LIST_DIR}/dns
${CMAKE_CURRENT_LIST_DIR}/ftp
@@ -52,4 +69,3 @@ target_include_directories(${PROJECT_NAME} PUBLIC
${CMAKE_CURRENT_LIST_DIR}/tftp
${CMAKE_CURRENT_LIST_DIR}/web
)
-