diff --git a/CMakeLists.txt b/CMakeLists.txt index e73665794..08f63eea7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -101,7 +101,7 @@ if("${CMAKE_C_COMPILER_ID}" MATCHES "Clang") endif() # Enable Static analysis on GCC13.2.0+ -if("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "13.2.0") +if("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" AND NOT "13.2.0" VERSION_GREATER CMAKE_C_COMPILER_VERSION) message(STATUS "Using GCC Static analysis") add_definitions(-fanalyzer) endif() diff --git a/cmake/Modules/FindLibRTLSDR.cmake b/cmake/Modules/FindLibRTLSDR.cmake index 1a6e571fc..3e1eb486a 100644 --- a/cmake/Modules/FindLibRTLSDR.cmake +++ b/cmake/Modules/FindLibRTLSDR.cmake @@ -29,7 +29,9 @@ set(LibRTLSDR_VERSION ${PC_LibRTLSDR_VERSION}) include(FindPackageHandleStandardArgs) # handle the QUIETLY and REQUIRED arguments and set LibRTLSDR_FOUND to TRUE # if all listed variables are TRUE +# Note that `FOUND_VAR LibRTLSDR_FOUND` is needed for cmake 3.2 and older. find_package_handle_standard_args(LibRTLSDR + FOUND_VAR LibRTLSDR_FOUND REQUIRED_VARS LibRTLSDR_LIBRARY LibRTLSDR_INCLUDE_DIR VERSION_VAR LibRTLSDR_VERSION) diff --git a/cmake/Modules/FindLibUSB.cmake b/cmake/Modules/FindLibUSB.cmake index e423527fb..862b9bafd 100644 --- a/cmake/Modules/FindLibUSB.cmake +++ b/cmake/Modules/FindLibUSB.cmake @@ -44,7 +44,9 @@ set(LibUSB_VERSION ${PC_LibUSB_VERSION}) include(FindPackageHandleStandardArgs) # handle the QUIETLY and REQUIRED arguments and set LibUSB_FOUND to TRUE # if all listed variables are TRUE +# Note that `FOUND_VAR LibRTLSDR_FOUND` is needed for cmake 3.2 and older. find_package_handle_standard_args(LibUSB + FOUND_VAR LibUSB_FOUND REQUIRED_VARS LibUSB_LIBRARY LibUSB_INCLUDE_DIR VERSION_VAR LibUSB_VERSION) diff --git a/cmake/Modules/GetGitRevisionDescription.cmake b/cmake/Modules/GetGitRevisionDescription.cmake index b8d0a0d9c..d941e3eb8 100644 --- a/cmake/Modules/GetGitRevisionDescription.cmake +++ b/cmake/Modules/GetGitRevisionDescription.cmake @@ -111,7 +111,7 @@ function(git_describe _var) if(NOT GIT_FOUND AND CMAKE_HOST_WIN32) # fallback to VS bundled Git find_program(GIT_EXECUTABLE NAMES git PATH_SUFFIXES Git/cmd Git/bin) - find_package_handle_standard_args(Git REQUIRED_VARS GIT_EXECUTABLE) + find_package_handle_standard_args(Git FOUND_VAR GIT_FOUND REQUIRED_VARS GIT_EXECUTABLE) endif() if(NOT GIT_FOUND) set(${_var} "GIT-NOTFOUND" PARENT_SCOPE) @@ -156,7 +156,7 @@ function(git_timestamp _var) if(NOT GIT_FOUND AND CMAKE_HOST_WIN32) # fallback to VS bundled Git find_program(GIT_EXECUTABLE NAMES git PATH_SUFFIXES Git/cmd Git/bin) - find_package_handle_standard_args(Git REQUIRED_VARS GIT_EXECUTABLE) + find_package_handle_standard_args(Git FOUND_VAR GIT_FOUND REQUIRED_VARS GIT_EXECUTABLE) endif() if(NOT GIT_FOUND) return() diff --git a/docs/BUILDING.md b/docs/BUILDING.md index 91ed527f4..ac7950b46 100644 --- a/docs/BUILDING.md +++ b/docs/BUILDING.md @@ -94,6 +94,14 @@ E.g. use: cmake -DENABLE_SOAPYSDR=ON .. +::: tip +If you use CMake older than 3.13 (check `cmake --version`), you need to build using e.g. `mkdir build ; cd build ; cmake .. && cmake --build .` +::: + +::: tip +In CMake 3.6 or older the OpenSSL search seems broken, you need to use `cmake -DENABLE_OPENSSL=NO ..` +::: + ::: warning If you experience trouble with SoapySDR when compiling or running: you likely mixed version 0.7 and version 0.8 headers and libs. Purge all SoapySDR packages and source installation from /usr/local.