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