Warning, /graphics/digikam/core/app/DigikamTarget.cmake is written in an unsupported language. File is not indexed.

0001 #
0002 # SPDX-FileCopyrightText: 2010-2024 by Gilles Caulier, <caulier dot gilles at gmail dot com>
0003 # SPDX-FileCopyrightText: 2015      by Veaceslav Munteanu, <veaceslav dot munteanu90 at gmail dot com>
0004 #
0005 # SPDX-License-Identifier: BSD-3-Clause
0006 #
0007 
0008 # To fill MacOS and Windows bundles metadata
0009 
0010 set(BUNDLE_APP_NAME_STRING          "digikam")
0011 set(BUNDLE_APP_DESCRIPTION_STRING   "Advanced digital photo management application")
0012 set(BUNDLE_LEGAL_COPYRIGHT_STRING   "GNU Public License V2")
0013 set(BUNDLE_COMMENT_STRING           "Free and open source software to manage photo")
0014 set(BUNDLE_LONG_VERSION_STRING      ${DIGIKAM_VERSION_STRING})
0015 set(BUNDLE_SHORT_VERSION_STRING     ${DIGIKAM_VERSION_SHORT})
0016 set(BUNDLE_VERSION_STRING           ${DIGIKAM_VERSION_STRING})
0017 
0018 # digiKam executable
0019 
0020 set(digikam_SRCS
0021     ${CMAKE_CURRENT_SOURCE_DIR}/main/main.cpp
0022 )
0023 
0024 # Set the application icon on the application
0025 
0026 file(GLOB ICONS_SRCS "${CMAKE_SOURCE_DIR}/core/data/icons/apps/*-apps-digikam.png")
0027 
0028 if(WIN32)
0029 
0030     # Build the main implementation into a DLL to be called by a stub EXE.
0031     # This is a work around "command line is too long" issue on Windows.
0032     # see https://stackoverflow.com/questions/43184251/cmake-command-line-too-long-windows
0033 
0034     add_library(digikam SHARED ${digikam_SRCS})
0035     set_target_properties(digikam PROPERTIES PREFIX "")
0036 
0037 elseif(APPLE)
0038 
0039     ecm_add_app_icon(digikam_SRCS ICONS ${ICONS_SRCS})
0040     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/templates/DigikamInfo.plist.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)
0041     add_executable(digikam ${digikam_SRCS})
0042     set_target_properties(digikam PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)
0043 
0044 else()
0045 
0046     ecm_add_app_icon(digikam_SRCS ICONS ${ICONS_SRCS})
0047     add_executable(digikam ${digikam_SRCS})
0048 
0049 endif()
0050 
0051 target_include_directories(digikam
0052                            PRIVATE
0053                            ${DIGIKAM_TARGET_INCLUDES}
0054 )
0055 
0056 add_dependencies(digikam digikam-gitversion)
0057 add_dependencies(digikam digikam-builddate)
0058 
0059 target_link_libraries(digikam
0060 
0061                       PUBLIC
0062 
0063                       Qt${QT_VERSION_MAJOR}::Core
0064                       Qt${QT_VERSION_MAJOR}::Gui
0065                       Qt${QT_VERSION_MAJOR}::Widgets
0066                       Qt${QT_VERSION_MAJOR}::Sql
0067 
0068                       KF${QT_VERSION_MAJOR}::WindowSystem
0069                       KF${QT_VERSION_MAJOR}::I18n
0070                       KF${QT_VERSION_MAJOR}::XmlGui
0071                       KF${QT_VERSION_MAJOR}::ConfigCore
0072                       KF${QT_VERSION_MAJOR}::Service
0073                       KF${QT_VERSION_MAJOR}::CoreAddons
0074 
0075                       digikamcore
0076                       digikamdatabase
0077                       digikamgui
0078 )
0079 
0080 if(ENABLE_DBUS)
0081 
0082     target_link_libraries(digikam
0083                           PUBLIC
0084                           Qt${QT_VERSION_MAJOR}::DBus
0085     )
0086 
0087 endif()
0088 
0089 if(KF${QT_VERSION_MAJOR}IconThemes_FOUND)
0090 
0091     target_link_libraries(digikam
0092                           PUBLIC
0093                           KF${QT_VERSION_MAJOR}::IconThemes
0094     )
0095 
0096     if(Qt6_FOUND)
0097 
0098         target_link_libraries(digikam
0099                               PUBLIC
0100                               KF${QT_VERSION_MAJOR}::IconWidgets
0101         )
0102 
0103     endif()
0104 
0105 endif()
0106 
0107 if(KF${QT_VERSION_MAJOR}KIO_FOUND)
0108 
0109     target_link_libraries(digikam
0110                           PUBLIC
0111                           KF${QT_VERSION_MAJOR}::KIOWidgets
0112     )
0113 
0114 endif()
0115 
0116 if(ImageMagick_Magick++_FOUND)
0117 
0118     target_link_libraries(digikam
0119                           PUBLIC
0120                           ${ImageMagick_LIBRARIES}
0121     )
0122 
0123 endif()
0124 
0125 if(Qt6_FOUND)
0126     install(TARGETS digikam DESTINATION ${KDE_INSTALL_BINDIR})
0127 else()
0128     install(TARGETS digikam ${INSTALL_TARGETS_DEFAULT_ARGS})
0129 endif()
0130 
0131 if(APPLE)
0132     install(FILES "$<TARGET_FILE:digikam>.dSYM" DESTINATION "${CMAKE_INSTALL_BINDIR}" CONFIGURATIONS Debug RelWithDebInfo)
0133 endif()
0134 
0135 if(WIN32)
0136 
0137     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/templates/versioninfo.rc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc)
0138 
0139     set(digikam_windows_stub_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/main/windows_stub_main.cpp)
0140 
0141     ecm_add_app_icon(digikam_windows_stub_SRCS ICONS ${ICONS_SRCS})
0142 
0143     add_executable(digikam_windows_stub_exe
0144                    ${digikam_windows_stub_SRCS}
0145                    ${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc
0146     )
0147 
0148     target_link_libraries(digikam_windows_stub_exe
0149                           PRIVATE
0150                           digikam)
0151 
0152     if(NOT Qt6_FOUND)
0153 
0154         target_link_libraries(digikam_windows_stub_exe
0155                               PRIVATE
0156                               Qt${QT_VERSION_MAJOR}::WinMain)
0157 
0158     endif()
0159 
0160     set_target_properties(digikam_windows_stub_exe PROPERTIES OUTPUT_NAME "digikam")
0161     target_include_directories(digikam_windows_stub_exe PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/main)
0162 
0163     install(TARGETS digikam_windows_stub_exe ${INSTALL_TARGETS_DEFAULT_ARGS})
0164 
0165 endif()