Warning, /multimedia/libkcompactdisc/src/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 ## Compiler flags
0002 
0003 add_definitions(-DTRANSLATION_DOMAIN=\"libkcompactdisc\")
0004 
0005 if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_C_COMPILER_ID MATCHES "Clang")
0006     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")   ## ALSA no longer compiles with -std=c90, see https://bugzilla.novell.com/show_bug.cgi?id=817077
0007 endif()
0008 
0009 find_package(ALSA)
0010 set_package_properties(ALSA PROPERTIES
0011                        URL "https://www.alsa-project.org/"
0012                        DESCRIPTION "ALSA provides audio and MIDI functionality"
0013                        TYPE OPTIONAL
0014                        PURPOSE "Play back audio CDs via ALSA")
0015 set(HAVE_ALSA ${ALSA_FOUND})
0016 
0017 
0018 if (QT_MAJOR_VERSION STREQUAL "5")
0019     set(KCOMPACTDISC_INSTALL_INCLUDEDIR "${KDE_INSTALL_INCLUDEDIR_KF}/KCompactDisc")
0020     set(KCOMPACTDISC_CMAKECONFIG_NAME "KF5CompactDisc")
0021     set(LIBRARYFILE_NAME "KF5CompactDisc")
0022     set(TARGET_EXPORT_NAME "CompactDisc")
0023     set(NAMESPACE_NAME "KF5::")
0024 else()
0025     set(KCOMPACTDISC_INSTALL_INCLUDEDIR "${KDE_INSTALL_INCLUDEDIR}/KCompactDisc6")
0026     set(KCOMPACTDISC_CMAKECONFIG_NAME "KCompactDisc6")
0027     set(LIBRARYFILE_NAME "KCompactDisc6")
0028     set(TARGET_EXPORT_NAME "KCompactDisc6")
0029     set(NAMESPACE_NAME "")
0030 endif()
0031 
0032 # Version Setup
0033 
0034 ecm_setup_version(${KCompactDisc_VERSION}
0035     VARIABLE_PREFIX KCOMPACTDISC
0036     VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/kcompactdisc_version.h
0037     PACKAGE_VERSION_FILE ${CMAKE_CURRENT_BINARY_DIR}/${KCOMPACTDISC_CMAKECONFIG_NAME}ConfigVersion.cmake
0038     SOVERSION 5
0039 )
0040 
0041 configure_file(config-alsa.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-alsa.h)
0042 
0043 add_library(KCompactDisc SHARED)
0044 set_target_properties(KCompactDisc PROPERTIES
0045     VERSION ${KCOMPACTDISC_VERSION}
0046     SOVERSION ${KCOMPACTDISC_SOVERSION}
0047     OUTPUT_NAME ${LIBRARYFILE_NAME}
0048     EXPORT_NAME ${TARGET_EXPORT_NAME}
0049 )
0050 
0051 if (QT_MAJOR_VERSION STREQUAL "5")
0052     add_library(KF5::CompactDisc ALIAS KCompactDisc)
0053 endif()
0054 
0055 if (QT_MAJOR_VERSION STREQUAL "5")
0056     set(_generate_export_header_version_args)
0057 else()
0058     # For Qt6/KF6 world transitively include the version header
0059     if(ECM_VERSION VERSION_LESS "5.106")
0060         set(include_version_header_code "#include <kcompactdisc_version.h>\n")
0061         set(_generate_export_header_version_args CUSTOM_CONTENT_FROM_VARIABLE include_version_header_code)
0062     else()
0063         set(_generate_export_header_version_args USE_VERSION_HEADER)
0064     endif()
0065 endif()
0066 ecm_generate_export_header(KCompactDisc
0067     BASE_NAME KCompactDisc
0068     VERSION ${KCOMPACTDISC_VERSION}
0069     DEPRECATED_BASE_VERSION 0
0070     ${_generate_export_header_version_args}
0071 )
0072 
0073 if (APPLE OR WIN32 OR CMAKE_SYSTEM_NAME STREQUAL GNU)
0074     set(USE_WMLIB false)
0075 else()
0076     set(USE_WMLIB true)
0077 endif()
0078 
0079 target_sources(KCompactDisc PRIVATE
0080     kcompactdisc.cpp kcompactdisc.h
0081     kcompactdisc_p.cpp kcompactdisc_p.h
0082     phonon_interface.cpp phonon_interface.h
0083 )
0084 
0085 if (USE_WMLIB)
0086     target_sources(KCompactDisc PRIVATE
0087         wmlib_interface.cpp wmlib_interface.h
0088 
0089         wmlib/audio/audio.c
0090         wmlib/audio/audio_arts.c
0091         wmlib/audio/audio_alsa.c
0092         wmlib/audio/audio_sun.c
0093 
0094         wmlib/cdda.c
0095         wmlib/cddb.c
0096         wmlib/cdrom.c
0097         wmlib/wm_helpers.c
0098         wmlib/cdtext.c
0099         wmlib/scsi.c
0100         wmlib/plat_aix.c
0101         wmlib/plat_bsd386.c
0102         wmlib/plat_freebsd.c
0103         wmlib/plat_hpux.c
0104         wmlib/plat_irix.c
0105         wmlib/plat_linux.c
0106         wmlib/plat_svr4.c
0107         wmlib/plat_ultrix.c
0108         wmlib/plat_news.c
0109         wmlib/plat_openbsd.c
0110         wmlib/plat_osf1.c
0111         wmlib/plat_sun.c
0112         wmlib/plat_scor5.c
0113         wmlib/drv_sony.c
0114         wmlib/drv_toshiba.c
0115     )
0116     target_compile_definitions(KCompactDisc PRIVATE -DUSE_WMLIB=1)
0117 endif()
0118 
0119 target_link_libraries(KCompactDisc
0120     PUBLIC
0121         Qt::Core
0122     PRIVATE
0123         Qt::DBus
0124         KF${KF_MAJOR_VERSION}::Solid
0125         KF${KF_MAJOR_VERSION}::I18n
0126         Phonon::phonon4qt${QT_MAJOR_VERSION}
0127 )
0128 
0129 if (HAVE_ALSA)
0130     target_link_libraries(KCompactDisc PRIVATE ALSA::ALSA)
0131 endif()
0132 
0133 if (USE_WMLIB)
0134     find_package(Threads)
0135     target_link_libraries(KCompactDisc PRIVATE ${CMAKE_THREAD_LIBS_INIT})
0136 endif()
0137 
0138 target_include_directories(KCompactDisc
0139     INTERFACE
0140         "$<INSTALL_INTERFACE:${KCOMPACTDISC_INSTALL_INCLUDEDIR}>"
0141 )
0142 
0143 ecm_generate_headers(KCompactDisc_HEADERS
0144     HEADER_NAMES 
0145     KCompactDisc
0146     REQUIRED_HEADERS KCompactDisc_HEADERS
0147 )
0148 
0149 if (QT_MAJOR_VERSION STREQUAL "6")
0150     install(TARGETS KCompactDisc EXPORT KCompactDiscTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0151 else()
0152     install(TARGETS KCompactDisc EXPORT KCompactDiscTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0153 endif()
0154 install(FILES
0155     ${CMAKE_CURRENT_BINARY_DIR}/kcompactdisc_export.h
0156     ${KCompactDisc_HEADERS}
0157     DESTINATION ${KCOMPACTDISC_INSTALL_INCLUDEDIR}
0158     COMPONENT Devel
0159 )
0160 install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
0161 
0162 
0163 set(CMAKECONFIG_INSTALL_DIR ${KDE_INSTALL_CMAKEPACKAGEDIR}/${KCOMPACTDISC_CMAKECONFIG_NAME})
0164 
0165 configure_package_config_file(
0166     ${CMAKE_CURRENT_SOURCE_DIR}/KF5CompactDiscConfig.cmake.in
0167     ${CMAKE_CURRENT_BINARY_DIR}/${KCOMPACTDISC_CMAKECONFIG_NAME}Config.cmake
0168     INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0169 )
0170 
0171 install(FILES
0172     ${CMAKE_CURRENT_BINARY_DIR}/${KCOMPACTDISC_CMAKECONFIG_NAME}Config.cmake
0173     ${CMAKE_CURRENT_BINARY_DIR}/${KCOMPACTDISC_CMAKECONFIG_NAME}ConfigVersion.cmake
0174     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0175     COMPONENT Devel
0176 )
0177 
0178 install(EXPORT
0179     KCompactDiscTargets
0180     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0181     FILE ${KCOMPACTDISC_CMAKECONFIG_NAME}Targets.cmake
0182     NAMESPACE ${NAMESPACE_NAME}
0183     COMPONENT Devel
0184 )
0185 
0186 install(FILES
0187     ${CMAKE_CURRENT_BINARY_DIR}/kcompactdisc_version.h
0188     DESTINATION "${KCOMPACTDISC_INSTALL_INCLUDEDIR}"
0189     COMPONENT Devel
0190 )
0191 
0192 ecm_generate_pri_file(
0193     BASE_NAME KCompactDisc
0194     LIB_NAME ${KCOMPACTDISC_CMAKECONFIG_NAME}
0195     DEPS "core dbus phonon4qt5 KCoreAddons KI18n Solid"
0196     FILENAME_VAR PRI_FILENAME
0197     INCLUDE_INSTALL_DIR ${KCOMPACTDISC_INSTALL_INCLUDEDIR}
0198 )
0199 install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})