Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial wolfSSH Espressif Component Publish #599

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be "wolfSSH 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are these in the wolfSSH project?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There might be value in having a consistent .gitignore across repos? I found myself copying and pasting various exclusions.

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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is wolfSSH not wolfMQTT.

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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The following items are pathed from root, not local to the git repo, why are they here? Git shouldn't see these.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm pretty sure "root" (leading /) with respect to a GitHub repo directory, means "root of repo", not root of file system, no?

# 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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's 2023.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And this is the commercial licensing header. Everything in wolfSSH must be GPLv3.

#
# 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
Loading