Warning, /multimedia/libkcddb/libkcddb/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 add_definitions(-DTRANSLATION_DOMAIN="libkcddb") 0002 0003 set(KCDDB_INSTALL_INCLUDEDIR "${KDE_INSTALL_INCLUDEDIR}/KCddb${QT_MAJOR_VERSION}") 0004 if (KF_MAJOR_VERSION STREQUAL "5") 0005 set(KCDDB_CMAKECONFIG_NAME "KF5Cddb") 0006 else() 0007 set(KCDDB_CMAKECONFIG_NAME "KCddb6") 0008 endif() 0009 0010 ecm_setup_version(${libkcddb_VERSION} 0011 VARIABLE_PREFIX KCDDB 0012 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kcddb_version.h" 0013 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/${KCDDB_CMAKECONFIG_NAME}ConfigVersion.cmake" 0014 SOVERSION 5 0015 ) 0016 0017 add_library(KCddb SHARED) 0018 if (KF_MAJOR_VERSION STREQUAL "5") 0019 add_library(KF5::Cddb ALIAS KCddb) 0020 else() 0021 add_library(KCddb6 ALIAS KCddb) 0022 endif() 0023 0024 if (KF_MAJOR_VERSION STREQUAL "5") 0025 set_target_properties(KCddb PROPERTIES 0026 VERSION ${KCDDB_VERSION} 0027 SOVERSION ${KCDDB_SOVERSION} 0028 OUTPUT_NAME KF${KF_MAJOR_VERSION}Cddb 0029 EXPORT_NAME Cddb 0030 ) 0031 else() 0032 set_target_properties(KCddb PROPERTIES 0033 VERSION ${KCDDB_VERSION} 0034 SOVERSION ${KCDDB_SOVERSION} 0035 OUTPUT_NAME KCddb6 0036 EXPORT_NAME KCddb6 0037 ) 0038 endif() 0039 0040 0041 if(MUSICBRAINZ5_FOUND) 0042 set(musicbrainz_sources 0043 musicbrainz/musicbrainzlookup.cpp 0044 musicbrainz/asyncmusicbrainzlookup.cpp musicbrainz/asyncmusicbrainzlookup.h) 0045 0046 if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC" OR (WIN32 AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")) 0047 set(enable_exceptions -EHsc) 0048 elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") 0049 set(enable_exceptions "-fexceptions -UQT_NO_EXCEPTIONS") 0050 elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") 0051 set(enable_exceptions -fexceptions) 0052 endif() 0053 0054 set_source_files_properties(${musicbrainz_sources} PROPERTIES COMPILE_FLAGS ${enable_exceptions}) 0055 endif() 0056 0057 kconfig_add_kcfg_files(KCddb configbase.kcfgc) 0058 0059 ecm_qt_declare_logging_category(KCddb 0060 HEADER logging.h 0061 IDENTIFIER LIBKCDDB 0062 CATEGORY_NAME "libkcddb" 0063 DESCRIPTION "libkcddb" 0064 EXPORT KCDDB 0065 ) 0066 0067 target_sources(KCddb PRIVATE 0068 cache.cpp cache.h 0069 cdinfo.cpp cdinfo.h 0070 config.cpp config.h 0071 client.cpp client.h 0072 kcddb.cpp kcddb.h 0073 cddb.cpp 0074 lookup.cpp 0075 cddbplookup.cpp cddbplookup.h 0076 synccddbplookup.cpp synccddbplookup.h 0077 asynccddbplookup.cpp asynccddbplookup.h 0078 httplookup.cpp httplookup.h 0079 synchttplookup.cpp 0080 asynchttplookup.cpp asynchttplookup.h 0081 submit.cpp 0082 sites.cpp sites.h 0083 httpsubmit.cpp 0084 asynchttpsubmit.cpp asynchttpsubmit.h 0085 synchttpsubmit.cpp 0086 categories.cpp categories.h 0087 genres.cpp genres.h 0088 ${musicbrainz_sources} 0089 ) 0090 0091 target_link_libraries(KCddb 0092 PUBLIC 0093 KF${KF_MAJOR_VERSION}::ConfigGui 0094 PRIVATE 0095 KF${KF_MAJOR_VERSION}::I18n 0096 KF${KF_MAJOR_VERSION}::KIOCore 0097 Qt${QT_MAJOR_VERSION}::Network 0098 ) 0099 0100 if (TARGET Qt6::Core5Compat) 0101 target_link_libraries(KCddb PRIVATE Qt6::Core5Compat) 0102 endif() 0103 0104 if(MUSICBRAINZ5_FOUND) 0105 target_link_libraries(KCddb PRIVATE musicbrainz) 0106 endif() 0107 0108 if (QT_MAJOR_VERSION STREQUAL "5") 0109 set(_generate_export_header_version_args) 0110 else() 0111 # For Qt6/KF6 world transitively include the version header 0112 if(ECM_VERSION VERSION_LESS "5.106") 0113 set(include_version_header_code "#include <kcddb_version.h>\n") 0114 set(_generate_export_header_version_args CUSTOM_CONTENT_FROM_VARIABLE include_version_header_code) 0115 else() 0116 set(_generate_export_header_version_args USE_VERSION_HEADER) 0117 endif() 0118 endif() 0119 0120 ecm_generate_export_header(KCddb 0121 BASE_NAME KCddb 0122 VERSION ${KCDDB_VERSION} 0123 DEPRECATED_BASE_VERSION 5.0.0 0124 DEPRECATION_VERSIONS 5.1 0125 EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT} 0126 ${_generate_export_header_version_args} 0127 ) 0128 0129 target_include_directories(KCddb 0130 PUBLIC 0131 "$<INSTALL_INTERFACE:${KCDDB_INSTALL_INCLUDEDIR}>" 0132 ) 0133 0134 ecm_generate_headers(KCddb_CamelCase_HEADERS 0135 HEADER_NAMES 0136 Categories 0137 CDInfo 0138 Client 0139 Genres 0140 Config 0141 KCDDB 0142 PREFIX KCDDB 0143 REQUIRED_HEADERS KCddb_HEADERS 0144 ) 0145 0146 if (KF_MAJOR_VERSION STREQUAL "6") 0147 install(TARGETS KCddb EXPORT KCddbTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 0148 else() 0149 install(TARGETS KCddb EXPORT KCddbTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS}) 0150 endif() 0151 0152 install(FILES 0153 ${CMAKE_CURRENT_BINARY_DIR}/kcddb_export.h 0154 ${CMAKE_CURRENT_BINARY_DIR}/configbase.h 0155 ${KCddb_HEADERS} 0156 DESTINATION ${KCDDB_INSTALL_INCLUDEDIR}/kcddb # C++ namespace prefix 0157 COMPONENT Devel 0158 ) 0159 0160 install(FILES 0161 ${KCddb_CamelCase_HEADERS} 0162 DESTINATION ${KCDDB_INSTALL_INCLUDEDIR}/KCDDB # C++ namespace prefix 0163 COMPONENT Devel 0164 ) 0165 0166 install(FILES 0167 "${CMAKE_CURRENT_BINARY_DIR}/kcddb_version.h" 0168 DESTINATION "${KCDDB_INSTALL_INCLUDEDIR}" 0169 COMPONENT Devel 0170 ) 0171 0172 if (KF_MAJOR_VERSION STREQUAL "5") 0173 set(KCDDB_INCLUDE_DESTINATION "${KDE_INSTALL_INCLUDEDIR_KF}/KCddb") 0174 else() 0175 set(KCDDB_INCLUDE_DESTINATION "${KDE_INSTALL_INCLUDEDIR}/KCddb6") 0176 endif() 0177 # provide compat headers for old broken include path prefix KCddb/ 0178 if(NOT EXCLUDE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT" AND 0179 EXCLUDE_DEPRECATED_BEFORE_AND_AT VERSION_LESS 5.1.0) 0180 function(generate_compat_headers) 0181 foreach(_classnameentry ${ARGV}) 0182 string(REPLACE "," ";" _classnames ${_classnameentry}) 0183 list(GET _classnames 0 classname) 0184 list(GET _classnames -1 newclassname) # last is either second or the only one 0185 0186 string(TOLOWER ${classname} classname_lc) 0187 string(TOLOWER ${newclassname} newclassname_lc) 0188 set(NEWHEADER_NAME "${newclassname_lc}.h") 0189 # normal header 0190 set(compat_header "${CMAKE_CURRENT_BINARY_DIR}/compat/${classname_lc}.h") 0191 set(NEW_INCLUDE "kcddb/${NEWHEADER_NAME}") 0192 configure_file(compatheader.h.in ${compat_header} @ONLY) 0193 install(FILES ${compat_header} 0194 DESTINATION ${KCDDB_INCLUDE_DESTINATION} 0195 COMPONENT Devel 0196 ) 0197 # CamelCase header 0198 set(compat_header "${CMAKE_CURRENT_BINARY_DIR}/compat/${classname}") 0199 set(NEW_INCLUDE "KCDDB/${newclassname}") 0200 configure_file(compatheader.h.in ${compat_header} @ONLY) 0201 install(FILES ${compat_header} 0202 DESTINATION ${KCDDB_INCLUDE_DESTINATION} 0203 COMPONENT Devel 0204 ) 0205 endforeach() 0206 endfunction() 0207 0208 generate_compat_headers( 0209 Categories 0210 Cdinfo,CDInfo 0211 Client 0212 Genres 0213 KcddbConfig,Config 0214 Kcddb,KCDDB 0215 ) 0216 endif() 0217 0218 install(FILES libkcddb5.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) 0219 0220 ecm_qt_install_logging_categories( 0221 EXPORT KCDDB 0222 FILE libkcddb.categories 0223 DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}" 0224 ) 0225 0226 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/${KCDDB_CMAKECONFIG_NAME}") 0227 configure_package_config_file( 0228 "${CMAKE_CURRENT_SOURCE_DIR}/${KCDDB_CMAKECONFIG_NAME}Config.cmake.in" 0229 "${CMAKE_CURRENT_BINARY_DIR}/${KCDDB_CMAKECONFIG_NAME}Config.cmake" 0230 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} 0231 ) 0232 0233 install(FILES 0234 "${CMAKE_CURRENT_BINARY_DIR}/${KCDDB_CMAKECONFIG_NAME}Config.cmake" 0235 "${CMAKE_CURRENT_BINARY_DIR}/${KCDDB_CMAKECONFIG_NAME}ConfigVersion.cmake" 0236 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0237 COMPONENT Devel 0238 ) 0239 0240 if (KF_MAJOR_VERSION STREQUAL "6") 0241 install(EXPORT KCddbTargets 0242 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0243 FILE ${KCDDB_CMAKECONFIG_NAME}Targets.cmake 0244 COMPONENT Devel 0245 ) 0246 else() 0247 install(EXPORT KCddbTargets 0248 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0249 FILE ${KCDDB_CMAKECONFIG_NAME}Targets.cmake 0250 NAMESPACE KF5:: 0251 COMPONENT Devel 0252 ) 0253 endif() 0254 0255 include(ECMGeneratePriFile) 0256 if (KF_MAJOR_VERSION STREQUAL "5") 0257 set(KCDDB_LIB_NAME KF${KF_MAJOR_VERSION}Cddb) 0258 else() 0259 set(KCDDB_LIB_NAME libKCddb6) 0260 endif() 0261 ecm_generate_pri_file( 0262 BASE_NAME KCddb 0263 LIB_NAME ${KCDDB_LIB_NAME} 0264 DEPS "KConfigGui" 0265 FILENAME_VAR PRI_FILENAME 0266 INCLUDE_INSTALL_DIR ${KCDDB_INSTALL_INCLUDEDIR} 0267 ) 0268 install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})