12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- # wolfSSL Espressif Example Project CMakeLists.txt
- # v1.3
- #
- # The following lines of boilerplate have to be in your project's
- # CMakeLists in this exact order for cmake to work correctly
- cmake_minimum_required(VERSION 3.16)
- # Optional no watchdog typically used for test & benchmark
- add_compile_options(-DWOLFSSL_ESP_NO_WATCHDOG=1)
- # 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
- # 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()
- # Ensure the this wolfSSL component directory is included
- set(WOLFSSL_PATH "${CMAKE_HOME_DIRECTORY}/components/wolfssl")
- list(APPEND EXTRA_COMPONENT_DIRS ${WOLFSSL_PATH})
- # Not only is a project-level "set(COMPONENTS" not needed here, this will cause
- # an unintuitive error about Unknown CMake command "esptool_py_flash_project_args".
- include($ENV{IDF_PATH}/tools/cmake/project.cmake)
- project(wolfssl_template)
|