Add fetchcontent
This commit is contained in:
@ -57,6 +57,11 @@ option(TESSESFRAMEWORK_ENABLE_STATIC "Enable Tesses Framework Static Libraries"
|
|||||||
option(TESSESFRAMEWORK_ENABLE_SHARED "Enable Tesses Framework Shared Libraries" ON)
|
option(TESSESFRAMEWORK_ENABLE_SHARED "Enable Tesses Framework Shared Libraries" ON)
|
||||||
option(TESSESFRAMEWORK_ENABLE_SETDATE "Enable setting date to file" ON)
|
option(TESSESFRAMEWORK_ENABLE_SETDATE "Enable setting date to file" ON)
|
||||||
option(TESSESFRAMEWORK_LOGTOFILE "TessesFramework Log to file" OFF)
|
option(TESSESFRAMEWORK_LOGTOFILE "TessesFramework Log to file" OFF)
|
||||||
|
option(TESSESFRAMEWORK_FETCHCONTENT "TessesFramework fetchcontent" ON)
|
||||||
|
if(TESSESFRAMEWORK_FETCHCONTENT)
|
||||||
|
|
||||||
|
include(FetchContent)
|
||||||
|
endif()
|
||||||
|
|
||||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include)
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||||
|
|
||||||
@ -67,13 +72,27 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/include/TessesFramework/CertificateChain.
|
|||||||
#target_compile_definitions(TessesFramework PUBLIC TESSESFRAMEWORK_EMBED_CERT_BUNDLE)
|
#target_compile_definitions(TessesFramework PUBLIC TESSESFRAMEWORK_EMBED_CERT_BUNDLE)
|
||||||
bin2h(SOURCE_FILE ${TESSESFRAMEWORK_CERT_BUNDLE_FILE} HEADER_FILE ${CMAKE_CURRENT_BINARY_DIR}/include/TessesFramework/CertificateChain.h VARIABLE_NAME CertificateChain APPEND NULL_TERMINATE)
|
bin2h(SOURCE_FILE ${TESSESFRAMEWORK_CERT_BUNDLE_FILE} HEADER_FILE ${CMAKE_CURRENT_BINARY_DIR}/include/TessesFramework/CertificateChain.h VARIABLE_NAME CertificateChain APPEND NULL_TERMINATE)
|
||||||
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/include/TessesFramework/CertificateChain.h "\n")
|
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/include/TessesFramework/CertificateChain.h "\n")
|
||||||
#else()
|
else()
|
||||||
#target_compile_definitions(TessesFramework PUBLIC TESSESFRAMEWORK_CERT_BUNDLE_FILE=${TESSESFRAMEWORK_CERT_BUNDLE_FILE})
|
target_compile_definitions(TessesFramework PUBLIC TESSESFRAMEWORK_CERT_BUNDLE_FILE=${TESSESFRAMEWORK_CERT_BUNDLE_FILE})
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
|
||||||
|
if(TESSESFRAMEWORK_FETCHCONTENT)
|
||||||
|
|
||||||
|
FetchContent_Declare(
|
||||||
|
mbedtls
|
||||||
|
GIT_REPOSITORY https://github.com/Mbed-TLS/mbedtls.git
|
||||||
|
)
|
||||||
|
set(MBEDTLS_FATAL_WARNINGS OFF)
|
||||||
|
set(ENABLE_TESTING OFF)
|
||||||
|
set(ENABLE_PROGRAMS OFF)
|
||||||
|
set(USE_SHARED_MBEDTLS_LIBRARY ON)
|
||||||
|
FetchContent_MakeAvailable(mbedtls)
|
||||||
|
else()
|
||||||
set(MBEDTLS_DIR "" CACHE PATH "Mbed tls directory")
|
set(MBEDTLS_DIR "" CACHE PATH "Mbed tls directory")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
endif()
|
||||||
function(TESSESFRAMEWORK_LINKDEPS TessesFramework_TARGET)
|
function(TESSESFRAMEWORK_LINKDEPS TessesFramework_TARGET)
|
||||||
target_include_directories(${TessesFramework_TARGET}
|
target_include_directories(${TessesFramework_TARGET}
|
||||||
PUBLIC
|
PUBLIC
|
||||||
@ -104,6 +123,7 @@ target_compile_definitions(${TessesFramework_TARGET} PUBLIC TESSESFRAMEWORK_EMBE
|
|||||||
else()
|
else()
|
||||||
target_compile_definitions(TessesFramework PUBLIC TESSESFRAMEWORK_CERT_BUNDLE_FILE=${TESSESFRAMEWORK_CERT_BUNDLE_FILE})
|
target_compile_definitions(TessesFramework PUBLIC TESSESFRAMEWORK_CERT_BUNDLE_FILE=${TESSESFRAMEWORK_CERT_BUNDLE_FILE})
|
||||||
endif()
|
endif()
|
||||||
|
if(NOT TESSESFRAMEWORK_FETCHCONTENT)
|
||||||
if(MBEDTLS_DIR STREQUAL "")
|
if(MBEDTLS_DIR STREQUAL "")
|
||||||
else()
|
else()
|
||||||
target_include_directories(${TessesFramework_TARGET} PUBLIC ${MBEDTLS_DIR}/include)
|
target_include_directories(${TessesFramework_TARGET} PUBLIC ${MBEDTLS_DIR}/include)
|
||||||
@ -111,6 +131,7 @@ target_link_directories(${TessesFramework_TARGET} PUBLIC ${MBEDTLS_DIR}/lib)
|
|||||||
endif()
|
endif()
|
||||||
target_link_libraries(${TessesFramework_TARGET} PUBLIC mbedtls mbedx509 mbedcrypto)
|
target_link_libraries(${TessesFramework_TARGET} PUBLIC mbedtls mbedx509 mbedcrypto)
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
if("${CMAKE_SYSTEM_NAME}" STREQUAL "NintendoWii" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "NintendoGameCube")
|
if("${CMAKE_SYSTEM_NAME}" STREQUAL "NintendoWii" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "NintendoGameCube")
|
||||||
target_link_libraries(${TessesFramework_TARGET} PUBLIC fat)
|
target_link_libraries(${TessesFramework_TARGET} PUBLIC fat)
|
||||||
@ -145,6 +166,10 @@ if(TESSESFRAMEWORK_ENABLE_STATIC)
|
|||||||
|
|
||||||
add_library(tessesframework STATIC ${TESSESFRAMEWORK_SOURCE})
|
add_library(tessesframework STATIC ${TESSESFRAMEWORK_SOURCE})
|
||||||
TESSESFRAMEWORK_LINKDEPS(tessesframework)
|
TESSESFRAMEWORK_LINKDEPS(tessesframework)
|
||||||
|
if(TESSESFRAMEWORK_FETCHCONTENT AND TESSESFRAMEWORK_ENABLE_MBED)
|
||||||
|
target_link_libraries(tessesframework PUBLIC mbedtls_static)
|
||||||
|
list(APPEND TessesFrameworkLibs mbedtls_static)
|
||||||
|
endif()
|
||||||
list(APPEND TessesFrameworkLibs tessesframework)
|
list(APPEND TessesFrameworkLibs tessesframework)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -153,6 +178,10 @@ if(TESSESFRAMEWORK_ENABLE_SHARED)
|
|||||||
|
|
||||||
add_library(tessesframework_shared SHARED ${TESSESFRAMEWORK_SOURCE})
|
add_library(tessesframework_shared SHARED ${TESSESFRAMEWORK_SOURCE})
|
||||||
TESSESFRAMEWORK_LINKDEPS(tessesframework_shared)
|
TESSESFRAMEWORK_LINKDEPS(tessesframework_shared)
|
||||||
|
if(TESSESFRAMEWORK_FETCHCONTENT AND TESSESFRAMEWORK_ENABLE_MBED)
|
||||||
|
target_link_libraries(tessesframework_shared PUBLIC mbedtls)
|
||||||
|
list(APPEND TessesFrameworkLibs mbedtls)
|
||||||
|
endif()
|
||||||
list(APPEND TessesFrameworkLibs tessesframework_shared)
|
list(APPEND TessesFrameworkLibs tessesframework_shared)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user