Warning, /maui/clip/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # Copyright 2018-2020 Camilo Higuita <milo.h@aol.com>
0002 # Copyright 2018-2020 Nitrux Latinoamericana S.C.
0003 #
0004 # SPDX-License-Identifier: GPL-3.0-or-later
0005
0006 cmake_minimum_required(VERSION 3.16)
0007
0008 set(CLIP_VERSION 3.1.0)
0009 add_compile_definitions(APP_COPYRIGHT_NOTICE="© 2019-2024 Maui Development Team")
0010
0011 project(clip VERSION ${CLIP_VERSION} LANGUAGES CXX)
0012
0013 set(CMAKE_CXX_STANDARD 17)
0014 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0015
0016 set(CMAKE_INCLUDE_CURRENT_DIR ON)
0017 set(CMAKE_AUTOUIC ON)
0018 set(CMAKE_AUTOMOC ON)
0019 set(CMAKE_AUTORCC ON)
0020
0021 set(REQUIRED_QT_VERSION 5.14.0)
0022 set(REQUIRED_KF5_VERSION 5.60)
0023
0024 # Certain versions of FFMPEG need this to be defined
0025 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D __STDC_CONSTANT_MACROS")
0026
0027 if(ANDROID)
0028 set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android_files)
0029 set(ANDROID_ABIS "armeabi-v7a")
0030 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/android_files/version.gradle.in ${CMAKE_BINARY_DIR}/version.gradle)
0031 endif()
0032
0033 option(QUICK_COMPILER "Use QtQuick compiler to improve performance" TRUE)
0034
0035 find_package(ECM ${REQUIRED_KF5_VERSION} REQUIRED NO_MODULE)
0036 set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${ECM_MODULE_PATH})
0037
0038 find_package(Qt5 ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE COMPONENTS Qml Quick Multimedia)
0039 find_package(KF5 ${REQUIRED_KF5_VERSION} REQUIRED COMPONENTS I18n CoreAddons)
0040
0041 find_package(FFmpeg COMPONENTS AVCODEC AVFORMAT SWSCALE)
0042 find_package(Taglib REQUIRED)
0043
0044 if(ANDROID)
0045 find_package(Qt5 ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE COMPONENTS AndroidExtras QuickControls2)
0046 else()
0047 find_package(KF5 ${REQUIRED_KF5_VERSION} REQUIRED COMPONENTS DBusAddons)
0048 find_package(Qt5 ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS Widgets DBus)
0049 endif()
0050
0051 find_package(MauiKit3 REQUIRED)
0052 find_package(MauiKit3 REQUIRED COMPONENTS FileBrowsing)
0053
0054 if(QUICK_COMPILER)
0055 find_package(Qt5QuickCompiler)
0056 set_package_properties(Qt5QuickCompiler PROPERTIES
0057 DESCRIPTION "Compile QML at build time"
0058 TYPE OPTIONAL)
0059 endif()
0060
0061 if(UNIX AND NOT APPLE AND NOT ANDROID)
0062 include(KDEInstallDirs)
0063 include(KDECMakeSettings)
0064 include(ECMInstallIcons)
0065 include(ECMAddAppIcon)
0066 endif()
0067
0068 include(KDECompilerSettings NO_POLICY_SCOPE)
0069 include(KDEClangFormat)
0070 include(ECMSetupVersion)
0071 include(ECMSourceVersionControl)
0072 include(FeatureSummary)
0073
0074 option (MPV_AVAILABLE "Use MPV library if it is avalibale, otherwise use default fallback implementation from QtMultimedia" FALSE)
0075
0076 if(${ECM_SOURCE_UNDER_VERSION_CONTROL})
0077 execute_process(
0078 COMMAND git rev-parse --abbrev-ref HEAD
0079 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0080 OUTPUT_VARIABLE GIT_BRANCH
0081 OUTPUT_STRIP_TRAILING_WHITESPACE)
0082
0083 # Get the latest abbreviated commit hash of the working branch
0084 execute_process(
0085 COMMAND git log -1 --format=%h
0086 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0087 OUTPUT_VARIABLE GIT_COMMIT_HASH
0088 OUTPUT_STRIP_TRAILING_WHITESPACE)
0089
0090 add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
0091 add_definitions(-DGIT_BRANCH="${GIT_BRANCH}")
0092
0093 else()
0094 add_definitions(-DGIT_COMMIT_HASH="${CLIP_VERSION}")
0095 add_definitions(-DGIT_BRANCH="Stable")
0096 endif()
0097
0098 ecm_setup_version(${CLIP_VERSION}
0099 VARIABLE_PREFIX CLIP
0100 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/clip_version.h")
0101
0102 add_subdirectory(src)
0103 ki18n_install(po)
0104
0105 if(UNIX AND NOT APPLE AND NOT ANDROID)
0106 install(FILES org.kde.clip.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
0107 endif()
0108
0109 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
0110
0111 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0112 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})