Warning, /graphics/libkexiv2/src/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # 0002 # SPDX-FileCopyrightText: 2010-2015 Gilles Caulier <caulier dot gilles at gmail dot com> 0003 # 0004 # SPDX-License-Identifier: BSD-3-Clause 0005 # 0006 0007 if (QT_MAJOR_VERSION STREQUAL "5") 0008 set(KEXIV2_INSTALL_INCLUDEDIR "${KDE_INSTALL_INCLUDEDIR_KF}/KExiv2") 0009 set(KEXIV2_CMAKECONFIG_NAME "KF${QT_MAJOR_VERSION}KExiv2") 0010 set(LIBRARYFILE_NAME "KF5KExiv2") 0011 set(TARGET_EXPORT_NAME "KExiv2") 0012 set(NAMESPACE_NAME "KF5::") 0013 else() 0014 set(KEXIV2_INSTALL_INCLUDEDIR "${KDE_INSTALL_INCLUDEDIR}/KExiv2Qt6") 0015 set(KEXIV2_CMAKECONFIG_NAME "KExiv2Qt6") 0016 set(LIBRARYFILE_NAME "KExiv2Qt6") 0017 set(TARGET_EXPORT_NAME "KExiv2Qt6") 0018 set(NAMESPACE_NAME "") 0019 endif() 0020 0021 ecm_setup_version(${libkexiv2_VERSION} 0022 VARIABLE_PREFIX KEXIV2 0023 VERSION_HEADER "libkexiv2_version.h" 0024 PACKAGE_VERSION_FILE "${KEXIV2_CMAKECONFIG_NAME}ConfigVersion.cmake" 0025 SOVERSION ${LIBKEXIV2_SO_VERSION} 0026 ) 0027 0028 kde_enable_exceptions() 0029 0030 add_library(KExiv2 SHARED) 0031 0032 set_target_properties(KExiv2 PROPERTIES 0033 OUTPUT_NAME KF${QT_MAJOR_VERSION}KExiv2 0034 VERSION ${KEXIV2_VERSION} 0035 SOVERSION ${KEXIV2_SOVERSION} 0036 OUTPUT_NAME ${LIBRARYFILE_NAME} 0037 EXPORT_NAME ${TARGET_EXPORT_NAME} 0038 ) 0039 0040 if( WIN32 ) 0041 target_compile_definitions(KExiv2 PRIVATE -DEXV_HAVE_DLL) 0042 endif() 0043 0044 target_sources(KExiv2 PRIVATE 0045 kexiv2.cpp 0046 kexiv2_p.cpp 0047 kexiv2data.cpp 0048 kexiv2image.cpp 0049 kexiv2comments.cpp 0050 kexiv2exif.cpp 0051 kexiv2iptc.cpp 0052 kexiv2gps.cpp 0053 kexiv2xmp.cpp 0054 kexiv2previews.cpp 0055 rotationmatrix.cpp 0056 ) 0057 ecm_qt_declare_logging_category(KExiv2 0058 HEADER libkexiv2_debug.h 0059 IDENTIFIER LIBKEXIV2_LOG 0060 CATEGORY_NAME "libKExiv2" 0061 DESCRIPTION "libKExiv2" 0062 EXPORT kexiv2 0063 ) 0064 0065 ecm_generate_headers(kexiv2_CamelCase_HEADERS 0066 HEADER_NAMES 0067 KExiv2Data 0068 KExiv2 0069 KExiv2Previews 0070 RotationMatrix 0071 PREFIX KExiv2 0072 REQUIRED_HEADERS kexiv2_HEADERS 0073 ) 0074 0075 if (QT_MAJOR_VERSION STREQUAL "5") 0076 set(_generate_export_header_version_args) 0077 else() 0078 # For Qt6/KF6 world transitively include the version header 0079 if(ECM_VERSION VERSION_LESS "5.106") 0080 set(include_version_header_code "#include <libkexiv2_version.h>\n") 0081 set(_generate_export_header_version_args CUSTOM_CONTENT_FROM_VARIABLE include_version_header_code) 0082 else() 0083 set(_generate_export_header_version_args USE_VERSION_HEADER libkexiv2_version.h) 0084 endif() 0085 endif() 0086 0087 ecm_generate_export_header(KExiv2 0088 BASE_NAME kexiv2 0089 EXPORT_FILE_NAME libkexiv2_export.h 0090 EXPORT_MACRO_NAME LIBKEXIV2_EXPORT 0091 VERSION ${libkexiv2_VERSION} 0092 DEPRECATED_BASE_VERSION 0 0093 DEPRECATION_VERSIONS 5.1 0094 EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT} 0095 ${_generate_export_header_version_args} 0096 ) 0097 0098 target_include_directories(KExiv2 0099 INTERFACE 0100 "$<INSTALL_INTERFACE:${KEXIV2_INSTALL_INCLUDEDIR};${KEXIV2_INSTALL_INCLUDEDIR}/kexiv2>" 0101 ) 0102 0103 target_link_libraries(KExiv2 0104 PUBLIC 0105 Qt::Gui 0106 Qt::Core 0107 PRIVATE 0108 LibExiv2::LibExiv2 0109 ) 0110 0111 if( WIN32 ) 0112 target_link_libraries(KExiv2 ${EXPAT_LIBRARIES}) 0113 endif() 0114 0115 install(TARGETS KExiv2 0116 EXPORT KExiv2Targets ${KF_INSTALL_TARGETS_DEFAULT_ARGS} 0117 ) 0118 0119 install(FILES 0120 ${kexiv2_CamelCase_HEADERS} 0121 DESTINATION ${KEXIV2_INSTALL_INCLUDEDIR}/KExiv2 0122 COMPONENT Devel 0123 ) 0124 0125 install(FILES 0126 ${kexiv2_HEADERS} 0127 ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2_export.h 0128 DESTINATION ${KEXIV2_INSTALL_INCLUDEDIR}/kexiv2 0129 COMPONENT Devel 0130 ) 0131 0132 install(FILES 0133 ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2_version.h 0134 DESTINATION ${KEXIV2_INSTALL_INCLUDEDIR} 0135 COMPONENT Devel 0136 ) 0137 0138 ecm_qt_install_logging_categories( 0139 EXPORT kexiv2 0140 FILE libkexiv2.categories 0141 DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}" 0142 ) 0143 0144 ############## CMake Config Files ############## 0145 0146 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/${KEXIV2_CMAKECONFIG_NAME}") 0147 0148 configure_package_config_file( 0149 "${CMAKE_SOURCE_DIR}/cmake/templates/KExiv2Config.cmake.in" 0150 "${CMAKE_CURRENT_BINARY_DIR}/${KEXIV2_CMAKECONFIG_NAME}Config.cmake" 0151 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} 0152 ) 0153 0154 install(FILES 0155 "${CMAKE_CURRENT_BINARY_DIR}/${KEXIV2_CMAKECONFIG_NAME}Config.cmake" 0156 "${CMAKE_CURRENT_BINARY_DIR}/${KEXIV2_CMAKECONFIG_NAME}ConfigVersion.cmake" 0157 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0158 COMPONENT Devel 0159 ) 0160 0161 install(EXPORT KExiv2Targets 0162 FILE ${KEXIV2_CMAKECONFIG_NAME}Targets.cmake 0163 NAMESPACE ${NAMESPACE_NAME} 0164 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0165 COMPONENT Devel 0166 )