###################### # # Copyright (C) 2010 - 2011 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 . # ###################### SET(QT_USE_QTXML TRUE) SET(QT_USE_QTXMLPATTERNS TRUE) SET(QT_USE_QTSQL TRUE) SET(QT_USE_QTNETWORK TRUE) IF(L10N_DE) SET(libengsas_TS ${libengsas_TS} lang/libengsas-core_de.ts) ENDIF(L10N_DE) IF(L10N_EN) SET(libengsas_TS ${libengsas_TS} lang/libengsas-core_en.ts) ENDIF(L10N_EN) IF(L10N_FR) SET(libengsas_TS ${libengsas_TS} lang/libengsas-core_fr.ts) ENDIF(L10N_FR) SET(libengsas_QRC icons/iconset.qrc ) SET(libengsas_UI internal/esearchexternalapp.ui esettingsdialog.ui internal/emimetypesettingswidget.ui internal/esettingsgeneral.ui edependenciesdialog.ui esetupwizard.ui esqllogin.ui edbupdatewidget.ui edbbackup.ui edbsettings.ui eaboutdialog.ui eupdatenoticedialog.ui eupdatenoticesettings.ui emodulestatedialog.ui emodulestatewidget.ui internal/efileservicesettings.ui edbsettingswidget.ui ) SET(libengsas_CPP # base classes eglobal.h elibrary.cpp eversion.cpp eobject.cpp epart.h internal/esettings.cpp eabstractitemmodel.cpp esettingsmodel.cpp esettingsmodelitem.cpp internal/emimemodelitem.h internal/emimeprogram.cpp internal/emimetype.cpp internal/emimetypemodel.cpp internal/esearchexternalapp.cpp eopenfileexternal.cpp internal/emimetypesettingswidget.cpp internal/esettingsgeneral.cpp ehelpcenter.cpp ehelpcentersetup.h exmlitem.cpp exmlmodel.cpp exmlparseritem.cpp edependencyitem.cpp edependencymodel.cpp ecmdlineargs.cpp ecmdlineoption.cpp edependenciesdialog.cpp eaboutdialog.cpp eaboutperson.cpp eaboutmodel.cpp esetupwizard.cpp esetupwizardobject.cpp eupdatenoticedialog.cpp eupdatenoticesettings.cpp internal/version.cpp epluginloader.h emodulelistwidgetitem.cpp enetworkaccessmanager.cpp # gui elements (available also at the DesignerPlugin) eaction.cpp edialog.cpp efiledialog.cpp internal/efiledialogprivate.cpp ewidget.cpp emainwindow.cpp epartmainwindow.cpp epushbutton.cpp elistaddbutton.cpp elistremovebutton.cpp esearchbutton.cpp esettingswidget.cpp esettingsdialog.cpp etableview.cpp esetupwizardwidget.cpp emodulestatedialog.cpp emodulestatewidget.cpp etoolbar.cpp escaledimage.cpp # database stuff edelegateforeignkey.cpp esqlinit.cpp esqltable.cpp esqlfield.cpp edbupdatewidget.cpp esetupwizarddbdump.cpp esqllogin.cpp esqldatabase.cpp edbbackup.cpp edbbackupdialog.cpp edbsettings.cpp esetupwizarddb.cpp equerythread.cpp internal/equeryworker.cpp edbsettingswidget.cpp # file management efileinfo.cpp efileserviceplugin.h efileservice.cpp internal/efileservicesettings.cpp ) INCLUDE_DIRECTORIES( ${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/internal ${CMAKE_CURRENT_SOURCE_DIR}/internal ) INCLUDE(${QT_USE_FILE}) ADD_DEFINITIONS(-DE_BUILD_CORE_LIB) SET(LINK_LIBRARIES ${QT_LIBRARIES}) IF(BINDINGS_KDE) INCLUDE_DIRECTORIES(${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR}) SET(LINK_LIBRARIES ${LINK_LIBRARIES} ${KDE_KDECORE_LIBS} ${KDE4_KPARTS_LIBS} ${KDE4_KIO_LIBS}) ENDIF(BINDINGS_KDE) SET(LIBOUTDIR ${LIBRARY_OUTPUT_PATH}) SET(SHAREDIR ${share_DIR}) CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/elibconfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/elibconfig.h ) CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/eversion.h.in ${CMAKE_CURRENT_BINARY_DIR}/eversion.h ) QT4_AUTOMOC(${libengsas_CPP}) QT4_WRAP_UI(libengsas_UI_H ${libengsas_UI}) QT4_ADD_TRANSLATION(libengsas_TRANS ${libengsas_TS}) # -binary is not working # QT4_ADD_RESOURCES(RCCS "${QRCS}" OPTIONS "-binary") QT4_ADD_RESOURCES(libengsas_RCCS ${libengsas_QRC}) ADD_LIBRARY(libengsas SHARED ${libengsas_CPP} ${libengsas_UI_H} ${libengsas_TRANS} ${libengsas_RCCS} ) TARGET_LINK_LIBRARIES(libengsas ${LINK_LIBRARIES} ) IF(WIN32) SET_TARGET_PROPERTIES(libengsas PROPERTIES OUTPUT_NAME "engsas" VERSION ${${PROJECT_NAME}_VERSION}) INSTALL(TARGETS libengsas RUNTIME DESTINATION ${LIB_INSTALL_DIR} COMPONENT library ) ELSE(WIN32) SET_TARGET_PROPERTIES(libengsas PROPERTIES OUTPUT_NAME "engsas" SOVERSION ${TARGET_VERSION_MAJOR}.${TARGET_VERSION_MINOR}.${${PROJECT_NAME}_PATCH_LEVEL}) INSTALL(TARGETS libengsas LIBRARY DESTINATION ${LIB_INSTALL_DIR} COMPONENT library ) ENDIF(WIN32) INSTALL( FILES ${libengsas_TRANS} DESTINATION ${qm_DIR} COMPONENT library ) # INSTALL( # FILES depenencies.xml # RENAME libengsas.xml # DESTINATION ${share_DIR} # COMPONENT library # ) IF(WIN32) # Qt translation files # en has no translation files IF(L10N_DE) FILE(GLOB pack_qt_translations_de "${QT_BINARY_DIR}/../translations/*_de.qm") INSTALL( FILES ${pack_qt_translations_de} DESTINATION ${qm_DIR} COMPONENT library ) ENDIF(L10N_DE) IF(L10N_FR) FILE(GLOB pack_qt_translations_fr "${QT_BINARY_DIR}/../translations/*_fr.qm") INSTALL( FILES ${pack_qt_translations_fr} DESTINATION ${qm_DIR} COMPONENT library ) ENDIF(L10N_FR) # 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_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_mingwm10 mingwm10.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_mingwm10} ${pack_libgcc_s_dw} DESTINATION ${bin_DIR} COMPONENT qtlibs ) ENDIF(WIN32) IF(BUILD_DEV) FILE(GLOB header "${CMAKE_CURRENT_SOURCE_DIR}/*.h") INSTALL( FILES ${header} "${CMAKE_CURRENT_BINARY_DIR}/eversion.h" DESTINATION ${include_DIR}/core COMPONENT headerfiles ) # Install FindLibEngsas.cmake SET(LIBENGSAS_LIBRARY_DIR "\${LIBENGSAS_LIBRARY_DIR}") SET(PC_LIBENGSAS_CFLAGS_OTHER "\${PC_LIBENGSAS_CFLAGS_OTHER}") SET(PC_LIBENGSAS_LIBDIR "\${PC_LIBENGSAS_LIBDIR}") SET(PC_LIBENGSAS_LIBRARY_DIRS "\${PC_LIBENGSAS_LIBRARY_DIRS}") SET(PC_LIBENGSAS_INCLUDEDIR "\${PC_LIBENGSAS_INCLUDEDIR}") SET(PC_LIBENGSAS_INCLUDE_DIRS "\${PC_LIBENGSAS_INCLUDE_DIRS}") SET(LIBENGSAS_TESTING_LIBRARY_DIR "\${LIBENGSAS_LIBRARY_DIR}") SET(PC_LIBENGSAS_TESTING_CFLAGS_OTHER "\${PC_LIBENGSAS_CFLAGS_OTHER}") SET(PC_LIBENGSAS_TESTING_LIBDIR "\${PC_LIBENGSAS_LIBDIR}") SET(PC_LIBENGSAS_TESTING_LIBRARY_DIRS "\${PC_LIBENGSAS_LIBRARY_DIRS}") SET(PC_LIBENGSAS_TESTING_INCLUDEDIR "\${PC_LIBENGSAS_INCLUDEDIR}") SET(PC_LIBENGSAS_TESTING_INCLUDE_DIRS "\${PC_LIBENGSAS_INCLUDE_DIRS}") CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/FindLibEngsas.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindLibEngsas.cmake ) INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/FindLibEngsas.cmake DESTINATION ${find_cmake_DIR} COMPONENT divfinding ) # 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/engsas") SET(lib_flag "\${libdir}") SET(include_flag "\${includedir}") SET(LIBNAME engsas) SET(REQUIRES "QtCore >= 4, QtGui >= 4, QtXml >= 4, QtXmlPatterns >= 4") # KDE has no pkgconfig .pc file # IF(BINDINGS_KDE) # SET(REQUIRES "${REQUIRES}, KDELibs >= 4") # ENDIF(BINDINGS_KDE) CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/libengsas.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libengsas.pc ) # Install pkgconfig file INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/libengsas.pc DESTINATION ${pkgconfig_DIR} COMPONENT devfinding ) ENDIF(BUILD_DEV)