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