fix mbedtls and make it staticly linked to shared object when fetchcontent is enabled
This commit is contained in:
@@ -1,27 +1,40 @@
|
||||
if(TESSESFRAMEWORK_ENABLE_MBED)
|
||||
if(TESSESFRAMEWORK_FETCHCONTENT)
|
||||
set(MBEDTLS_FATAL_WARNINGS OFF CACHE INTERNAL "For TessesFramework" FORCE)
|
||||
set(ENABLE_TESTING OFF CACHE INTERNAL "For TessesFramework" FORCE)
|
||||
set(ENABLE_PROGRAMS OFF CACHE INTERNAL "For TessesFramework" FORCE)
|
||||
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build static libraries" FORCE)
|
||||
|
||||
if(NOT TESSESFRAMEWORK_STATIC)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON CACHE BOOL "Build with PIC" FORCE)
|
||||
endif()
|
||||
|
||||
FetchContent_Declare(
|
||||
mbedtls
|
||||
URL https://downloads.tesses.net/cache/libraries/source/mbedtls-3.6.4.tar.bz2
|
||||
|
||||
)
|
||||
if(TESSESFRAMEWORK_ENABLE_MBED AND TESSESFRAMEWORK_FETCHCONTENT)
|
||||
set(MBEDTLS_FATAL_WARNINGS OFF CACHE INTERNAL "For TessesFramework" FORCE)
|
||||
set(ENABLE_TESTING OFF CACHE INTERNAL "For TessesFramework" FORCE)
|
||||
set(ENABLE_PROGRAMS OFF CACHE INTERNAL "For TessesFramework" FORCE)
|
||||
if(TESSESFRAMEWORK_STATIC)
|
||||
set(USE_STATIC_MBEDTLS_LIBRARY ON CACHE INTERNAL "For TessesFramework" FORCE)
|
||||
set(USE_SHARED_MBEDTLS_LIBRARY OFF CACHE INTERNAL "For TessesFramework" FORCE)
|
||||
else()
|
||||
set(USE_STATIC_MBEDTLS_LIBRARY OFF CACHE INTERNAL "For TessesFramework" FORCE)
|
||||
set(USE_SHARED_MBEDTLS_LIBRARY ON CACHE INTERNAL "For TessesFramework" FORCE)
|
||||
if(NOT mbedtls_POPULATED)
|
||||
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build static" FORCE)
|
||||
if(NOT TESSESFRAMEWORK_STATIC)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON CACHE BOOL "Build PIC" FORCE)
|
||||
set(CMAKE_SKIP_INSTALL_RULES ON)
|
||||
set(DISABLE_PACKAGE_CONFIG_AND_INSTALL ON CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
|
||||
|
||||
FetchContent_Populate(mbedtls)
|
||||
if(NOT TESSESFRAMEWORK_STATIC)
|
||||
install(CODE "set(CMAKE_INSTALL_LOCAL_ONLY TRUE)" ALL_COMPONENTS)
|
||||
endif()
|
||||
|
||||
add_subdirectory(${mbedtls_SOURCE_DIR} ${mbedtls_BINARY_DIR})
|
||||
|
||||
if(NOT TESSESFRAMEWORK_STATIC)
|
||||
set(CMAKE_SKIP_INSTALL_RULES OFF)
|
||||
endif()
|
||||
endif()
|
||||
FetchContent_MakeAvailable(mbedtls)
|
||||
else()
|
||||
find_package(MbedTLS REQUIRED)
|
||||
endif()
|
||||
endif()
|
||||
@@ -46,7 +46,9 @@ endif()
|
||||
|
||||
if(TESSESFRAMEWORK_FETCHCONTENT)
|
||||
target_link_libraries(tessesframework PRIVATE mbedtls mbedx509 mbedcrypto everest p256m)
|
||||
if(TESSESFRAMEWORK_STATIC)
|
||||
list(APPEND TessesFrameworkLibs mbedtls mbedx509 mbedcrypto everest p256m)
|
||||
endif()
|
||||
else()
|
||||
target_link_libraries(tessesframework PRIVATE mbedtls mbedx509 mbedcrypto)
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ set(PKGCONFIG_LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
|
||||
set(PKGCONFIG_PROJECT_DESCRIPTION "A cross platform wrapper library")
|
||||
set(PKGCONFIG_PROJECT_HOMEPAGE_URL "https://git.tesses.org/tessesframework")
|
||||
|
||||
if(TESSESFRAMEWORK_ENABLE_MBED)
|
||||
if(TESSESFRAMEWORK_ENABLE_MBED AND NOT (TESSESFRAMEWORK_FETCHCONTENT AND NOT TESSESFRAMEWORK_STATIC))
|
||||
set(PKGCONFIG_DEPS "Requires: mbedtls")
|
||||
else()
|
||||
set(PKGCONFIG_DEPS "")
|
||||
|
||||
@@ -7,5 +7,7 @@ Description: @PKGCONFIG_PROJECT_DESCRIPTION@
|
||||
URL: @PKGCONFIG_PROJECT_HOMEPAGE_URL@
|
||||
Version: @PROJECT_VERSION@
|
||||
|
||||
@PKGCONFIG_DEPS@
|
||||
|
||||
Cflags: -I"${includedir}"
|
||||
Libs: -L"${libdir}" -ltessesframework
|
||||
@@ -510,7 +510,7 @@ std::string TF_GetExecutableName() {
|
||||
if (sysctl(mib, 4, path.data(), &len, NULL, 0) < 0) {
|
||||
return "";
|
||||
}
|
||||
|
||||
path.resize(len-1);
|
||||
return path;
|
||||
#elif defined(__NetBSD__)
|
||||
auto path = Filesystem::LocalFS->ReadLink(
|
||||
@@ -523,16 +523,19 @@ std::string TF_GetExecutableName() {
|
||||
return path.ToString();
|
||||
#elif TARGET_OS_MAC && !TARGET_OS_IPHONE
|
||||
std::string path;
|
||||
path.resize(1024);
|
||||
path.resize(1025);
|
||||
uint32_t bufsize = (uint32_t)path.size();
|
||||
if (_NSGetExecutablePath(path.data(), &bufsize) == 0) {
|
||||
path.resize(bufsize);
|
||||
path.resize(bufsize-1);
|
||||
return path;
|
||||
} else {
|
||||
path.resize(bufsize);
|
||||
if (_NSGetExecutablePath(path.data(), &bufsize) == 0)
|
||||
{
|
||||
path.resize(bufsize-1);
|
||||
return path;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
return "";
|
||||
|
||||
Reference in New Issue
Block a user