###################### # # Meganizer - Media Organzier is a media management software # Copyright (C) 2010 - 2015 EngSaS - Engineering Solutions and Services Langenbach. All rights reserved. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ###################### # enable all QT-Stuff we need # see http://cmake.org/cmake/help/cmake2.6docs.html#module:FindQt4 for a complete list SET(QT_USE_QTSQL TRUE) SET(QT_USE_QTNETWORK TRUE) SET(QT_USE_QTXML TRUE) IF(L10N_DE) SET(libmeganizer_TS ${libmeganizer_TS} lang/libmeganizer_de.ts) ENDIF(L10N_DE) IF(L10N_EN) SET(libmeganizer_TS ${libmeganizer_TS} lang/libmeganizer_en.ts) ENDIF(L10N_EN) IF(L10N_FR) SET(libmeganizer_TS ${libmeganizer_TS} lang/libmeganizer_fr.ts) ENDIF(L10N_FR) SET(libmeganizer_UI detailswidgetnamedesc.ui internal/editmanufacturersdetailswidget.ui internal/editmaterialpersonsdetailswidget.ui edituserdetailswidget.ui internal/connectmediasearch.ui connectmediasearchsettings.ui addmedium.ui internal/selectexportformat.ui mediumpricewidget.ui mediumownerwidget.ui mediumgiftwidget.ui mediumminwidget.ui mediumkeywordwidget.ui mediumparentswidget.ui mediumfileswidget.ui editmedium.ui progressstatuswidget.ui ) # all files which must not be mocced SET(libmeganizer_CPP delegateuser.cpp medium.cpp mediamodel.cpp materialpersonsmodel.cpp materialperson.cpp editdialog.cpp detailswidget.cpp detailswidgetnamedesc.cpp editgenres.cpp editmanufacturers.cpp internal/editmanufacturersdetailswidget.cpp editmaterialpersons.cpp internal/editmaterialpersonsdetailswidget.cpp editroles.cpp edituserdetailswidget.cpp edituser.cpp internal/connectmediasearch.cpp connectmediasearchdialog.cpp connectmediasearchsettings.cpp addmedium.cpp mediumexport.cpp internal/selectexportformat.cpp buydata.cpp mediumeditwidget.cpp mediumsimpleeditwidget.cpp mediumtitlewidget.cpp mediummanufacturerwidget.cpp mediumgenrewidget.cpp mediumminwidget.cpp mediumwishwidget.cpp mediumimagewidget.cpp mediumpersonswidget.cpp mediumdescriptionwidget.cpp mediumliteraturewidget.cpp mediumgiftwidget.cpp mediumpricewidget.cpp mediumevaluationwidget.cpp mediumloanwidget.cpp mediumloandialog.cpp mediumpubdateeditwidget.cpp mediumchildswidget.cpp mediumparentswidget.cpp mediumkeywordwidget.cpp mediumownerwidget.cpp mediumownerdialog.cpp mediumfileswidget.cpp editmedium.cpp internal/loanitem.cpp loanmodel.cpp searchdetailswidget.cpp person.cpp personsmodel.cpp sqlconstraint.cpp mediumwidget.cpp delegateshoppingcart.cpp minvalidator.cpp internal/mediummin.cpp editmintypes.cpp minmodel.cpp internal/delegatemin.cpp progressstatuswidget.cpp internal/delegateloanstati.cpp mpluginloader.h internal/delegatematerialtypes.cpp manufacturer.cpp manufacturerprefix.cpp manufacturermodelrootitem.cpp manufacturermodel.cpp ) # include with QT_USE selected library parts INCLUDE(${QT_USE_FILE}) SET(LINK_LIBRARIES ${QT_LIBRARIES} ${LIBENGSAS_LIBRARIES} ) INCLUDE_DIRECTORIES( ${LIBENGSAS_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/internal ${CMAKE_CURRENT_SOURCE_DIR}/internal ) IF(!${BUILD_DEBUG}) ADD_DEFINITIONS(-DQT_NO_DEBUG) ENDIF() ADD_DEFINITIONS(-DBUILD_DLL) SET(LIBOUTDIR ${LIBRARY_OUTPUT_PATH}) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libmeganizerconfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/libmeganizerconfig.h) SET(depends_XML ${CMAKE_BINARY_DIR}/depends/libmeganizer.xml) CONFIGURE_FILE(dependencies.xml.in ${depends_XML}) # make *.h out of *.ui QT4_WRAP_UI(libmeganizer_UI_H ${libmeganizer_UI}) # moc classes QT4_AUTOMOC(${libmeganizer_CPP}) # add translations QT4_ADD_TRANSLATION(libmeganizer_TRANS ${libmeganizer_TS}) ADD_LIBRARY(libmeganizer SHARED ${libmeganizer_CPP} ${libmeganizer_UI_H} ${libmeganizer_TRANS} ) TARGET_LINK_LIBRARIES(libmeganizer ${LINK_LIBRARIES} ) IF(WIN32) SET_TARGET_PROPERTIES(libmeganizer PROPERTIES OUTPUT_NAME "meganizer" VERSION ${${PROJECT_NAME}_VERSION}) INSTALL(TARGETS libmeganizer RUNTIME DESTINATION ${LIB_INSTALL_DIR} COMPONENT library ) ELSE(WIN32) SET_TARGET_PROPERTIES(libmeganizer PROPERTIES OUTPUT_NAME "meganizer" SOVERSION ${TARGET_VERSION_MAJOR}.${TARGET_VERSION_MINOR}) INSTALL(TARGETS libmeganizer LIBRARY DESTINATION ${LIB_INSTALL_DIR} COMPONENT library ) ENDIF(WIN32) # The COMPONENT option only defines the internal belonging of the INSTALL'ed thing INSTALL( FILES ${libmeganizer_TRANS} DESTINATION ${qm_DIR} COMPONENT library ) INSTALL( FILES ${depends_XML} DESTINATION ${depends_DIR} COMPONENT library ) FILE(GLOB pack_libengsas_dependencies "${LIBENGSAS_SHARE_DIR}/depends/*.xml") INSTALL(FILES ${pack_libengsas_dependencies} DESTINATION ${depends_DIR} COMPONENT libengsaspack) IF(WIN32) # Qt and LibEngsas translation files # en has no translation files IF(L10N_DE) # Qt FILE(GLOB pack_qt_translations_de "${QT_BINARY_DIR}/../translations/qt_*_de.qm") INSTALL( FILES ${pack_qt_translations_de} DESTINATION ${qm_DIR} COMPONENT library ) # LibEngsas FILE(GLOB pack_libengsas_translations_de "${LIBENGSAS_LIBRARY_DIR}/lang/e*_de.qm" "${LIBENGSAS_LIBRARY_DIR}/lang/libengsas*_de.qm") INSTALL( FILES ${pack_libengsas_translations_de} DESTINATION ${qm_DIR} COMPONENT libengsaspack ) ENDIF(L10N_DE) IF(L10N_FR) # Qt FILE(GLOB pack_qt_translations_fr "${QT_BINARY_DIR}/../translations/qt_*_fr.qm") INSTALL( FILES ${pack_qt_translations_de} DESTINATION ${qm_DIR} COMPONENT library ) # LibEngsas FILE(GLOB pack_libengsas_translations_fr "${LIBENGSAS_LIBRARY_DIR}/lang/e*_fr.qm" "${LIBENGSAS_LIBRARY_DIR}/lang/libengsas*_fr.qm") INSTALL( FILES ${pack_libengssas_translations_fr} DESTINATION ${qm_DIR} COMPONENT libengsaspack ) ENDIF(L10N_FR) # LibEngsas and efileservices INSTALL( FILES ${LIBENGSAS_LIBRARIES} ${LIBENGSAS_CHARTS_LIBRARIES} ${LIBENGSAS_EPARTEXE} DESTINATION ${bin_DIR} COMPONENT libengsaspack ) FILE(GLOB pack_libengsas_efileservices "${LIBENGSAS_LIBRARY_DIR}/efileservices/*.dll") INSTALL(FILES ${pack_libengsas_efileservices} DESTINATION ${bin_DIR}/efileservices COMPONENT libengsaspack) FILE(GLOB pack_libengsas_resources "${LIBENGSAS_LIBRARY_DIR}/rcc/*.rcc") INSTALL(FILES ${pack_libengsas_resources} DESTINATION ${rcc_DIR} COMPONENT libengsaspack) # Qt itself FIND_FILE(pack_qtcore QtCore4.dll PATHS ${QT_BINARY_DIR} NO_DEFAULT_PATH) FIND_FILE(pack_qtgui QtGui4.dll PATHS ${QT_BINARY_DIR} NO_DEFAULT_PATH) FIND_FILE(pack_qtnetwork QtNetwork4.dll PATHS ${QT_BINARY_DIR} NO_DEFAULT_PATH) FIND_FILE(pack_qtsql QtSql4.dll PATHS ${QT_BINARY_DIR} NO_DEFAULT_PATH) FIND_FILE(pack_libmysql libmysql.dll PATHS ${QT_BINARY_DIR} NO_DEFAULT_PATH) FIND_FILE(pack_qtxml QtXml4.dll PATHS ${QT_BINARY_DIR} NO_DEFAULT_PATH) FIND_FILE(pack_qtxml_patterns QtXmlPatterns4.dll PATHS ${QT_BINARY_DIR} NO_DEFAULT_PATH) FIND_FILE(pack_libgcc_s_dw libgcc_s_dw2-1.dll PATHS ${QT_BINARY_DIR} NO_DEFAULT_PATH) INSTALL( FILES ${pack_qtcore} ${pack_qtgui} ${pack_qtnetwork} ${pack_qtsql} ${pack_libmysql} ${pack_qtxml} ${pack_qtxml_patterns} ${pack_libgcc_s_dw} DESTINATION ${bin_DIR} COMPONENT qtlibs ) # Qt Database plugins FIND_FILE(pack_qsqlmysql qsqlmysql4.dll PATHS ${QT_BINARY_DIR}/../plugins/sqldrivers NO_DEFAULT_PATH) INSTALL( FILES ${pack_qsqlmysql} DESTINATION ${bin_DIR}/sqldrivers COMPONENT qtlibs ) FILE(GLOB pack_libmeganizermysql_FILES "${3rd_LIBS}/MySQL/*.dll") INSTALL( FILES ${pack_libmeganizermysql_FILES} DESTINATION ${bin_DIR} COMPONENT mysqllibs ) # Qt Crypto plugin (QCA2) FIND_FILE(pack_qca_qca libqca.dll PATHS ${QCA2_LIBRARY_DIR}/bin NO_DEFAULT_PATH) FIND_FILE(pack_qca_qcatool qcatool2.exe PATHS ${QCA2_LIBRARY_DIR}/bin NO_DEFAULT_PATH) FIND_FILE(pack_qca_ssleay ssleay32.dll PATHS "C:/Windows/System32" NO_DEFAULT_PATH) FIND_FILE(pack_qca_libeay libeay32.dll PATHS "C:/Windows/System32" NO_DEFAULT_PATH) INSTALL( FILES ${pack_qca_qca} ${pack_qca_qcatool} ${pack_qca_ssleay} ${pack_qca_libeay} DESTINATION ${bin_DIR} COMPONENT qcalibs ) FIND_FILE(pack_qca_osslplugin libqca-ossl.dll PATHS ${QT_BINARY_DIR}/../plugins/crypto NO_DEFAULT_PATH) INSTALL( FILES ${pack_qca_osslplugin} DESTINATION ${bin_DIR}/crypto COMPONENT qcalibs ) ENDIF(WIN32) IF(BUILD_DEV) FILE(GLOB header "${CMAKE_CURRENT_SOURCE_DIR}/*.h") INSTALL( FILES ${header} DESTINATION ${include_DIR} COMPONENT header ) # Install FindLibEngsas.cmake SET(LIBMEGANIZER_LIBRARY_DIR "\${LIBMEGANIZER_LIBRARY_DIR}") SET(PC_LIBMEGANIZER_CFLAGS_OTHER "\${PC_LIBMEGANIZER_CFLAGS_OTHER}") SET(PC_LIBMEGANIZER_LIBDIR "\${PC_LIBMEGANIZER_LIBDIR}") SET(PC_LIBMEGANIZER_LIBRARY_DIRS "\${PC_LIBMEGANIZER_LIBRARY_DIRS}") SET(PC_LIBMEGANIZER_INCLUDEDIR "\${PC_LIBMEGANIZER_INCLUDEDIR}") SET(PC_LIBMEGANIZER_INCLUDE_DIRS "\${PC_LIBMEGANIZER_INCLUDE_DIRS}") SET(PC_LIBMEGANIZER_TEST_LIBDIR "\${PC_LIBMEGANIZER_TEST_LIBDIR}") SET(PC_LIBMEGANIZER_TEST_LIBRARY_DIRS "\${PC_LIBMEGANIZER_TEST_LIBRARY_DIRS}") SET(PC_LIBMEGANIZER_TEST_INCLUDEDIR "\${PC_LIBMEGANIZER_TEST_INCLUDEDIR}") SET(PC_LIBMEGANIZER_TEST_INCLUDE_DIRS "\${PC_LIBMEGANIZER_TEST_INCLUDE_DIRS}") SET(LIBMEGANIZER_TEST_INCLUDE_DIR "\${LIBMEGANIZER_TEST_INCLUDE_DIR}") SET(LIBMEGANIZER_INCLUDE_DIR "\${LIBMEGANIZER_INCLUDE_DIR}") SET(LIBMEGANIZER_TEST_LIBRARIES "\${LIBMEGANIZER_TEST_LIBRARIES}") SET(LIBMEGANIZER_LIBRARIES "\${LIBMEGANIZER_LIBRARIES}") CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/FindLibMeganizer.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindLibMeganizer.cmake ) INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/FindLibMeganizer.cmake DESTINATION ${find_cmake_DIR} COMPONENT header ) # CMake overrides ${var} during configuration, therefore we insert it with cmake SET(prefix ${CMAKE_INSTALL_PREFIX}) SET(exec_prefix "\${prefix}") SET(libdir "\${exec_prefix}/lib") SET(includedir "\${prefix}/include/meganizer") SET(lib_flag "\${libdir}") SET(include_flag "\${includedir}") SET(LIBNAME meganizer) SET(REQUIRES "QtCore >= 4, QtGui >= 4, QtNetwork >= 4, QtSql >= 4, libengsas") CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/libmeganizer.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libmeganizer.pc ) # Install pkgconfig file INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/libmeganizer.pc DESTINATION ${pkgconfig_DIR} COMPONENT header ) ENDIF(BUILD_DEV)