1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
diff --git a/lib60870-C/CMakeLists.txt b/lib60870-C/CMakeLists.txt
index 1389d2f..c74ee3e 100644
--- a/lib60870-C/CMakeLists.txt
+++ b/lib60870-C/CMakeLists.txt
@@ -1,4 +1,5 @@
cmake_minimum_required(VERSION 3.0)
+include(GNUInstallDirs)
# automagically detect if we should cross-compile
if(DEFINED ENV{TOOLCHAIN})
@@ -35,15 +36,8 @@ option(BUILD_TESTS "Build the tests" ON)
if(BUILD_HAL)
-if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/dependencies/mbedtls-2.28)
-set(WITH_MBEDTLS 1)
-message("mbedtls 2.28 found")
-ELSEIF(EXISTS ${CMAKE_CURRENT_LIST_DIR}/dependencies/mbedtls-3.6)
-set(WITH_MBEDTLS3 1)
-message("mbedtls 3.6 found")
-else()
-message("NOTE: mbedtls 2.28 or 3.6 is required for TLS support!")
-endif(EXISTS ${CMAKE_CURRENT_LIST_DIR}/dependencies/mbedtls-2.28)
+option(WITH_MBEDTLS "Build with Mbed TLS support" OFF)
+option(WITH_MBEDTLS3 "Build with Mbed TLS 3 support" ON)
endif(BUILD_HAL)
@@ -59,11 +53,9 @@ include_directories(
if(WITH_MBEDTLS)
include_directories(
${CMAKE_CURRENT_LIST_DIR}/src/hal/tls/mbedtls
- ${CMAKE_CURRENT_LIST_DIR}/dependencies/mbedtls-2.28/include
+ /usr/include/mbedtls
)
-file(GLOB tls_SRCS ${CMAKE_CURRENT_LIST_DIR}/dependencies/mbedtls-2.28/library/*.c)
-
add_definitions(-DCONFIG_CS104_SUPPORT_TLS=1)
add_definitions(-DMBEDTLS_CONFIG_FILE="mbedtls_config.h")
@@ -72,11 +64,9 @@ endif(WITH_MBEDTLS)
if(WITH_MBEDTLS3)
include_directories(
${CMAKE_CURRENT_LIST_DIR}/src/hal/tls/mbedtls3
- ${CMAKE_CURRENT_LIST_DIR}/dependencies/mbedtls-3.6/include
+ /usr/include/mbedtls
)
-file(GLOB tls_SRCS ${CMAKE_CURRENT_LIST_DIR}/dependencies/mbedtls-3.6/library/*.c)
-
add_definitions(-DCONFIG_CS104_SUPPORT_TLS=1)
add_definitions(-DMBEDTLS_CONFIG_FILE="mbedtls_config.h")
@@ -124,7 +114,7 @@ endif(BUILD_TESTS)
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/src)
-INSTALL(FILES ${API_HEADERS} DESTINATION include/lib60870 COMPONENT Development)
+INSTALL(FILES ${API_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/lib60870" COMPONENT Development)
IF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
INCLUDE(InstallRequiredSystemLibraries)
diff --git a/lib60870-C/src/CMakeLists.txt b/lib60870-C/src/CMakeLists.txt
index 8a6f456..a085762 100644
--- a/lib60870-C/src/CMakeLists.txt
+++ b/lib60870-C/src/CMakeLists.txt
@@ -134,7 +134,8 @@ add_library (lib60870-shared SHARED ${library_SRCS} )
set_target_properties(lib60870-shared PROPERTIES
OUTPUT_NAME lib60870
- SOVERSION "${LIB_VERSION_MAJOR}.${LIB_VERSION_MINOR}.${LIB_VERSION_PATCH}"
+ VERSION "${LIB_VERSION_MAJOR}.${LIB_VERSION_MINOR}.${LIB_VERSION_PATCH}"
+ SOVERSION "${LIB_VERSION_MAJOR}"
WINDOWS_EXPORT_ALL_SYMBOLS true
)
@@ -159,7 +160,7 @@ IF(UNIX)
${CMAKE_CURRENT_LIST_DIR}/lib60870.pc.in
${CMAKE_CURRENT_BINARY_DIR}/lib60870.pc @ONLY
)
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/lib60870.pc" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/pkgconfig")
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/lib60870.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
ENDIF(UNIX)
IF(MINGW)
target_link_libraries(lib60870-shared ws2_32 iphlpapi bcrypt)
@@ -169,9 +170,17 @@ IF(MSVC)
target_link_libraries(lib60870-shared ws2_32 iphlpapi bcrypt)
target_link_libraries(lib60870 ws2_32 iphlpapi bcrypt)
ENDIF(MSVC)
+IF(WITH_MBEDTLS OR WITH_MBEDTLS3)
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(MbedCrypto REQUIRED IMPORTED_TARGET GLOBAL mbedcrypto)
+ pkg_check_modules(MbedX509 REQUIRED IMPORTED_TARGET GLOBAL mbedx509)
+ pkg_check_modules(MbedTLS REQUIRED IMPORTED_TARGET GLOBAL mbedtls)
+ target_link_libraries(lib60870-shared PkgConfig::MbedCrypto PkgConfig::MbedX509 PkgConfig::MbedTLS)
+ target_link_libraries(lib60870 PkgConfig::MbedCrypto PkgConfig::MbedX509 PkgConfig::MbedTLS)
+ENDIF(WITH_MBEDTLS OR WITH_MBEDTLS3)
install (TARGETS lib60870 lib60870-shared
- RUNTIME DESTINATION bin COMPONENT Applications
- ARCHIVE DESTINATION lib COMPONENT Libraries
- LIBRARY DESTINATION lib COMPONENT Libraries
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Applications
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT Libraries
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT Libraries
)
diff --git a/lib60870-C/src/lib60870.pc.in b/lib60870-C/src/lib60870.pc.in
index 1629212..f89903e 100644
--- a/lib60870-C/src/lib60870.pc.in
+++ b/lib60870-C/src/lib60870.pc.in
@@ -1,8 +1,8 @@
prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=@CMAKE_INSTALL_PREFIX@/bin
-libdir=@CMAKE_INSTALL_PREFIX@/lib
-sharedlibdir=@CMAKE_INSTALL_PREFIX@/lib
-includedir=@CMAKE_INSTALL_PREFIX@/include
+exec_prefix=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@
+libdir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@
+sharedlibdir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@
+includedir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@
Name: @PROJECT_NAME@
Description: @CPACK_PACKAGE_DESCRIPTION@
|