1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-05-13 04:44:09 +00:00

Fix building of the ION GNSS Metadata Standard with CMake 4.0

This commit is contained in:
Carles Fernandez 2025-04-14 11:17:06 +02:00
parent 2e1f24ee7c
commit fa491bbf33
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
2 changed files with 29 additions and 0 deletions

View File

@ -3350,11 +3350,27 @@ endif()
if(ENABLE_ION)
include(FetchContent)
set(CMAKE_POLICY_DEFAULT_CMP0063 NEW)
# Fix for CMake 4.0
set(ION_METADATA_PATCH_COMMAND "")
if(NOT CMAKE_VERSION VERSION_LESS 4.0)
find_program(Patch_EXECUTABLE NAME patch PATHS ENV PATH)
if(NOT Patch_EXECUTABLE)
message(FATAL_ERROR "The patch command is not found. It is required to build the ION GNSS-SDR Metadata Standard. Please check your OS documentation and install the patch command.")
endif()
set(ION_METADATA_PATCH_COMMAND
${Patch_EXECUTABLE} -p0 -i ${GNSSSDR_SOURCE_DIR}/tests/data/ion_gnss_standard_cmake.patch
)
endif()
# Patch only once
if(EXISTS ${GNSSSDR_BINARY_DIR}/thirdparty/gnss-metadata-standard/CMakeLists.txt)
set(ION_METADATA_PATCH_COMMAND "")
endif()
FetchContent_Declare(
gnss_metadata_standard
GIT_REPOSITORY https://github.com/IonMetadataWorkingGroup/GNSS-Metadata-Standard
GIT_TAG 220d116e10db5e403e21b77a1fa25aa35feda198
SOURCE_DIR ${GNSSSDR_BINARY_DIR}/thirdparty/gnss-metadata-standard
PATCH_COMMAND ${ION_METADATA_PATCH_COMMAND}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${GNSSSDR_BINARY_DIR}/gnss-metadata-standard
BINARY_DIR ${GNSSSDR_BINARY_DIR}/gnss-metadata-standard
)

View File

@ -0,0 +1,13 @@
SPDX-License-Identifier: GPL-3.0-or-later
SPDX-FileCopyrightText: 2025 Carles Fernandez-Prades <carles.fernandez@cttc.es>
--- CMakeLists.txt 2025-04-14 09:40:38.000000000 +0100
+++ CMakeLists.txt 2025-04-14 09:56:49.000000000 +0100
@@ -29,7 +29,7 @@
message(WARNING "In-tree build is bad practice. Try 'cd build && cmake ../' ")
endif(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 2.8.12...3.5)
project(GNSS_METADATA_STANDARD CXX C)
file(RELATIVE_PATH RELATIVE_CMAKE_CALL ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})