# We use an intermediate static library because linking tests directly to an
executable is not
# possible with CMake yet.
add_library(kate-lib STATIC "")
configure_file([Link] config.h)
include(GenerateExportHeader)
generate_export_header(
kate-lib
EXPORT_FILE_NAME katetests_export.h
EXPORT_MACRO_NAME KATE_TESTS_EXPORT
)
target_include_directories(
kate-lib
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/session
${CMAKE_CURRENT_SOURCE_DIR}/qtsingleapplication
${CMAKE_CURRENT_BINARY_DIR} # katetests_export.h + config.h
)
find_package(
KF5 ${KF5_DEP_VERSION}
QUIET
REQUIRED
COMPONENTS
TextEditor
IconThemes
WindowSystem
DBusAddons
Crash
OPTIONAL_COMPONENTS
Activities
)
target_link_libraries(
kate-lib
PUBLIC
KF5::TextEditor
KF5::IconThemes
KF5::WindowSystem
KF5::DBusAddons
KF5::Crash
)
if(KF5Activities_FOUND)
target_link_libraries(kate-lib PUBLIC KF5::Activities)
endif()
ki18n_wrap_ui(UI_SOURCES ui/[Link]
session/[Link])
target_sources(kate-lib PRIVATE ${UI_SOURCES})
target_sources(
kate-lib
PRIVATE
data/[Link]
session/[Link]
session/[Link]
session/[Link]
session/[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
)
# Executable only adds the main definition.
add_executable(kate-bin [Link])
target_link_libraries(kate-bin PRIVATE kate-lib)
# Use a single application on MacOS + Windows instead of dbus.
if(APPLE OR WIN32)
target_compile_definitions(kate-bin PRIVATE USE_QT_SINGLE_APP)
target_sources(
kate-lib
PRIVATE
qtsingleapplication/[Link]
qtsingleapplication/[Link]
qtsingleapplication/[Link]
)
if(WIN32)
target_sources(kate-lib PRIVATE qtsingleapplication/qtlockedfile_win.cpp)
else()
target_sources(kate-lib PRIVATE qtsingleapplication/qtlockedfile_unix.cpp)
endif()
endif()
# application icon, in all sizes needed to have e.g. nice Windows icons, too
set(ICON_FILES
${CMAKE_CURRENT_SOURCE_DIR}/icons/[Link]
${CMAKE_CURRENT_SOURCE_DIR}/icons/[Link]
${CMAKE_CURRENT_SOURCE_DIR}/icons/[Link]
${CMAKE_CURRENT_SOURCE_DIR}/icons/[Link]
${CMAKE_CURRENT_SOURCE_DIR}/icons/[Link]
${CMAKE_CURRENT_SOURCE_DIR}/icons/[Link]
${CMAKE_CURRENT_SOURCE_DIR}/icons/[Link]
${CMAKE_CURRENT_SOURCE_DIR}/icons/[Link]
${CMAKE_CURRENT_SOURCE_DIR}/icons/[Link]
${CMAKE_CURRENT_SOURCE_DIR}/icons/[Link]
${CMAKE_CURRENT_SOURCE_DIR}/icons/[Link]
${CMAKE_CURRENT_SOURCE_DIR}/icons/[Link]
)
# Add icon files to the application's source files to have CMake bundle them in the
executable.
ecm_add_app_icon(ICONS_SOURCES ICONS ${ICON_FILES})
target_sources(kate-bin PRIVATE ${ICONS_SOURCES})
set_property(
TARGET kate-bin
PROPERTY OUTPUT_NAME kate
)
# See [Link]
if(APPLE)
set_property(
TARGET kate-bin
PROPERTY MACOSX_BUNDLE_INFO_PLIST
${CMAKE_CURRENT_SOURCE_DIR}/data/[Link]
)
# These are substituted by CMake into [Link].
set(MACOSX_BUNDLE_DISPLAY_NAME "Kate")
set(MACOSX_BUNDLE_GUI_IDENTIFIER "[Link]")
set(MACOSX_BUNDLE_BUNDLE_NAME "Kate")
set(MACOSX_BUNDLE_DISPLAY_NAME "Kate")
set(MACOSX_BUNDLE_INFO_STRING "Kate - Advanced Text Editor")
set(MACOSX_BUNDLE_LONG_VERSION_STRING "Kate ${KDE_APPLICATIONS_VERSION}")
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${KDE_APPLICATIONS_VERSION_MAJOR}.$
{KDE_APPLICATIONS_VERSION_MINOR}")
set(MACOSX_BUNDLE_BUNDLE_VERSION "${KDE_APPLICATIONS_VERSION}")
set(MACOSX_BUNDLE_COPYRIGHT "2000-2016 The Kate Authors")
endif()
install(TARGETS kate-bin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
ecm_install_icons(
ICONS ${ICON_FILES}
DESTINATION ${ICON_INSTALL_DIR}
THEME hicolor
)
install(
PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/data/[Link]
DESTINATION ${KDE_INSTALL_APPDIR}
)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/[Link]
DESTINATION ${CMAKE_INSTALL_METAINFODIR}
)
if(BUILD_TESTING)
add_subdirectory(autotests)
endif()