diff --git a/.transport.version b/.transport.version index 781dcb0..65087b4 100644 --- a/.transport.version +++ b/.transport.version @@ -1 +1 @@ -1.1.3 +1.1.4 diff --git a/CHANGELOG.md b/CHANGELOG.md index 9956bd9..155f09e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## [0.5.2](https://github.com/rdkcentral/firebolt-cpp-client/compare/v0.5.1...v0.5.2) + +### Changed +- **Breaking**: Removed `FetchContent` from the build system. The Firebolt C++ Transport must now be installed separately (along with other dependencies) before building the project. + ## [0.5.1](https://github.com/rdkcentral/firebolt-cpp-client/compare/v0.5.0...v0.5.1) ### Changed diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a27c9a..ae3416f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,21 +16,12 @@ cmake_minimum_required(VERSION 3.12) -include(FetchContent) - list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") project(FireboltClient) include(version) -if(EXISTS "${CMAKE_SOURCE_DIR}/.transport.version") - file(READ "${CMAKE_SOURCE_DIR}/.transport.version" FIREBOLT_TRANSPORT_VERSION) - string(STRIP ${FIREBOLT_TRANSPORT_VERSION} FIREBOLT_TRANSPORT_VERSION) -else() - message(FATAL_ERROR "Could not determine firebolt-cpp-transport version from .transport.version") -endif() - message(STATUS "Project version: ${PROJECT_VERSION}") option(BUILD_SHARED_LIBS "Build shared libraries" ON) @@ -53,42 +44,15 @@ list(APPEND CMAKE_MODULE_PATH "${SYSROOT_PATH}/usr/lib/cmake" ) -if(NOT TARGET nlohmann_json::nlohmann_json) - find_package(nlohmann_json REQUIRED) -endif() - -if(NOT TARGET websocketpp::websocketpp) - find_package(websocketpp REQUIRED) -endif() +find_package(nlohmann_json CONFIG REQUIRED) -find_package(FireboltTransport CONFIG QUIET) +file(READ "${CMAKE_CURRENT_SOURCE_DIR}/.transport.version" FIREBOLT_TRANSPORT_VERSION_RAW) +string(STRIP "${FIREBOLT_TRANSPORT_VERSION_RAW}" FIREBOLT_TRANSPORT_VERSION) +string(REGEX REPLACE "^v?([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\1" FIREBOLT_TRANSPORT_MAJOR_VERSION "${FIREBOLT_TRANSPORT_VERSION}") -if(FireboltTransport_FOUND) - check_version_compatibility(FireboltTransport_VERSION_OK "${FireboltTransport_VERSION}" "${FIREBOLT_TRANSPORT_VERSION}") -else() - set(FireboltTransport_VERSION_OK FALSE) -endif() +find_package(FireboltTransport ${FIREBOLT_TRANSPORT_MAJOR_VERSION} CONFIG REQUIRED) -if(FireboltTransport_VERSION_OK) - message(STATUS "Installed FireboltTransport, ${FireboltTransport_VERSION}, matches expected version: ${FIREBOLT_TRANSPORT_VERSION}") -else() - message(STATUS "FireboltTransport version mismatch or not found, expected '${FIREBOLT_TRANSPORT_VERSION}' but found '${FireboltTransport_VERSION}'") - if (BUILD_WITH_INSTALLED_TRANSPORT AND FireboltTransport_FOUND) - message(WARNING "Using installed FireboltTransport version '${FireboltTransport_VERSION}' even though it does not match expected version '${FIREBOLT_TRANSPORT_VERSION}'") - else() - message(STATUS "Will try to fetch it.") - FetchContent_Declare( - FireboltTransport - URL "https://github.com/rdkcentral/firebolt-cpp-transport/releases/download/v${FIREBOLT_TRANSPORT_VERSION}/firebolt-cpp-transport-${FIREBOLT_TRANSPORT_VERSION}.tar.gz" - URL_HASH "SHA256=0a0c9394395a514d3ba6931a6c656886523c6b3f038b0cb991c27c837f0e506e" - DOWNLOAD_EXTRACT_TIMESTAMP true - ) - set(ENABLE_TESTS_ORIG ${ENABLE_TESTS}) - set(ENABLE_TESTS OFF) - FetchContent_MakeAvailable(FireboltTransport) - set(ENABLE_TESTS ${ENABLE_TESTS_ORIG}) - endif() -endif() +message(STATUS "Transport: installed version: ${FireboltTransport_VERSION}, expected: ${FIREBOLT_TRANSPORT_VERSION}") add_compile_options(-Wall -Wextra -Wpedantic) diff --git a/cmake/version.cmake b/cmake/version.cmake index 9899529..73644a7 100644 --- a/cmake/version.cmake +++ b/cmake/version.cmake @@ -46,36 +46,3 @@ set(VERSION ${PROJECT_VERSION}) string(REGEX REPLACE "^v?([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\1" PROJECT_VERSION_MAJOR "${VERSION}") string(REGEX REPLACE "^v?([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\2" PROJECT_VERSION_MINOR "${VERSION}") string(REGEX REPLACE "^v?([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\3" PROJECT_VERSION_PATCH "${VERSION}") - -function(check_version_compatibility result_var found_version required_version) - set(FOUND_VERSION_SUFFIX "") - set(FOUND_VERSION_SUFFIX_NO "") - string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(-(.*))?" "\\1" FOUND_VERSION_MAJOR "${found_version}") - if (found_version MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)-([^.]*)(\\.(.*))?") - set(FOUND_VERSION_SUFFIX "${CMAKE_MATCH_4}") - set(FOUND_VERSION_SUFFIX_NO "${CMAKE_MATCH_6}") - endif() - - set(REQUIRED_VERSION_SUFFIX "") - set(REQUIRED_VERSION_SUFFIX_NO "") - string(REGEX REPLACE "^([0-9]+)(\\.([0-9]+)(\\.([0-9]+))?)?(-(.*))?" "\\1" REQUIRED_VERSION_MAJOR "${required_version}") - if (required_version MATCHES "^([0-9]+)(\\.[0-9]+(\\.[0-9]+)?)?-([^.]*)(\\.([0-9]+))?") - set(REQUIRED_VERSION_SUFFIX "${CMAKE_MATCH_4}") - set(REQUIRED_VERSION_SUFFIX_NO "${CMAKE_MATCH_6}") - endif() - - set(IS_OK FALSE) - if (NOT FOUND_VERSION_MAJOR EQUAL REQUIRED_VERSION_MAJOR) - set(IS_OK FALSE) - elseif(found_version VERSION_LESS required_version) - set(IS_OK FALSE) - elseif(REQUIRED_VERSION_SUFFIX STREQUAL "" AND FOUND_VERSION_SUFFIX STREQUAL "") - set(IS_OK TRUE) - elseif(FOUND_VERSION_SUFFIX STREQUAL REQUIRED_VERSION_SUFFIX) - if(REQUIRED_VERSION_SUFFIX_NO STREQUAL "" OR FOUND_VERSION_SUFFIX_NO GREATER_EQUAL REQUIRED_VERSION_SUFFIX_NO) - set(IS_OK TRUE) - endif() - endif() - - set(${result_var} ${IS_OK} PARENT_SCOPE) -endfunction()