CMake: provide calamares::kpmcore only when kpmcore was found

This works around older CMakes that refuse to set arbitrary
properties on a target. Instead, use calamares::kpmcore
as the specific indicator that kpmcore was found.

Breaks build of libcalamares, since that needs **something**
regardless of whether KPMcore was found.
This commit is contained in:
Adriaan de Groot 2022-07-23 23:45:14 +02:00
parent 0688c7f4e7
commit 8a43ed99ed

View File

@ -34,16 +34,18 @@ if(NOT TARGET calapmcore)
target_include_directories(calapmcore INTERFACE ${KPMCORE_INCLUDE_DIR})
# If there were KPMcore API variations, figure them out here
# target_compile_definitions(calapmcore INTERFACE WITH_KPMcore)
set_target_properties(calapmcore PROPERTIES KPMcore_FOUND TRUE)
else()
target_compile_definitions(calapmcore INTERFACE WITHOUT_KPMcore)
set_target_properties(calapmcore PROPERTIES KPMcore_FOUND FALSE)
endif()
# Flag that this library has KPMcore support. A variable
# set here has the wrong scope. ENV{} would be visible
# everywhere but seems the wrong thing to do. Setting
# properties on calapmcore requires a newer CMake than
# Debian 11 has, so runs into support issues.
add_library(calamares::kpmcore ALIAS calapmcore)
else()
get_target_property(KPMcore_FOUND calapmcore KPMcore_FOUND)
if(KPMcore_FOUND)
target_compile_definitions(calapmcore INTERFACE WITHOUT_KPMcore)
endif()
else()
if(TARGET calamares::kpmcore)
message(STATUS "KPMcore has already been found")
set(KPMcore_FOUND TRUE)
else()