Warning, /office/kmymoney/kmymoney/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 include(ECMAddAppIcon)
0002 
0003 include_directories(${CMAKE_CURRENT_SOURCE_DIR}
0004                     ${CMAKE_CURRENT_BINARY_DIR}
0005                     ${CMAKE_CURRENT_SOURCE_DIR}/settings/
0006                     ${CMAKE_CURRENT_BINARY_DIR}/settings/
0007                     ${CMAKE_CURRENT_BINARY_DIR}/dialogs/
0008                     ${CMAKE_CURRENT_SOURCE_DIR}/widgets/
0009                     ${CMAKE_CURRENT_BINARY_DIR}/widgets/
0010                     ${CMAKE_CURRENT_SOURCE_DIR}/mymoney/
0011                     ${CMAKE_CURRENT_SOURCE_DIR}/mymoney/storage/
0012                     ${CMAKE_CURRENT_SOURCE_DIR}/interfaces/
0013                     ${CMAKE_CURRENT_BINARY_DIR}/interfaces/
0014                     ${CMAKE_CURRENT_SOURCE_DIR}/plugins/
0015                     ${CMAKE_CURRENT_BINARY_DIR}/plugins/
0016                     ${CMAKE_CURRENT_SOURCE_DIR}/views/
0017                     ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/
0018                     ${CMAKE_CURRENT_SOURCE_DIR}/converter/
0019                     ${CMAKE_CURRENT_BINARY_DIR}/dialogs/settings/
0020                     ${CMAKE_CURRENT_BINARY_DIR}/mymoney/storage/
0021                     ${CMAKE_CURRENT_BINARY_DIR}/mymoney/
0022                     ${CMAKE_CURRENT_SOURCE_DIR}/wizards/endingbalancedlg/
0023                     ${CMAKE_CURRENT_BINARY_DIR}/wizards/endingbalancedlg/
0024                     ${CMAKE_CURRENT_SOURCE_DIR}/wizards/newinvestmentwizard/
0025                     ${CMAKE_CURRENT_BINARY_DIR}/wizards/newinvestmentwizard/
0026                     ${CMAKE_CURRENT_SOURCE_DIR}/wizards/newloanwizard/
0027                     ${CMAKE_CURRENT_BINARY_DIR}/wizards/newloanwizard/
0028                     ${CMAKE_CURRENT_SOURCE_DIR}/wizards/wizardpages/
0029                     ${CMAKE_CURRENT_SOURCE_DIR}/models/
0030                     ${CMAKE_CURRENT_BINARY_DIR}/models/
0031                     ${CMAKE_CURRENT_SOURCE_DIR}/icons/
0032                     ${CMAKE_CURRENT_BINARY_DIR}/icons/
0033                     ${CMAKE_CURRENT_SOURCE_DIR}/menus/
0034                     ${CMAKE_CURRENT_BINARY_DIR}/menus/
0035                     ${CMAKE_CURRENT_SOURCE_DIR}/misc/
0036                     ${CMAKE_CURRENT_BINARY_DIR}/misc/
0037                     )
0038 
0039 add_subdirectory( mymoney )
0040 add_subdirectory( settings )
0041 add_subdirectory( models  )
0042 add_subdirectory( interfaces )
0043 add_subdirectory( plugins )
0044 add_subdirectory( widgets )
0045 add_subdirectory( dialogs )
0046 add_subdirectory( views )
0047 add_subdirectory( converter )
0048 add_subdirectory( wizards )
0049 add_subdirectory( templates )
0050 add_subdirectory( misc )
0051 add_subdirectory( icons )
0052 add_subdirectory( menus )
0053 if(BUILD_TESTING)
0054   add_subdirectory( tests )
0055 endif()
0056 
0057 set( _HEADERS kmymoneyutils.h )
0058 
0059 ########### common code (kmymoney_common) STATIC ###############
0060 # will be linked into kmymoney, kmymoneytest, and libkmymoney.so
0061 
0062 set( kmymoney_common_SRCS kmymoneyutils.cpp kcreditswindow.cpp )
0063 add_library(kmymoney_common STATIC ${kmymoney_common_SRCS})
0064 
0065 target_link_libraries(kmymoney_common
0066   PUBLIC
0067     Qt::Core
0068     KF5::ConfigGui
0069     KF5::WidgetsAddons
0070     KF5::KIOCore
0071     KF5::KIOFileWidgets
0072     KF5::KIOWidgets
0073     Alkimia::alkimia
0074     kmm_mymoney
0075     kmm_webconnect
0076     kmm_utils_platformtools
0077     kmm_url
0078     kmm_yesno
0079     PRIVATE
0080     KF5::I18n
0081     kmm_settings
0082 )
0083 
0084 # must build kmymoney/transactionsortoption.h
0085 # from transactionsortoption.ui first
0086 add_dependencies(kmymoney_common kmm_settings)
0087 add_dependencies(wizardpages kmm_widgets)
0088 # add_dependencies(kmm_dialogs kmm_widgets)
0089 
0090 if(USE_MODELTEST)
0091   set( kmymoney_common_LIBS ${kmymoney_common_LIBS} ${QT_QTTEST_LIBRARY})
0092 endif(USE_MODELTEST)
0093 
0094 # remove these generated files, they are in the way and leftovers from 5.0
0095 if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/kmymoneysettings.h)
0096   file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/kmymoneysettings.h)
0097 endif()
0098 if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/kmymoneysettings.cpp)
0099   file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/kmymoneysettings.cpp)
0100 endif()
0101 
0102 ########### kmymoney executable ###############
0103 
0104 set( kmymoney_SRCS
0105   main.cpp
0106   kmymoney.cpp
0107   pluginloader.cpp
0108 )
0109 
0110 qt_add_dbus_adaptor(kmymoney_SRCS org.kde.kmymoney.xml kmymoney.h KMyMoneyApp)
0111 qt_add_resources(kmymoney_SRCS kmymoney.qrc)
0112 
0113 # collect application icons
0114 file(GLOB_RECURSE KMYMONEY_APP_ICONS "${CMAKE_CURRENT_SOURCE_DIR}/icons/kmymoney/apps/*.png")
0115 # add icons to application sources, to have them bundled
0116 ecm_add_app_icon(kmymoney_SRCS ICONS ${KMYMONEY_APP_ICONS})
0117 
0118 add_executable( kmymoney ${kmymoney_SRCS} )
0119 if (BUILD_STATIC_PLUGINS)
0120     kcoreaddons_target_static_plugins(kmymoney "kmymoney_plugins" LINK_OPTION PRIVATE)
0121     kcoreaddons_target_static_plugins(kmymoney "kmymoney_plugins/kcms" LINK_OPTION PRIVATE)
0122     kcoreaddons_target_static_plugins(kmymoney "kmymoney_plugins/onlinetasks" LINK_OPTION PRIVATE)
0123     if (ENABLE_SQLCIPHER)
0124         target_link_libraries(kmymoney PRIVATE qsqlcipher)
0125         target_compile_definitions(kmymoney PRIVATE -DIMPORT_SQLCIPHER_PLUGIN)
0126     endif()
0127 endif()
0128 
0129 if (ENABLE_SQLCIPHER)
0130   message( STATUS "     SQLCIPHER INCLUDE   :  " ${SQLCIPHER_INCLUDE_DIRS}) #just for testing it on MS Windows
0131   message( STATUS "     SQLCIPHER LIBRARIES :  " ${SQLCIPHER_LIBRARY_DIRS}) #just for testing it on MS Windows
0132   link_directories(${SQLCIPHER_LIBRARY_DIRS})
0133 
0134   target_compile_definitions(kmymoney
0135     PRIVATE
0136       SQLITE_HAS_CODEC
0137       SQLITE_TEMP_STORE=2)
0138 
0139   #otherwise "fatal error: 'sqlite3.h' file not found"
0140   if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "Windows")
0141     target_include_directories(kmymoney
0142       PRIVATE
0143         ${SQLCIPHER_INCLUDE_DIRS})
0144   endif()
0145 endif()
0146 
0147 target_link_libraries(kmymoney
0148   PUBLIC
0149   views
0150   kmymoney_common
0151   newuserwizard
0152   newaccountwizard
0153   newinvestmentwizard
0154   newloanwizard
0155   endingbalancedlg
0156   wizardpages
0157   kmm_extended_dialogs
0158   kmm_base_dialogs
0159   settings
0160   kmm_models
0161   kmm_settings
0162   kmm_menus
0163   kmm_widgets
0164   kmm_mymoney
0165   interfaces
0166   kmm_plugin
0167   Qt::Core
0168   KF5::ConfigGui
0169   KF5::WidgetsAddons
0170   KF5::CoreAddons
0171   kmm_templates
0172   $<$<BOOL:${USE_MODELTEST}>:Qt::Test>
0173   $<$<BOOL:${ENABLE_HOLIDAYS}>:KF5::Holidays>
0174   $<$<BOOL:${ENABLE_ACTIVITIES}>:KF5::Activities>
0175   PRIVATE
0176     kmm_selections
0177     $<$<BOOL:${ENABLE_SQLCIPHER}>:PkgConfig::SQLCIPHER>
0178 )
0179 
0180 # create symlink to let kcoreaddons find plugins
0181 if(WIN32 AND NOT CMAKE_CROSSCOMPILING)
0182   # First make sure that nothing is in the way so mklink will always work
0183   if(EXISTS ${CMAKE_BINARY_DIR}/bin/kmymoney)
0184     add_custom_command(TARGET kmymoney POST_BUILD
0185       COMMAND rmdir kmymoney
0186       WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
0187   endif()
0188   add_custom_command(TARGET kmymoney POST_BUILD
0189     COMMAND mklink /J kmymoney .
0190     WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
0191 else()
0192   add_custom_command(TARGET kmymoney POST_BUILD
0193     COMMAND ${CMAKE_COMMAND} -E create_symlink . kmymoney
0194     WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
0195 endif()
0196 
0197 # own plist magic for mac os
0198 if(APPLE)
0199     string(TIMESTAMP CURRENT_YEAR "%Y")
0200     # own plist template
0201     set_target_properties(kmymoney PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/MacOSXBundleInfo.plist.in)
0202 
0203     # the MacOSX bundle display name property (CFBundleDisplayName) is not currently supported by cmake,
0204     # so has to be set for all targets in this cmake file
0205     set(MACOSX_BUNDLE_DISPLAY_NAME KMyMoney)
0206     set_target_properties(kmymoney PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER "org.kde.KMyMoney")
0207     set_target_properties(kmymoney PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "KMyMoney")
0208     set_target_properties(kmymoney PROPERTIES MACOSX_BUNDLE_DISPLAY_NAME "KMyMoney")
0209     set_target_properties(kmymoney PROPERTIES MACOSX_BUNDLE_INFO_STRING "KMyMoney - Personal Finances Manager")
0210     set_target_properties(kmymoney PROPERTIES MACOSX_BUNDLE_SHORT_VERSION_STRING "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
0211     set_target_properties(kmymoney PROPERTIES MACOSX_BUNDLE_BUNDLE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
0212     set_target_properties(kmymoney PROPERTIES MACOSX_BUNDLE_COPYRIGHT "© 2000-${CURRENT_YEAR} The KMyMoney Authors")
0213 endif()
0214 
0215 ########### install files ###############
0216 
0217 install(TARGETS kmymoney ${INSTALL_TARGETS_DEFAULT_ARGS})
0218 
0219 install(FILES ${_HEADERS}
0220   DESTINATION ${KDE_INSTALL_INCLUDEDIR}/kmymoney
0221   )
0222 install(FILES org.kde.kmymoney.desktop
0223   DESTINATION ${KDE_INSTALL_APPDIR}
0224   )
0225 install(FILES org.kde.kmymoney.appdata.xml
0226   DESTINATION ${KDE_INSTALL_METAINFODIR}
0227   )
0228 
0229 install(FILES x-kmymoney.xml
0230   DESTINATION ${KDE_INSTALL_MIMEDIR})
0231 
0232 #UPDATE_XDG_MIMETYPES(${XDG_MIME_INSTALL_DIR})
0233 
0234