123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- # wolfSSL Espressif Example Project CMakeLists.txt
- # v1.0
- #
- # The following lines of boilerplate have to be in your project's
- # CMakeLists in this exact order for cmake to work correctly
- message(STATUS "Begin project ${CMAKE_PROJECT_NAME}")
- cmake_minimum_required(VERSION 3.16)
- # The wolfSSL CMake file should be able to find the source code.
- # Otherwise, assign an environment variable or set it here:
- #
- # set(WOLFSSL_ROOT "~/workspace/wolfssl-other-source")
- #
- # Optional WOLFSSL_CMAKE_SYSTEM_NAME detection to find
- # USE_MY_PRIVATE_CONFIG path for my_private_config.h
- #
- # Expected path varies:
- #
- # WSL: /mnt/c/workspace
- # Linux: ~/workspace
- # Windows: C:\workspace
- #
- if(WIN32)
- # Windows-specific configuration here
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_CMAKE_SYSTEM_NAME_WINDOWS")
- message("Detected Windows")
- endif()
- if(CMAKE_HOST_UNIX)
- message("Detected UNIX")
- endif()
- if(APPLE)
- message("Detected APPLE")
- endif()
- if(CMAKE_HOST_UNIX AND (NOT APPLE) AND EXISTS "/proc/sys/fs/binfmt_misc/WSLInterop")
- # Windows-specific configuration here
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_CMAKE_SYSTEM_NAME_WSL")
- message("Detected WSL")
- endif()
- if(CMAKE_HOST_UNIX AND (NOT APPLE) AND (NOT WIN32))
- # Windows-specific configuration here
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_CMAKE_SYSTEM_NAME_LINUX")
- message("Detected Linux")
- endif()
- if(APPLE)
- # Windows-specific configuration here
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_CMAKE_SYSTEM_NAME_APPLE")
- message("Detected Apple")
- endif()
- # End optional WOLFSSL_CMAKE_SYSTEM_NAME
- # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
- # set (PROTOCOL_EXAMPLES_DIR $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
- string(REPLACE "\\" "/" PROTOCOL_EXAMPLES_DIR "$ENV{IDF_PATH}/examples/common_components/protocol_examples_common")
- if (EXISTS "${PROTOCOL_EXAMPLES_DIR}")
- message("Found PROTOCOL_EXAMPLES_DIR=${PROTOCOL_EXAMPLES_DIR}")
- set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DFOUND_PROTOCOL_EXAMPLES_DIR")
- else()
- message("NOT FOUND: PROTOCOL_EXAMPLES_DIR=${PROTOCOL_EXAMPLES_DIR}")
- endif()
- # Check that there are not conflicting wolfSSL components
- # The ESP Registry Component will be in ./managed_components/wolfssl__wolfssl
- # The local component wolfSSL directory will be in ./components/wolfssl
- if( EXISTS "${CMAKE_HOME_DIRECTORY}/managed_components/wolfssl__wolfssl" AND EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl" )
- # These exclude statements don't seem to be honored by the $ENV{IDF_PATH}/tools/cmake/project.cmake'
- # add_subdirectory("${CMAKE_HOME_DIRECTORY}/managed_components/wolfssl__wolfssl" EXCLUDE_FROM_ALL)
- # add_subdirectory("${CMAKE_HOME_DIRECTORY}/managed_components/wolfssl__wolfssl/include" EXCLUDE_FROM_ALL)
- # So we'll error out and let the user decide how to proceed:
- message(WARNING "\nFound wolfSSL components in\n"
- "./managed_components/wolfssl__wolfssl\n"
- "and\n"
- "./components/wolfssl\n"
- "in project directory: \n"
- "${CMAKE_HOME_DIRECTORY}")
- message(FATAL_ERROR "\nPlease use either the ESP Registry Managed Component or the wolfSSL component directory but not both.\n"
- "If removing the ./managed_components/wolfssl__wolfssl directory, remember to also remove "
- "or rename the idf_component.yml file typically found in ./main/")
- else()
- message(STATUS "No conflicting wolfSSL components found.")
- endif()
- message(STATUS "begin include")
- if(0)
- # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
- set (PROTOCOL_EXAMPLES_DIR $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
- if (EXISTS "${PROTOCOL_EXAMPLES_DIR}")
- message("Found PROTOCOL_EXAMPLES_DIR=${PROTOCOL_EXAMPLES_DIR}")
- set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DFOUND_PROTOCOL_EXAMPLES_DIR")
- else()
- message("NOT FOUND: PROTOCOL_EXAMPLES_DIR=${PROTOCOL_EXAMPLES_DIR}")
- endif()
- endif()
- include($ENV{IDF_PATH}/tools/cmake/project.cmake)
- message(STATUS "end include")
- project(wolfssl_client)
- message(STATUS "end project")
|