76 lines
2.2 KiB
CMake
76 lines
2.2 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(gitplusplus VERSION 0.1.0 LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_AUTOMOC ON)
|
|
|
|
find_package(ECM 5.80 REQUIRED NO_MODULE)
|
|
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
|
|
|
|
# --- Detect Qt6/KF6 or fall back to Qt5/KF5 ---
|
|
find_package(KF6TextEditor QUIET CONFIG)
|
|
if(KF6TextEditor_FOUND)
|
|
set(QT_MAJOR_VERSION 6)
|
|
else()
|
|
set(QT_MAJOR_VERSION 5)
|
|
endif()
|
|
|
|
include(KDEInstallDirs)
|
|
include(KDECMakeSettings)
|
|
include(KDECompilerSettings NO_POLICY_SCOPE)
|
|
|
|
if(QT_MAJOR_VERSION EQUAL 6)
|
|
find_package(Qt6 REQUIRED COMPONENTS Core Widgets)
|
|
find_package(KF6I18n REQUIRED)
|
|
find_package(KF6CoreAddons REQUIRED)
|
|
set(KF_LINK_LIBS
|
|
KF6::TextEditor
|
|
KF6::I18n
|
|
Qt6::Core
|
|
Qt6::Widgets
|
|
)
|
|
set(PLUGIN_INSTALL_NS "kf6/ktexteditor")
|
|
message(STATUS "Building Git++ with KF6/Qt6")
|
|
else()
|
|
find_package(Qt5 REQUIRED COMPONENTS Core Widgets)
|
|
find_package(KF5TextEditor REQUIRED)
|
|
find_package(KF5I18n REQUIRED)
|
|
find_package(KF5CoreAddons REQUIRED)
|
|
set(KF_LINK_LIBS
|
|
KF5::TextEditor
|
|
KF5::I18n
|
|
Qt5::Core
|
|
Qt5::Widgets
|
|
)
|
|
set(PLUGIN_INSTALL_NS "ktexteditor")
|
|
message(STATUS "Building Git++ with KF5/Qt5")
|
|
endif()
|
|
|
|
# --- Find libkateprivate for diff widget support ---
|
|
# The library may only exist as a versioned .so (no dev symlink)
|
|
file(GLOB _KATEPRIVATE_CANDIDATES "/usr/lib64/libkateprivate.so*" "/usr/lib/libkateprivate.so*")
|
|
if(_KATEPRIVATE_CANDIDATES)
|
|
list(GET _KATEPRIVATE_CANDIDATES 0 KATEPRIVATE_LIB)
|
|
message(STATUS "Found libkateprivate: ${KATEPRIVATE_LIB}")
|
|
add_definitions(-DHAVE_KATE_DIFF)
|
|
else()
|
|
set(KATEPRIVATE_LIB "")
|
|
message(STATUS "libkateprivate not found — diff will open as plain text")
|
|
endif()
|
|
|
|
kcoreaddons_add_plugin(gitplusplus
|
|
SOURCES
|
|
gitplusplus.cpp
|
|
gitstatusmodel.cpp
|
|
INSTALL_NAMESPACE "${PLUGIN_INSTALL_NS}"
|
|
)
|
|
|
|
target_link_libraries(gitplusplus ${KF_LINK_LIBS})
|
|
target_include_directories(gitplusplus PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
if(KATEPRIVATE_LIB)
|
|
target_include_directories(gitplusplus PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/kate-compat)
|
|
target_link_libraries(gitplusplus ${KATEPRIVATE_LIB})
|
|
endif()
|