123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- # wolfSSL Espressif Example Project/main CMakeLists.txt
- # v1.0
- #
- # wolfssl server test
- #
- message("Begin wolfSSL main CMakeLists.txt")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_USER_SETTINGS")
- 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()
- set (git_cmd "git")
- if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
- #
- # wolfSSL found in both ESP-IDF and local project - needs to be resolved by user
- #
- message(STATUS "")
- message(STATUS "WARNING: Found components/wolfssl in both local project and IDF_PATH")
- message(STATUS "")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_MULTI_INSTALL_WARNING")
- endif()
- ## register_component()
- idf_component_register(SRCS main.c
- wifi_connect.c
- time_helper.c
- server-tls.c
- INCLUDE_DIRS "."
- "./include")
- #
- #
- # LIBWOLFSSL_SAVE_INFO(VAR_OUPUT THIS_VAR VAR_RESULT)
- #
- # Save the THIS_VAR as a string in a macro called VAR_OUPUT
- #
- # VAR_OUPUT: the name of the macro to define
- # THIS_VAR: the OUTPUT_VARIABLE result from a execute_process()
- # VAR_RESULT: the RESULT_VARIABLE from a execute_process(); "0" if successful.
- #
- function ( LIBWOLFSSL_SAVE_INFO VAR_OUPUT THIS_VAR VAR_RESULT )
- # is the RESULT_VARIABLE output value 0? If so, IS_VALID_VALUE is true.
- string(COMPARE EQUAL "${VAR_RESULT}" "0" IS_VALID_VALUE)
- # if we had a successful operation, save the THIS_VAR in VAR_OUPUT
- if(${IS_VALID_VALUE})
- # strip newline chars in THIS_VAR parameter and save in VAR_VALUE
- string(REPLACE "\n" "" VAR_VALUE ${THIS_VAR})
- # we'll could percolate the value to the parent for possible later use
- # set(${VAR_OUPUT} ${VAR_VALUE} PARENT_SCOPE)
- # but we're only using it here in this function
- set(${VAR_OUPUT} ${VAR_VALUE})
- # we'll print what we found to the console
- message(STATUS "Found ${VAR_OUPUT}=${VAR_VALUE}")
- # the interesting part is defining the VAR_OUPUT name a value to use in the app
- add_definitions(-D${VAR_OUPUT}=\"${VAR_VALUE}\")
- else()
- # if we get here, check the execute_process command and parameters.
- message(STATUS "LIBWOLFSSL_SAVE_INFO encountered a non-zero VAR_RESULT.")
- message(STATUS "Setting ${VAR_OUPUT} to \"Unknown\"")
- set(${VAR_OUPUT} "Unknown")
- endif()
- endfunction() # LIBWOLFSSL_SAVE_INFO
- # Save some project-specific details. Repo may be different than component, or may not even be a repo at all:
- if(NOT CMAKE_BUILD_EARLY_EXPANSION)
- # WOLFSSL_EXAMPLE_VERSION_GIT_HASH
- execute_process(COMMAND ${git_cmd} "rev-parse" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
- LIBWOLFSSL_SAVE_INFO(WOLFSSL_EXAMPLE_VERSION_GIT_HASH "${TMP_OUT}" "${TMP_RES}")
- # WOLFSSL_EXAMPLE_VERSION_GIT_SHORT_HASH
- execute_process(COMMAND ${git_cmd} "rev-parse" "--short" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
- LIBWOLFSSL_SAVE_INFO(WOLFSSL_EXAMPLE_VERSION_GIT_SHORT_HASH "${TMP_OUT}" "${TMP_RES}")
- # WOLFSSL_EXAMPLE_VERSION_GIT_HASH_DATE
- execute_process(COMMAND ${git_cmd} "show" "--no-patch" "--no-notes" "--pretty=\'\%cd\'" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES )
- LIBWOLFSSL_SAVE_INFO(WOLFSSL_EXAMPLE_VERSION_GIT_HASH_DATE "${TMP_OUT}" "${TMP_RES}")
- endif()
- message(STATUS "")
- message("End wolfSSL main CMakeLists.txt")
|