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

0001 include(GenerateExportHeader)
0002 include(ECMGenerateHeaders)
0003 include(CMakePackageConfigHelpers)
0004 include(ECMSetupVersion)
0005 
0006 include_directories(
0007     ${CMAKE_CURRENT_BINARY_DIR}
0008 )
0009 
0010 ########### target alkimia-internal ###########
0011 
0012 set(alkimia_INTERNAL_SRCS
0013     alkapplication.cpp
0014     alkdateformat.cpp
0015     alkexception.cpp
0016     alknewstuffwidget.cpp
0017     alkonlinequoteprocess.cpp
0018     alkquoteitem.cpp
0019     alkquotereceiver.cpp
0020 )
0021 
0022 set(alkimia_INTERNAL_HEADERS
0023     alkapplication.h
0024     alkdateformat.h
0025     alkexception.h
0026     alknewstuffwidget.h
0027     alkonlinequoteprocess.h
0028     alkquoteitem.h
0029     alkquotereceiver.h
0030 )
0031 
0032 set(alkimia_INTERNAL_UI
0033 )
0034 
0035 ki18n_wrap_ui(alkimia_INTERNAL_SRCS ${alkimia_INTERNAL_UI} )
0036 add_library(alkimia-internal STATIC ${alkimia_INTERNAL_SRCS} ${alkimia_INTERNAL_HEADERS})
0037 if (QT_MAJOR_VERSION GREATER_EQUAL 5)
0038     list(APPEND ALKIMIA_INTERNAL_LIBS
0039         PRIVATE
0040         Qt${QT_MAJOR_VERSION}::DBus
0041         KF${QT_MAJOR_VERSION}::Completion
0042         KF${QT_MAJOR_VERSION}::CoreAddons
0043         KF${QT_MAJOR_VERSION}::I18n
0044     )
0045 endif()
0046 
0047 target_link_libraries(alkimia-internal PRIVATE
0048     ${ALKIMIA_INTERNAL_LIBS}
0049     ${KF_NEWSTUFF_LIB}
0050 )
0051 kde_target_enable_exceptions(alkimia-internal PUBLIC)
0052 
0053 ########### target alkimia ###########
0054 
0055 set(ALKIMIA_LIB_VERSION ${alkimia_VERSION})
0056 set(ALKIMIA_LIB_SOVERSION "${alkimia_VERSION_MAJOR}")
0057 
0058 set(alkimia_LIB_SRCS
0059     alkcompany.cpp
0060     alkenvironment.cpp
0061     alknewstuffengine.cpp
0062     alknewstuffstore.cpp
0063     alknewstuffwidget.cpp
0064     alkonlinequote.cpp
0065     alkonlinequote_p.cpp
0066     alkonlinequotesource.cpp
0067     alkonlinequotesprofile.cpp
0068     alkonlinequotesprofile_p.cpp
0069     alkonlinequotesprofilemanager.cpp
0070     alkonlinequoteswidget.cpp
0071     alkonlinequoteuploaddialog.cpp
0072     alkvalue.cpp
0073     alkutils.cpp
0074     alkwebpage.cpp
0075 )
0076 
0077 set(alkimia_LIB_HEADERS
0078     alkcompany.h
0079     alkenvironment.h
0080     alknewstuffengine.h
0081     alknewstuffstore.h
0082     alkonlinequote.h
0083     alkonlinequotesource.h
0084     alkonlinequotesprofile.h
0085     alkonlinequotesprofilemanager.h
0086     alkonlinequoteswidget.h
0087     alkwebpage.h
0088 )
0089 
0090 set(alkimia_LIB_PRIVATE_HEADERS
0091     alkonlinequote_p.h
0092     alkonlinequotesource_p.h
0093     alkonlinequotesprofile_p.h
0094     alkonlinequoteuploaddialog.h
0095     alkpushbutton.h
0096     alkutils.h
0097 )
0098 
0099 if(ENABLE_FINANCEQUOTE)
0100     list(APPEND alkimia_LIB_SRCS alkfinancequoteprocess.cpp)
0101     list(APPEND alkimia_LIB_HEADERS alkfinancequoteprocess.h)
0102 endif()
0103 
0104 set(alkimia_UI
0105     alkonlinequotedetails.ui
0106     alkonlinequotes.ui
0107     alkonlinequotesdebug.ui
0108     alkonlinequotesprofiledetails.ui
0109     alkonlinequotesprofiles.ui
0110     alkonlinequoteuploaddialog.ui
0111 )
0112 
0113 configure_file(
0114     ${CMAKE_CURRENT_SOURCE_DIR}/alkversion.h.in
0115     ${CMAKE_CURRENT_BINARY_DIR}/alkimia/alkversion.h
0116     IMMEDIATE
0117 )
0118 
0119 configure_file(
0120     ${CMAKE_CURRENT_SOURCE_DIR}/alkvalue.h.in
0121     ${CMAKE_CURRENT_BINARY_DIR}/alkimia/alkvalue.h
0122     IMMEDIATE
0123 )
0124 
0125 foreach(header ${alkimia_LIB_HEADERS})
0126     configure_file(
0127         ${CMAKE_CURRENT_SOURCE_DIR}/${header}
0128         ${CMAKE_CURRENT_BINARY_DIR}/alkimia/${header}
0129         COPYONLY
0130     )
0131 endforeach()
0132 
0133 ki18n_wrap_ui(alkimia_LIB_SRCS ${alkimia_UI} )
0134 add_library(alkimia ${alkimia_LIB_SRCS} ${alkimia_LIB_HEADERS} ${alkimia_LIB_PRIVATE_HEADERS})
0135 
0136 kde_target_enable_exceptions(alkimia PUBLIC)
0137 target_link_libraries(alkimia PRIVATE
0138     ${QT_NETWORK_LIB}
0139     ${KF_NETWORK_LIB}
0140     ${KF_NEWSTUFF_LIB}
0141     KF${QT_MAJOR_VERSION}::Completion
0142     KF${QT_MAJOR_VERSION}::I18n
0143     KF${QT_MAJOR_VERSION}::IconThemes
0144     KF${QT_MAJOR_VERSION}::TextWidgets
0145     PUBLIC
0146     KF${QT_MAJOR_VERSION}::ConfigCore
0147 )
0148 
0149 add_definitions(-DTRANSLATION_DOMAIN=\"alkimia\")
0150 
0151 target_include_directories(alkimia
0152     INTERFACE
0153         ${MP_INCLUDE_DIR}
0154         $<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}/alkimia/${ALKIMIA_INCLUDE_SUFFIX}>
0155 )
0156 
0157 target_link_libraries(alkimia
0158     PRIVATE
0159     alkimia-internal
0160     Qt${QT_MAJOR_VERSION}::Core
0161     PUBLIC
0162     ${MP_LIBRARIES}
0163     ${QT_BROWSER_LIB}
0164 )
0165 
0166 if(QT_MAJOR_VERSION GREATER_EQUAL 5 AND MSVC AND BUILD_WITH_WEBKIT)
0167     message(WARNING "Applying fix for broken Qt WebKit package (see https://phabricator.kde.org/T10146 for details)")
0168     target_link_libraries(alkimia
0169         PRIVATE
0170         Qt${QT_MAJOR_VERSION}::Test
0171     )
0172 endif()
0173 
0174 if (NOT INCLUDE_INSTALL_DIR)
0175     set(INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR})
0176 endif()
0177 install(
0178     DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/alkimia
0179     DESTINATION ${INCLUDE_INSTALL_DIR}/alkimia/${ALKIMIA_INCLUDE_SUFFIX}
0180     COMPONENT Devel
0181 )
0182 
0183 generate_export_header(alkimia BASE_NAME alk EXPORT_FILE_NAME alkimia/alk_export.h)
0184 
0185 if(BUILD_SHARED_LIBS)
0186     if(WIN32)
0187         set_target_properties(alkimia PROPERTIES SUFFIX "-${ALKIMIA_LIB_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}")
0188     else()
0189         set_target_properties(alkimia PROPERTIES VERSION ${ALKIMIA_LIB_VERSION} SOVERSION ${ALKIMIA_LIB_SOVERSION})
0190     endif()
0191 endif()
0192 set_target_properties(alkimia PROPERTIES OUTPUT_NAME alkimia${ALKIMIA_LIB_SUFFIX})
0193 set(INCLUDE_INSTALL_DIR include/alkimia/${ALKIMIA_INCLUDE_SUFFIX})
0194 
0195 if(BUILD_SHARED_LIBS)
0196     set(alkimia_export_targets alkimia)
0197 else()
0198     set(alkimia_export_targets alkimia alkimia-internal)
0199 endif()
0200 
0201 install(TARGETS ${alkimia_export_targets}
0202     EXPORT  alkimiaTargets
0203     ${INSTALL_TARGETS_DEFAULT_ARGS}
0204 )
0205 
0206 if(QT_MAJOR_VERSION LESS 5)
0207     if(WIN32)
0208         set(KDE_INSTALL_KNSRCDIR ${SHARE_INSTALL_DIR}/config)
0209     else()
0210         set(KDE_INSTALL_KNSRCDIR ${SHARE_INSTALL_DIR}/kde4/config)
0211     endif()
0212     set(APPDATA_INSTALL_DIR ${SHARE_INSTALL_DIR}/kde4/apps)
0213     set(FQ_LOCAL_INSTALL_PATH ${CMAKE_BINARY_DIR}/share/apps/alkimia${ALKIMIA_PATH_SUFFIX}/misc)
0214 else()
0215     if(KF5NewStuff_VERSION VERSION_GREATER "5.56.0")
0216     else()
0217         set(KDE_INSTALL_KNSRCDIR ${CONFIG_INSTALL_DIR})
0218     endif()
0219     set(APPDATA_INSTALL_DIR ${SHARE_INSTALL_DIR})
0220     set(FQ_LOCAL_INSTALL_PATH ${CMAKE_BINARY_DIR}/share/alkimia${ALKIMIA_PATH_SUFFIX}/misc)
0221 endif()
0222 
0223 install(FILES
0224     alkimia-quotes.knsrc
0225     kmymoney-quotes.knsrc
0226     skrooge-quotes.knsrc
0227     DESTINATION ${KDE_INSTALL_KNSRCDIR}
0228 )
0229 
0230 # install perl script in expected location of build dir
0231 # KDE4: set KDEHOME to build dir
0232 # KF5: ???
0233 if(ENABLE_FINANCEQUOTE)
0234     make_directory(${FQ_LOCAL_INSTALL_PATH})
0235     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/financequote.pl ${FQ_LOCAL_INSTALL_PATH}/financequote.pl IMMEDIATE COPYONLY)
0236     install(PROGRAMS financequote.pl
0237       DESTINATION ${APPDATA_INSTALL_DIR}/alkimia${ALKIMIA_PATH_SUFFIX}/misc
0238     )
0239 endif()
0240 
0241 if (NOT WIN32)
0242    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libalkimia.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libalkimia${ALKIMIA_PATH_SUFFIX}.pc IMMEDIATE @ONLY)
0243 endif(NOT WIN32)
0244 
0245 ########### create package configuration file ###########
0246 
0247 ecm_setup_version(${alkimia_VERSION} VARIABLE_PREFIX ALKIMIA
0248     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/LibAlkimia${ALKIMIA_PATH_SUFFIX}ConfigVersion.cmake"
0249     COMPATIBILITY SameMajorVersion
0250 )
0251 
0252 configure_package_config_file(
0253     "${CMAKE_CURRENT_SOURCE_DIR}/LibAlkimiaConfig.cmake.in"
0254     "${CMAKE_CURRENT_BINARY_DIR}/LibAlkimia${ALKIMIA_PATH_SUFFIX}Config.cmake"
0255     INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0256 )
0257 
0258 ########### install files ###############
0259 
0260 export(TARGETS ${alkimia_export_targets}
0261     FILE "${CMAKE_CURRENT_BINARY_DIR}/LibAlkimia${ALKIMIA_PATH_SUFFIX}Targets.cmake"
0262     NAMESPACE Alkimia::
0263 )
0264 
0265 install(EXPORT alkimiaTargets
0266     FILE LibAlkimia${ALKIMIA_PATH_SUFFIX}Targets.cmake
0267     NAMESPACE Alkimia::
0268     DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0269 )
0270 
0271 install(FILES
0272     "${CMAKE_CURRENT_BINARY_DIR}/LibAlkimia${ALKIMIA_PATH_SUFFIX}Config.cmake"
0273     "${CMAKE_CURRENT_BINARY_DIR}/LibAlkimia${ALKIMIA_PATH_SUFFIX}ConfigVersion.cmake"
0274     "../cmake/modules/Find${MP_CMAKE_MODULE}.cmake"
0275     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0276     COMPONENT Devel
0277 )
0278 
0279 if (NOT WIN32)
0280     if (LIB_INSTALL_DIR)
0281         install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libalkimia${ALKIMIA_PATH_SUFFIX}.pc
0282             DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
0283     else()
0284         install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libalkimia${ALKIMIA_PATH_SUFFIX}.pc
0285             DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
0286     endif()
0287 endif(NOT WIN32)
0288 
0289 ########### documentation ###################
0290 
0291 if(DOXYGEN_FOUND)
0292     set(APIDOC_DIR ${CMAKE_CURRENT_BINARY_DIR}/apidocs)
0293 
0294     make_directory(${APIDOC_DIR})
0295 
0296     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libalkimia.doxygen.in ${CMAKE_CURRENT_BINARY_DIR}/libalkimia.doxygen IMMEDIATE)
0297 
0298     add_custom_target(libalkimia_apidoc ${DOXYGEN} ${CMAKE_CURRENT_BINARY_DIR}/libalkimia.doxygen)
0299 endif(DOXYGEN_FOUND)
0300