Replace manual include dir handling with interface target

We use kdeconnect-version.h in several places and therefore it needs to be in the include path. We currently do this by setting target_include_path in a few places. Replace this with an interface library that we can link against that sets up the correct include path. IMO it is cleaner this way.
This commit is contained in:
Nicolas Fella 2020-07-30 10:53:44 +02:00
parent e2e303d7cc
commit 79164ca8ba
8 changed files with 11 additions and 13 deletions

View file

@ -34,6 +34,10 @@ ecm_setup_version(1.4.0
VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/kdeconnect-version.h
)
# Make the version header available by linking against kdeconnectversion
add_library(kdeconnectversion INTERFACE)
target_include_directories(kdeconnectversion INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
if (SAILFISHOS)
set(KF5_REQUIRED_COMPONENTS I18n CoreAddons Config)
set(KF5_OPTIONAL_COMPONENTS)

View file

@ -3,11 +3,10 @@ add_definitions(-DTRANSLATION_DOMAIN=\"kdeconnect-cli\")
add_executable(kdeconnect-cli kdeconnect-cli.cpp)
ecm_mark_nongui_executable(kdeconnect-cli)
target_include_directories(kdeconnect-cli PUBLIC ${CMAKE_BINARY_DIR})
target_link_libraries(kdeconnect-cli
kdeconnectinterfaces
kdeconnectcore
kdeconnectversion
KF5::CoreAddons
KF5::I18n
)

View file

@ -52,7 +52,7 @@ set(kdeconnectcore_SRCS
add_library(kdeconnectcore ${kdeconnectcore_SRCS})
target_include_directories(kdeconnectcore PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${PROJECT_SOURCE_DIR})
target_include_directories(kdeconnectcore PUBLIC ${PROJECT_SOURCE_DIR})
target_link_libraries(kdeconnectcore
PUBLIC

View file

@ -8,8 +8,7 @@ ecm_qt_declare_logging_category(
EXPORT kdeconnect-kde DESCRIPTION "kdeconnect (daemon)")
add_executable(kdeconnectd kdeconnectd.cpp ${debug_file_SRCS})
target_include_directories(kdeconnectd PUBLIC ${CMAKE_BINARY_DIR})
target_link_libraries(kdeconnectd kdeconnectcore KF5::KIOWidgets KF5::DBusAddons KF5::Notifications KF5::I18n Qt5::Widgets)
target_link_libraries(kdeconnectd kdeconnectcore kdeconnectversion KF5::KIOWidgets KF5::DBusAddons KF5::Notifications KF5::I18n Qt5::Widgets)
ecm_mark_nongui_executable(kdeconnectd)

View file

@ -19,8 +19,7 @@ else ()
endif()
add_executable(kdeconnect-indicator ${indicator_SRCS})
target_include_directories(kdeconnect-indicator PUBLIC ${CMAKE_BINARY_DIR})
target_link_libraries(kdeconnect-indicator Qt5::Widgets KF5::CoreAddons KF5::I18n KF5::Notifications KF5::DBusAddons KF5::KCMUtils kdeconnectinterfaces kdeconnectcore)
target_link_libraries(kdeconnect-indicator Qt5::Widgets KF5::CoreAddons KF5::I18n KF5::Notifications KF5::DBusAddons KF5::KCMUtils kdeconnectinterfaces kdeconnectcore kdeconnectversion)
if (WIN32)
add_compile_definitions(QSYSTRAY)
endif()

View file

@ -17,7 +17,6 @@ set_target_properties(kdeconnectpluginkcm PROPERTIES
SOVERSION ${KDECONNECT_VERSION_MAJOR}
)
target_include_directories(kdeconnectpluginkcm PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
generate_export_header(kdeconnectpluginkcm EXPORT_FILE_NAME kdeconnectpluginkcm_export.h BASE_NAME kdeconnectpluginkcm)
# Remove NAMELINK_SKIP if/when headers are being installed and the library becomes public.

View file

@ -24,7 +24,7 @@ add_library(kdeconnectsmshelper STATIC
${smshelper_debug_file_SRCS}
)
target_include_directories(kdeconnectsmshelper PUBLIC ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
target_include_directories(kdeconnectsmshelper PUBLIC ${CMAKE_SOURCE_DIR})
target_link_libraries(kdeconnectsmshelper
PUBLIC
@ -43,11 +43,10 @@ add_executable(kdeconnect-sms
resources.qrc
${sms_debug_files_SRCS})
target_include_directories(kdeconnect-sms PUBLIC ${CMAKE_BINARY_DIR})
target_link_libraries(kdeconnect-sms
kdeconnectsmshelper
kdeconnectinterfaces
kdeconnectversion
Qt5::Quick
Qt5::Widgets
KF5::CoreAddons

View file

@ -2,11 +2,10 @@ ki18n_wrap_ui(telhandler_SRCS dialog.ui)
add_executable(kdeconnect-handler kdeconnect-handler.cpp ${telhandler_SRCS})
target_include_directories(kdeconnect-handler PUBLIC ${CMAKE_BINARY_DIR})
target_link_libraries(kdeconnect-handler
kdeconnectinterfaces
kdeconnectcore
kdeconnectversion
Qt5::Widgets
KF5::CoreAddons
KF5::I18n