Skip to content

Commit

Permalink
Initial wolfSSH Espressif Component Publish
Browse files Browse the repository at this point in the history
  • Loading branch information
gojimmypi committed Oct 6, 2023
1 parent 7d81671 commit 2681ea1
Show file tree
Hide file tree
Showing 18 changed files with 3,333 additions and 3 deletions.
114 changes: 111 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,21 @@ libtool
libtool.m4
*.log
*.gz
*.zip
*.bak
*.dummy
*.xcworkspace
Makefile
Makefile.in
*.deps
.dirstamp
*.libs
stamp-h*
src/stamp-h1
build-aux/
wolfmqtt-config
build-test/
build/
wolfssh-config
aminclude.am

Expand All @@ -48,19 +56,34 @@ tags
diff
.vimrc

# examples
# wolfSSL examples
examples/client/client
examples/echoserver/echoserver
examples/server/server
examples/portfwd/portfwd
examples/sftpclient/wolfsftp
examples/scpclient/wolfscp

# applications
# wolfSSH applications
apps/wolfssh/wolfssh
apps/wolfsshd/wolfsshd
apps/wolfsshd/test/test_configuration

# wolfMQTT examples
examples/aws/awsiot
examples/azure/azureiothub
examples/firmware/fwclient
examples/firmware/fwpush
examples/mqttclient/mqttclient
examples/mqttsimple/mqttsimple
examples/nbclient/nbclient
examples/sn-client/sn-client
examples/sn-client/sn-client_qos-1
examples/sn-client/sn-multithread
examples/multithread/multithread
examples/wiot/wiot


# test output
tests/*.test
*.trs
Expand All @@ -71,6 +94,18 @@ client.plist
# misc
.DS_Store

# Visual Studio Code Workspace Files
*.vscode
*.userprefs
*.exe
*.dll
.vs
Backup
UpgradeLog.htm
*.aps
*.VC.db
*.filters

# VS debris
*.sdf
*.v11.suo
Expand All @@ -84,7 +119,80 @@ Release
DLL Debug
DLL Release

# Eclipse
*.trs
firmware.bin
wolfmqtt/options.h
IDE/ARDUINO/wolfMQTT
IDE/Microchip-Harmony/wolfmqtt_client/firmware/mqtt_client.X/dist/default/
build/

# eclipse
.cproject
.project
.settings


# auto-created CMake backups
**/CMakeLists.txt.old

# VisualGDB
**/.visualgdb
**/*.vgdbproj.*.user


# Espressif sdk config default should be saved in sdkconfig.defaults
# we won't track the actual working sdkconfig files
/IDE/Espressif/**/out/
/ide/Espressif/**/sdkconfig

# Espressif managed components to exclude:
/ide/Espressif/**/managed_components/**

# Espressif managed component lock files to exclude.
# "In general, it's ok to have it under version control, however, it ties
# the solution to the exact version of ESP-IDF and will be ignored if an
# example is built against another IDF version or for a different target.
# So it's better to git ignore it for the examples."
/ide/Espressif/**/dependencies.lock

# exclude any local oqs components
/ide/Espressif/ESP-IDF/examples/**/components/oqs

/ide/Espressif/**/sdkconfig.old

# ESP Registry Files

# Temporary wolfssl component install directories that are copied locally at install time
/ide/Espressif/wolfssl
/ide/Espressif/component-manager/wolfssl
/ide/Espressif/component-manager/wolfcrypt
/ide/Espressif/component-manager/src
/ide/Espressif/component-manager/dist

# Exclude most of the example files that are copied at install time
# from https://github.com/wolfSSL/wolfssl/tree/master/ide/Espressif/ESP-IDF/examples
/ide/Espressif/component-manager/examples/**/CMakeLists.txt
/ide/Espressif/component-manager/examples/**/partitions_singleapp_large.csv
/ide/Espressif/component-manager/examples/**/sdkconfig.defaults
/ide/Espressif/component-manager/examples/**/main/CMakeLists.txt
/ide/Espressif/component-manager/examples/**/main/*.c
/ide/Espressif/component-manager/examples/**/main/*.h
/ide/Espressif/component-manager/examples/**/main/include/*.h
/ide/Espressif/component-manager/examples/**/main/component.mk
/ide/Espressif/component-manager/examples/**/VisualGDB/*.sln
/ide/Espressif/component-manager/examples/**/VisualGDB/*.vgdbproj

# The only ESP Registry Files specific to this location
/ide/Espressif/ESP-IDF/examples/wolfssl_test/**/components/cryptoauthlib

# Never include the build failure semaphore file
/ide/build_failed.txt
/ide/Espressif/ESP-IDF/component-manager/dist.bak
/ide/Espressif/ESP-IDF/component-manager/src
/ide/Espressif/ESP-IDF/component-manager/wolfcrypt
/ide/Espressif/ESP-IDF/component-manager/wolfssl
/ide/Espressif/ESP-IDF/component-manager/dist

/ide/Espressif/component-manager/wolfssh
/ide/Espressif/component-manager/examples/**/*
/ide/Espressif/ESP-IDF/examples
111 changes: 111 additions & 0 deletions ide/Espressif/ESP-IDF/component-manager/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
#
# Copyright (C) 2006-2022 wolfSSL Inc. All rights reserved.
#
# This file is part of wolfSSH.
#
# Contact [email protected] with any questions or comments.
#
# https://www.wolfssl.com
#/

#
# This is the CMakeLists.txt for the Espressif ESP-IDF wolfSSH component
#
cmake_minimum_required(VERSION 3.5)

if( "$ENV{IDF_COMPONENT_REGISTRY_URL}" STREQUAL "https://components-staging.espressif.com" )
message(STATUS "Using Staging Component Test for wolfSSL: mywolfssl")
set(WOLFSSL_COMPONENT_NAME "mywolfssl")
else()
set(WOLFSSL_COMPONENT_NAME "wolfssl")
endif()

# These flags apply only to compiling this component independently.
# be sure to include this like in the root CMakeFiles.txt
# for proper application-wide use of WOLFSSL_USER_SETTINGS:
#
# add_compile_definitions("WOLFSSL_USER_SETTINGS")
# add_compile_definitions("WOLFSSH_USER_SETTINGS")
#
# if using ESP-IDF prior to 4.4, see:
# https://github.com/wolfSSL/wolfssl/issues/5727
if (CONFIG_DEBUG_WOLFSSH)
message(STATUS "Config DEBUG_WOLFSSH is enabled for components/wolfssh")
endif()

if (WOLFSSL_USER_SETTINGS)
message(STATUS "Component wolfssh: Found predefined WOLFSSL_USER_SETTINGS")
else()
# wolfSSL settings should have occurred in project makefiles
#message(WARNING "Component wolfssh: Setting WOLFSSL_USER_SETTINGS \
#(should have been a project-wide setting)")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_USER_SETTINGS")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWOLFSSL_USER_SETTINGS")
endif()

if (WOLFSSH_USER_SETTINGS)
message(STATUS "Component wolfssh: Found predefined WOLFSSH_USER_SETTINGS")
else()
# wolfSSL settings should have occurred in project makefiles. See
message(WARNING "Component wolfssh: Setting WOLFSSH_USER_SETTINGS
(should have been a project-wide setting)")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSH_USER_SETTINGS")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWOLFSSH_USER_SETTINGS")
endif()


message(STATUS "wolfssh CMAKE_C_FLAGS = ${CMAKE_C_FLAGS}")

set(CMAKE_CURRENT_SOURCE_DIR ".")
set(WOLFSSL_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
set(INCLUDE_PATH ${WOLFSSL_ROOT})

set(COMPONENT_SRCDIRS
"./src/"
)


set(COMPONENT_REQUIRES lwip "${WOLFSSL_COMPONENT_NAME}")

set(COMPONENT_ADD_INCLUDEDIRS
"."
)


# list(REMOVE_ITEM ASM_FILES ".*\\.(asm|S)")

message(STATUS "WOLFSSL_ROOT = ${WOLFSSL_ROOT}")
message(STATUS "ASM_FILES = ${ASM_FILES}")


#TODO remove:
#idf_component_register(
#SRC_DIRS "${COMPONENT_SRCDIRS}"
#INCLUDE_DIRS "${COMPONENT_ADD_INCLUDEDIRS}"
#REQUIRES "${COMPONENT_REQUIRES}"
#EXCLUDE_SRCS "${COMPONENT_SRCEXCLUDE}"
## SRCS wolfssl/wolfcrypt/test/test.c
#)
if(CMAKE_BUILD_EARLY_EXPANSION)
message(STATUS "wolfssl component CMAKE_BUILD_EARLY_EXPANSION:")
idf_component_register(
REQUIRES "${COMPONENT_REQUIRES}"
)
else()
idf_component_register(
SRC_DIRS "${COMPONENT_SRCDIRS}"
INCLUDE_DIRS "${COMPONENT_ADD_INCLUDEDIRS}"
REQUIRES "${COMPONENT_REQUIRES}"
EXCLUDE_SRCS "${COMPONENT_SRCEXCLUDE}"
PRIV_REQUIRES "${WOLFSSL_COMPONENT_NAME}" # this will typically only be needed for wolfSSL benchmark
)
endif()

# check to see if there's both a local copy and EDP-IDF copy of the wolfssh components
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssh/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssh/" )
message(STATUS "")
message(WARNING "WARNING: Found components/wolfssh in both local project and IDF_PATH")
message(STATUS "")
endif()
# end multiple component check

Loading

0 comments on commit 2681ea1

Please sign in to comment.