###################### # # 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 . # ###################### # @TODO Desktop entry with NSIS # @TODO Schnellstartleisten-Eintrag mit NSIS cmake_minimum_required(VERSION 2.6) # Extending the Module path with the local module path SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ) PROJECT(meganizer) SET(TARGET_VERSION_MAJOR 0 ) SET(TARGET_VERSION_MINOR 5 ) SET(${PROJECT_NAME}_PATCH_LEVEL 0 ) SET(${PROJECT_NAME}_RELEASE_CANDIDATE 0 ) IF(${${PROJECT_NAME}_RELEASE_CANDIDATE} GREATER 0) SET(${PROJECT_NAME}_VERSION "${TARGET_VERSION_MAJOR}.${TARGET_VERSION_MINOR}.${${PROJECT_NAME}_PATCH_LEVEL}-rc${${PROJECT_NAME}_RELEASE_CANDIDATE}" ) ELSE(${${PROJECT_NAME}_RELEASE_CANDIDATE} GREATER 0) SET(${PROJECT_NAME}_VERSION "${TARGET_VERSION_MAJOR}.${TARGET_VERSION_MINOR}.${${PROJECT_NAME}_PATCH_LEVEL}" ) ENDIF(${${PROJECT_NAME}_RELEASE_CANDIDATE} GREATER 0) SET(VERSION "${${PROJECT_NAME}_VERSION}") SET(BUILD_DEBUG_WANTED ${BUILD_DEBUG}) SET(BUILD_PACKAGE_WANTED ${BUILD_PACKAGE}) SET(BUILD_DEV_WANTED ${BUILD_DEV}) SET(BUILD_TESTING_WANTED ${BUILD_TESTING}) SET(WITH_HANDBOOK_WANTED ${WITH_HANDBOOK}) SET(WITH_ALL_PLUGINS_WANTED ${WITH_ALL_PLUGINS}) SET(WITH_BOOKS_WANTED ${WITH_BOOKS}) SET(WITH_MUSIC_WANTED ${WITH_MUSIC}) SET(WITH_MOVIES_WANTED ${WITH_MOVIES}) SET(WITH_MAGAZINES_WANTED ${WITH_MAGAZINES}) SET(WITH_AMAZON_WANTED ${WITH_AMAZON}) SET(L10N_ALL_WANTED ${L10N_ALL}) SET(L10N_DE_WANTED ${L10N_DE}) SET(L10N_EN_WANTED ${L10N_EN}) SET(L10N_FR_WANTED ${L10N_FR}) SET(WITH_ZBAR_WANTED ${WITH_ZBAR}) SET(WITH_API_DOCS_WANTED ${WITH_API_DOCS}) INCLUDE(CTest) OPTION(BUILD_DEBUG "Build in debug mode" ON) OPTION(BUILD_PACKAGE "Build for packaging" OFF) # to enable library symlinks and header install turn this ON OPTION(BUILD_DEV "Build all stuff to develope based on this package" OFF) # OPTION(BUILD_TESTS "Build test cases" OFF) OPTION(WITH_HANDBOOK "Build online documentation" ON) OPTION(WITH_API_DOCS "Generate API documentation" OFF) # disable debug mode, when building package IF(BUILD_PACKAGE) IF(BUILD_DEBUG) MESSAGE("warning: Disabled Debug mode, because Packagemode succeed over BUILD_DEBUG") SET(BUILD_DEBUG OFF) ENDIF(BUILD_DEBUG) IF(BUILD_DEV) SET(WITH_API_DOCS ON) ENDIF(BUILD_DEV) ENDIF(BUILD_PACKAGE) # set cmake build type according the selected BUILD_DEBUG mode IF(BUILD_DEBUG) SET(CMAKE_BUILD_TYPE Debug) ELSE(BUILD_DEBUG) MESSAGE("Building Release Mode") SET(CMAKE_BUILD_TYPE Release) ENDIF(BUILD_DEBUG) ADD_DEFINITIONS(${QT_DEFINITIONS}) # Set the same linker and compiler flags as KDE uses, because they are much stronger IF(NOT APPLE) SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") ENDIF(NOT APPLE) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-exceptions -DQT_NO_EXCEPTIONS -fno-check-new -fno-common") IF(NOT WIN32 AND NOT APPLE) SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--fatal-warnings -lc") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ansi") ENDIF(NOT WIN32 AND NOT APPLE) # if debug mode is enabled, we also enable coverage tests IF(BUILD_DEBUG) SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fprofile-arcs -ftest-coverage") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") ENDIF(BUILD_DEBUG) OPTION(WITH_ALL_PLUGINS "Build all supported plugins" ON) IF(WITH_ALL_PLUGINS) SET(WITH_BOOKS ON) SET(WITH_MUSIC ON) SET(WITH_MOVIES ON) SET(WITH_MAGAZINES ON) SET(WITH_AMAZON ON) ELSE(WITH_ALL_PLUGINS) OPTION(WITH_BOOKS "Build Books media plugin" ON) OPTION(WITH_MUSIC "Build Music media plugin" ON) OPTION(WITH_MOVIES "Build Movies media plugin" ON) OPTION(WITH_MAGAZINES "Build Mgazines media plugin" ON) OPTION(WITH_AMAZON "Build Amazon plugin" ON) ENDIF(WITH_ALL_PLUGINS) ###################### # # Decide what MINValidatorPlugins are needed # ###################### IF(WITH_BOOKS) SET(MIN_VALIDATOR_ISBN ON) ENDIF(WITH_BOOKS) IF(WITH_MUSIC OR WITH_MOVIES) SET(MIN_VALIDATOR_UPC ON) ENDIF(WITH_MUSIC OR WITH_MOVIES) IF(WITH_MAGAZINES) SET(MIN_VALIDATOR_ISSN ON) ENdIF(WITH_MAGAZINES) ###################### # # Decide if we can build amazon really # ###################### IF(WITH_AMAZON) FIND_PACKAGE(QCA2) IF(NOT QCA2_FOUND) MESSAGE("warning: QCA2 not found --> Disabled Amazon plugin") SET(WITH_AMAZON OFF) ENDIF(NOT QCA2_FOUND) ENDIF(WITH_AMAZON) ###################### # # internatalization # ###################### OPTION(L10N_ALL "Build with all languages" ON) OPTION(L10N_EN "Build with english language" OFF) OPTION(L10N_DE "Build with german language" OFF) OPTION(L10N_FR "Build with french language" OFF) IF(L10N_ALL) SET(L10N_EN ON) SET(L10N_DE ON) SET(L10N_FR ON) ENDIF(L10N_ALL) ####################### # # Barcode recognition # ####################### OPTION(WITH_ZBAR "Build with ZBar binding to allow scanning barcodes with webcams" ON) IF(WITH_ZBAR) FIND_PACKAGE(ZBar0) SET(ZBAR 1) IF(NOT ZBAR_QT_FOUND) MESSAGE("warning: ZBar Qt not found --> Disabled ZBar bindings") SET(WITH_ZBAR OFF) SET(ZBAR 0) ENDIF(NOT ZBAR_QT_FOUND) ENDIF(WITH_ZBAR) # directory to install binaries SET(bin_DIR ${CMAKE_INSTALL_PREFIX}/bin) IF(WIN32) IF(BUILD_PACKAGE) SET(bin_DIR .) ENDIF(BUILD_PACKAGE) ENDIF(WIN32) SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) IF(UNIX) SET(share_DIR ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}) SET(PLUGINDIR ${LIB_INSTALL_DIR}/${PROJECT_NAME}) SET(man_DIR ${CMAKE_INSTALL_PREFIX}/share/man) SET(DOCDIR ${CMAKE_INSTALL_PREFIX}/share/doc/${PROJECT_NAME}) # SET(designer_DIR "/usr/lib/qt4/plugins/designer") SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib) IF(NOT FOUND ${CMAKE_INSTALL_LIBDIR}) SET(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib) SET(CMAKE_INSTALL_LIBDIR ${LIB_INSTALL_DIR}) ELSE(NOT FOUND ${CMAKE_INSTALL_LIBDIR}) SET(LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}) ENDIF(NOT FOUND ${CMAKE_INSTALL_LIBDIR}) SET(include_DIR ${CMAKE_INSTALL_PREFIX}/include/meganizer) SET(find_cmake_DIR ${CMAKE_ROOT}/Modules/) SET(pkgconfig_DIR ${LIB_INSTALL_DIR}/pkgconfig/) ELSE(UNIX) SET(PLUGINDIR ${bin_DIR}/plugins) SET(LIB_INSTALL_DIR ${bin_DIR}) SET(share_DIR ${bin_DIR}) SET(man_DIR ${bin_DIR}/man) SET(DOCDIR ${bin_DIR}/doc) SET(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}) SET(include_DIR ${CMAKE_INSTALL_PREFIX}/include) IF(BUILD_PACKAGE) SET(find_cmake_DIR ${bin_DIR}) ELSE(BUILD_PACKAGE) SET(find_cmake_DIR ${CMAKE_ROOT}/Modules/) ENDIF(BUILD_PACKAGE) SET(pkgconfig_DIR ${LIB_INSTALL_DIR}/pkgconfig/) ENDIF(UNIX) SET(MINPLUGINDIR ${PLUGINDIR}/minvalidator) # since qt can be installed anywhere on windows, # we install them into our own directory # and the user must copy it itself into the # right directory on windows SET(designer_DIR ${QT_PLUGINS_DIR}/designer) IF(WIN32 AND BUILD_PACKAGE) SET(designer_DIR ${bin_DIR}/designer) ENDIF(WIN32 AND BUILD_PACKAGE) # directory to install language files SET(qm_DIR ${share_DIR}/lang) #directory to install rcc files SET(rcc_DIR ${share_DIR}/rcc) # directory to install dependency files SET(depends_DIR ${share_DIR}/depends) IF(WIN32) SET(3rd_LIBS ${CMAKE_SOURCE_DIR}/3rdPartyLibs) SET(qt_LIBS ${3rd_LIBS}/QT) # IF(BUILD_DEBUG) # SET(qt_LIBS ${qt_LIBS}/Debug) # ELSE(BUILD_DEBUG) # SET(qt_LIBS ${qt_LIBS}/Release) # ENDIF(BUILD_DEBUG) ENDIF() FIND_PACKAGE(Qt4 REQUIRED) INCLUDE(qt4_qhcp) SET(QTVERSION "${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}") FIND_PACKAGE(LibEngsas REQUIRED) IF(NOT LIBENGSAS_TESTING_FOUND) MESSAGE("Disabled BUILD_TESTING and BUILD_DEV because of missing LIBENGSAS_TESTING.") MESSAGE(" To fix this, install LibEngsas with INSTALL_LIBENGSAS_TESTING.") SET(BUILD_TESTING OFF) SET(BUILD_DEV OFF) ENDIF(NOT LIBENGSAS_TESTING_FOUND) #FIND_PACKAGE(LibEngsas REQUIRED) IF(NOT EXISTS ${QT_QCOLLECTIONGENERATOR_EXECUTABLE}) IF(WITH_HANDBOOK) MESSAGE("warning: QtCollectionGenerator not found --> Disabled Handbook") SET(WITH_HANDBOOK OFF) ENDIF(WITH_HANDBOOK) ENDIF(NOT EXISTS ${QT_QCOLLECTIONGENERATOR_EXECUTABLE}) IF(NOT WIN32) SET(LIB_INSTALL_DIR "/usr/lib/" CACHE STRING "Where to install the library files to") ENDIF(NOT WIN32) SET(libmeganizer_SOURCE_DIR ${CMAKE_SOURCE_DIR}/src/libmeganizer/lib) SET(libmeganizer_BINARY_DIR ${CMAKE_BINARY_DIR}/src/libmeganizer/lib) IF(BUILD_TESTING) INCLUDE(clean_gcda) CLEAN_GCDA_FILES() SET(libmeganizertest_SOURCE_DIR ${CMAKE_SOURCE_DIR}/src/libmeganizertest) SET(libmeganizertest_BINARY_DIR ${CMAKE_BINARY_DIR}/src/libmeganizertest) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/CTestCustom.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/CTestCustom.cmake) ENDIF(BUILD_TESTING) ADD_SUBDIRECTORY(src/libmeganizer) IF(BUILD_TESTING OR BUILD_DEV) ADD_SUBDIRECTORY(src/libmeganizertest) ENDIF(BUILD_TESTING OR BUILD_DEV) ADD_SUBDIRECTORY(src/minvalidatorplugins) ADD_SUBDIRECTORY(src/meganizer) ADD_SUBDIRECTORY(src/mediaplugins) ADD_SUBDIRECTORY(src/searchplugins) # adding documentation stuff ADD_SUBDIRECTORY(doc) # checking available CPU cores INCLUDE(ProcessorCount) ProcessorCount(cpuCount) IF(${cpuCount} STREQUAL 0) SET(cpuCount 1) ENDIF() MATH(EXPR cpuCount "${cpuCount} + 1") # printing choosen configuration MESSAGE("######################################################") MESSAGE("") MESSAGE("CONFIGURATION") MESSAGE("") MESSAGE("CMAKE_SHARED_LINKER_FLAGS: ${CMAKE_SHARED_LINKER_FLAGS}") MESSAGE("CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") MESSAGE("CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") MESSAGE("CMAKE_INSTALL_LIBDIR: ${CMAKE_INSTALL_LIBDIR}") MESSAGE("") MESSAGE("OPTIONS:") MESSAGE(" Name Wanted Used") MESSAGE(" BUILD_DEBUG: ${BUILD_DEBUG_WANTED} ${BUILD_DEBUG}") MESSAGE(" BUILD_PACKAGE: ${BUILD_PACKAGE_WANTED} ${BUILD_PACKAGE}") MESSAGE(" BUILD_DEV: ${BUILD_DEV_WANTED} ${BUILD_DEV}") MESSAGE(" BUILD_TESTING: ${BUILD_TESTING_WANTED} ${BUILD_TESTING}") MESSAGE(" WITH_HANDBOOK: ${WITH_HANDBOOK_WANTED} ${WITH_HANDBOOK}") MESSAGE(" WITH_ZBAR: ${WITH_ZBAR_WANTED} ${WITH_ZBAR}") MESSAGE(" WITH_ALL_PLUGINS: ${WITH_ALL_PLUGINS_WANTED} ${WITH_ALL_PLUGINS}") MESSAGE(" MEDIAPLUGINS:") MESSAGE(" WITH_BOOKS: ${WITH_BOOKS_WANTED} ${WITH_BOOKS}") MESSAGE(" WITH_MUSIC: ${WITH_MUSIC_WANTED} ${WITH_MUSIC}") MESSAGE(" WITH_MOVIES: ${WITH_MOVIES_WANTED} ${WITH_MOVIES}") MESSAGE(" WITH_MAGAZINES: ${WITH_MAGAZINES_WANTED} ${WITH_MAGAZINES}") MESSAGE(" SEARCHPLUGINS:") MESSAGE(" WITH_AMAZON: ${WITH_AMAZON_WANTED} ${WITH_AMAZON}") MESSAGE(" L10N_ALL: ${L10N_ALL_WANTED} ${L10N_ALL}") MESSAGE(" L10N_DE: ${L10N_DE_WANTED} ${L10N_DE}") MESSAGE(" L10N_EN: ${L10N_EN_WANTED} ${L10N_EN}") MESSAGE(" L10N_FR: ${L10N_FR_WANTED} ${L10N_FR}") MESSAGE(" MIN-Validator Plugins:") MESSAGE(" EAN: ON") MESSAGE(" ISBN: ${MIN_VALIDATOR_ISBN}") MESSAGE(" UPC: ${MIN_VALIDATOR_UPC}") MESSAGE(" ISSN: ${MIN_VALIDATOR_ISSN}") MESSAGE(" WITH_API_DOCS: ${WITH_API_DOCS_WANTED} ${WITH_API_DOCS}") MESSAGE("") MESSAGE("To use all available CPUs build with make -j${cpuCount}") MESSAGE("") MESSAGE("######################################################") # Prepare testing environment for testing with libengsas IF(WIN32) ADD_CUSTOM_COMMAND( OUTPUT "${EXECUTABLE_OUTPUT_PATH}/libengsas.dll" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${LIBENGSAS_LIBRARIES}" "${EXECUTABLE_OUTPUT_PATH}" WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) ADD_CUSTOM_COMMAND( OUTPUT "${EXECUTABLE_OUTPUT_PATH}/libengsas-testing.dll" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${LIBENGSAS_TESTING_LIBRARIES}" "${EXECUTABLE_OUTPUT_PATH}" WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) ADD_CUSTOM_COMMAND( OUTPUT "${EXECUTABLE_OUTPUT_PATH}/libqca.dll" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${QCA2_LIBRARIES}" "${EXECUTABLE_OUTPUT_PATH}" WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) IF(WITH_AMAZON) ADD_CUSTOM_TARGET( prepare_testing ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/libengsas.dll" "${EXECUTABLE_OUTPUT_PATH}/libengsas-testing.dll" "${EXECUTABLE_OUTPUT_PATH}/libqca.dll" COMMENT "Copying libengsas and qca shared libraries into EXECUTABLE_OUTPUT_PATH" ) ELSE(WITH_AMAZON) ADD_CUSTOM_TARGET( prepare_testing ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/libengsas.dll" "${EXECUTABLE_OUTPUT_PATH}/libengsas-testing.dll" COMMENT "Copying libengsas shared libraries into EXECUTABLE_OUTPUT_PATH" ) ENDIF(WITH_AMAZON) #ADD_DEPENDENCIES(test prepare_testing) ENDIF(WIN32) string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWERED) SET(CPACK_GENERATOR "NSIS") SET(CPACK_PACKAGE_NAME "Meganizer") SET(CPACK_PACKAGE_VENDOR "EngSaS - Engineering Solutions and Services Langenbach") SET(CPACK_NSIS_CONTACT "info@engsas.de") SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Meganizer is a program to handle and organize medias like Books, CDs, ...") SET(CPACK_PACKAGE_VERSION ${${PROJECT_NAME}_VERSION}) SET(CPACK_PACKAGE_VERSION_MAJOR ${TARGET_VERSION_MAJOR}) SET(CPACK_PACKAGE_VERSION_MINOR ${TARGET_VERSION_MINOR}) SET(CPACK_PACKAGE_VERSION_PATCH ${${PROJECT_NAME}_PATCH_LEVEL}) #SET(CPACK_PACKAGE_INSTALL_DIRECTORY "DeSuTo/${${PROJECT_NAME}_VERSION}") SET(CPACK_PACKAGE_INSTALL_DIRECTORY "Meganizer") SET(CPACK_NSIS_INSTALLED_ICON_NAME "$INSTDIR/meganizer.ico") SET(CPACK_SOURCE_GENERATOR "TBZ2") # SET(CPACK_SOURCE_OUTPUT_CONFIG_FILE "/home/andy/vtk/CMake-bin/CPackSourceConfig.cmake") SET(ARCHIV_NAME ${PROJECT_NAME_LOWERED}-${TARGET_VERSION_MAJOR}.${TARGET_VERSION_MINOR}.${${PROJECT_NAME}_PATCH_LEVEL}) SET(CPACK_SOURCE_PACKAGE_FILE_NAME ${ARCHIV_NAME}) SET(CPACK_SOURCE_IGNORE_FILES "build;kdev4;updatets") # add all components which should be installable via the package IF(WIN32) SET(external_DLL qtlibs mysqllibs qcalibs libengsaspack) ENDIF(WIN32) SET(CPACK_COMPONENTS_ALL application library # systray ${external_DLL} books music movies amazon demoshop designer docman docmanualcore docmanual minvalidatorean minvalidatorisbn minvalidatorupc minvalidatorissn ) # License file SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE.txt) # Pre selected installation profiles SET(CPACK_ALL_INSTALL_TYPES Typical Full Minimal) SET(CPACL_INSTALL_TYPE_TYPICAL_DISPLAY_NAME "Typical") SET(CPACL_INSTALL_TYPE_FULL_DISPLAY_NAME "Full") SET(CPACL_INSTALL_TYPE_MINIMAL_DISPLAY_NAME "Minimal") # groups for components SET(CPACK_COMPONENT_GROUP_BASE_DISPLAY_NAME "Meganizer") SET(CPACK_COMPONENT_GROUP_BASE_DESCRIPTION "The Meganizer core application") SET(CPACK_COMPONENT_GROUP_MEDIAPLUGINS_DISPLAY_NAME "Media Plugins") SET(CPACK_COMPONENT_GROUP_MEDIAPLUGINS_DESCRIPTION "This components provides the handling of medias") SET(CPACK_COMPONENT_GROUP_SEARCHPLUGINS_DISPLAY_NAME "Search Plugins") SET(CPACK_COMPONENT_GROUP_SEARCHPLUGINS_DESCRIPTION "This components provides the search of external sources") SET(CPACK_COMPONENT_GROUP_MINVALIDATORPLUGINS_DISPLAY_NAME "MIN Validators") SET(CPACK_COMPONENT_GROUP_MINVALIDATORPLUGINS_DESCRIPTION "This components provides the ability to check and convert different types of MINs (like EAN, ISBN, UPC)") SET(CPACK_COMPONENT_GROUP_3RDPARTYLIBS_DISPLAY_NAME "3rd Party Libraries") SET(CPACK_COMPONENT_GROUP_3RDPARTYLIBS_DESCRIPTION "3rd Party libraries which are needed to run Meganizer and or modules. They are only needed if they are not already exist in PATH") SET(CPACK_COMPONENT_GROUP_DEVELOPEMENT_DISPLAY_NAME "Developing") SET(CPACK_COMPONENT_GROUP_DEVELOPEMENT_DESCRIPTION "Stuff which helps Developers to develope Meganizer") SET(CPACK_COMPONENT_GROUP_DOC_DISPLAY_NAME "Documentations") SET(CPACK_COMPONENT_GROUP_DOC_DESCRIPTION "Contains all types of available documentations") # the scheme of the variable names are: CPACK_COMPNONENT_%COMPONENTNAMEINUPPERCASE%_DISPLAY_NAME # where %COMPONENTNAMEINUPPERCASE% must be replaced by the upper cased name of the component # see below for example SET(CPACK_COMPONENT_QTLIBS_DISPLAY_NAME "QT") SET(CPACK_COMPONENT_QTLIBS_DESCRIPTION "Libraries which are needed, but not belonging to this project. They must not be installed, if they are already installed at path") SET(CPACK_COMPONENT_QTLIBS_GROUP "3rdPartyLibs") SET(CPACK_COMPONENT_QTLIBS_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_MYSQLLIBS_DISPLAY_NAME "Mysql-QT-Plugin") SET(CPACK_COMPONENT_MYSQLLIBS_DESCRIPTION "Libraries which are needed, but not belonging to this project. This libs are needed, if you want to connect to a MySQL-Server") SET(CPACK_COMPONENT_MYSQLLIBS_GROUP "3rdPartyLibs") SET(CPACK_COMPONENT_MYSQLLIBS_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_QCALIBS_DISPLAY_NAME "QCA2 Plugin") SET(CPACK_COMPONENT_QCALIBS_DESCRIPTION "Libraries which are needed, but not belonging to this project. This libs are needed, if you want to connect to use Amazon") SET(CPACK_COMPONENT_QCALIBS_GROUP "3rdPartyLibs") SET(CPACK_COMPONENT_QCALIBS_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_LIBENGSASPACK_DISPLAY_NAME "LibEngsas") SET(CPACK_COMPONENT_LIBENGSASPACK_DESCRIPTION "Libraries which are needed, but not belonging to this project. The Libraries provided by LibEngsas. Those files are used by all modules and the core application.") SET(CPACK_COMPONENT_LIBENGSASPACK_GROUP "3rdPartyLibs") SET(CPACK_COMPONENT_LIBENGSASPACK_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_APPLICATION_DISPLAY_NAME "Meganizer Application") SET(CPACK_COMPONENT_APPLICATION_DESCRIPTION "The main application.") SET(CPACK_COMPONENT_APPLICATION_GROUP "Base") SET(CPACK_COMPONENT_APPLICATION_INSTALL_TYPES Typical Full Minimal) SET(CPACK_COMPONENT_APPLICATION_DEPENDS library minvalidatorean) SET(CPACK_COMPONENT_APPLICATION_REQUIRED) SET(CPACK_COMPONENT_LIBRARY_DISPLAY_NAME "Meganizer Library") SET(CPACK_COMPONENT_LIBRARY_DESCRIPTION "The shared objects of Meganizer.") SET(CPACK_COMPONENT_LIBRARY_GROUP "Base") SET(CPACK_COMPONENT_LIBRARY_INSTALL_TYPES Typical Full Minimal) ########################## # # Media Plugins - Group "Media Plugins" # ########################## IF(WITH_BOOKS) SET(CPACK_COMPONENT_BOOKS_DISPLAY_NAME "Books") SET(CPACK_COMPONENT_BOOKS_DESCRIPTION "Module to handle books") SET(CPACK_COMPONENT_BOOKS_GROUP "Media Plugins") SET(CPACK_COMPONENT_BOOKS_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_BOOKS_DEPENDS library minvalidatorisbn) ENDIF(WITH_BOOKS) IF(WITH_MUSIC) SET(CPACK_COMPONENT_MUSIC_DISPLAY_NAME "Music") SET(CPACK_COMPONENT_MUSIC_DESCRIPTION "Module to handle Music devices like CD's, Track's and Pieces like Sinfonies") SET(CPACK_COMPONENT_MUSIC_GROUP "Media Plugins") SET(CPACK_COMPONENT_MUSIC_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_MUSIC_DEPENDS library minvalidatorupc) ENDIF(WITH_MUSIC) IF(WITH_MOVIES) SET(CPACK_COMPONENT_MOVIES_DISPLAY_NAME "Movies") SET(CPACK_COMPONENT_MOVIES_DESCRIPTION "Module to handle Movies") SET(CPACK_COMPONENT_MOVIES_GROUP "Media Plugins") SET(CPACK_COMPONENT_MOVIES_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_MOVIES_DEPENDS library minvalidatorupc) ENDIF(WITH_MOVIES) IF(WITH_MAGAZINES) SET(CPACK_COMPONENT_MAGAZINES_DISPLAY_NAME "Magazines") SET(CPACK_COMPONENT_MAGAZINES_DESCRIPTION "Module to handle Magazines and Articles") SET(CPACK_COMPONENT_MAGAZINES_GROUP "Media Plugins") SET(CPACK_COMPONENT_MAGAZINES_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_MAGAZINES_DEPENDS library minvalidatorissn) ENDIF(WITH_MAGAZINES) ########################## # # SearchPlugins - Group "Search Plugins" # ########################## IF(WITH_AMAZON) SET(CPACK_COMPONENT_AMAZON_DISPLAY_NAME "Amazon") SET(CPACK_COMPONENT_AMAZON_DESCRIPTION "Allows to search amazon database") SET(CPACK_COMPONENT_AMAZON_GROUP "Search Plugins") SET(CPACK_COMPONENT_AMAZON_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_AMAZON_DEPENDS library) ENDIF(WITH_AMAZON) ########################## # # MINValidatorPlugins - Group "MIN Validator Plugins" # ########################## SET(CPACK_COMPONENT_MINVALIDATOREAN_DISPLAY_NAME "EAN") SET(CPACK_COMPONENT_MINVALIDATOREAN_DESCRIPTION "Handles MINs of type EAN") SET(CPACK_COMPONENT_MINVALIDATOREAN_GROUP "MIN Validators") SET(CPACK_COMPONENT_MINVALIDATOREAN_INSTALL_TYPES Typical Full Minimal) SET(CPACK_COMPONENT_MINVALIDATOREAN_DEPENDS library) IF(MIN_VALIDATOR_ISBN) SET(CPACK_COMPONENT_MINVALIDATORISBN_DISPLAY_NAME "ISBN") SET(CPACK_COMPONENT_MINVALIDATORISBN_DESCRIPTION "Handles MINs of type ISBN") SET(CPACK_COMPONENT_MINVALIDATORISBN_GROUP "MIN Validators") SET(CPACK_COMPONENT_MINVALIDATORISBN_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_MINVALIDATORISBN_DEPENDS library) ENDIF(MIN_VALIDATOR_ISBN) IF(MIN_VALIDATOR_UPC) SET(CPACK_COMPONENT_MINVALIDATORUPC_DISPLAY_NAME "UPC") SET(CPACK_COMPONENT_MINVALIDATORUPC_DESCRIPTION "Handles MINs of type UPC") SET(CPACK_COMPONENT_MINVALIDATORUPC_GROUP "MIN Validators") SET(CPACK_COMPONENT_MINVALIDATORUPC_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_MINVALIDATORUPC_DEPENDS library) ENDIF(MIN_VALIDATOR_UPC) IF(MIN_VALIDATOR_ISSN) SET(CPACK_COMPONENT_MINVALIDATORISSN_DISPLAY_NAME "ISSN") SET(CPACK_COMPONENT_MINVALIDATORISSN_DESCRIPTION "Handles MINs of type ISSN (Magazines uses this MIN type)") SET(CPACK_COMPONENT_MINVALIDATORISSN_GROUP "MIN Validators") SET(CPACK_COMPONENT_MINVALIDATORISSN_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_MINVALIDATORISSN_DEPENDS library) ENDIF(MIN_VALIDATOR_ISSN) ########################## # # Development - Group "Developing" # ########################## IF(WITH_DEMOSHOP) SET(CPACK_COMPONENT_DEMOSHOP_DISPLAY_NAME "Demo Shop") SET(CPACK_COMPONENT_DEMOSHOP_DESCRIPTION "A demo shop to test features and show new features") SET(CPACK_COMPONENT_DEMOSHOP_GROUP "Developing") SET(CPACK_COMPONENT_DEMOSHOP_INSTALL_TYPES Full) SET(CPACK_COMPONENT_DEMOSHOP_DEPENEDS library) ENDIF(WITH_DEMOSHOP) IF(BUILD_DEV) SET(CPACK_COMPONENT_DESIGNER_PLUGINS_DISPLAY_NAME "Meganizer Designer Plugins") SET(CPACK_COMPONENT_DESIGNER_PLUGINS_DESCRIPTION "QtDesigner Plugins for Widgets provided by LibMeganizer") SET(CPACK_COMPONENT_DESIGNER_PLUGINS_GROUP "Developing") SET(CPACK_COMPONENT_DESIGNER_PLUGINS_INSTALL_TYPES Full) SET(CPACK_COMPONENT_DESIGNER_DEPENEDS library) SET(CPACK_COMPONENT_HEADER_PLUGINS_DISPLAY_NAME "Development files") SET(CPACK_COMPONENT_HEADER_PLUGINS_DESCRIPTION "Contains header and other files to develop with LibMeganizer and LibMeganizerTest") SET(CPACK_COMPONENT_HEADER_PLUGINS_GROUP "Developing") SET(CPACK_COMPONENT_HEADER_PLUGINS_INSTALL_TYPES Full) SET(CPACK_COMPONENT_HEADER_DEPENEDS library) ENDIF(BUILD_DEV) ########################## # # Documentation - Group "Documentation" # ########################## SET(CPACK_COMPONENT_DOCMAN_DISPLAY_NAME "Manpages") SET(CPACK_COMPONENT_DOCMAN_DESCRIPTION "Contains manpages in different languages") SET(CPACK_COMPONENT_DOCMAN_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_DOCMAN_GROUP "Documentations") IF(WITH_HANDBOOK) SET(CPACK_COMPONENT_DOCMANUAL_DISPLAY_NAME "User Manuals") SET(CPACK_COMPONENT_DOCMANUAL_DESCRIPTION "Contains user manuals in different languages") SET(CPACK_COMPONENT_DOCMANUAL_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_DOCMANUAL_GROUP "Documentations") SET(CPACK_COMPONENT_DOCMANUALCORE_DISPLAY_NAME "3rd Party libraries and applications to use the User Manuals") SET(CPACK_COMPONENT_DOCMANUALCORE_DESCRIPTION "Should be install, if 3rdParty libraries are installed") SET(CPACK_COMPONENT_DOCMANUALCORE_INSTALL_TYPES Typical Full) SET(CPACK_COMPONENT_DOCMANUALCORE_DEPENDS qtlibs) SET(CPACK_COMPONENT_DOCMANUALCORE_GROUP "Documentations") ENDIF(WITH_HANDBOOK) # used by NSIS to create startmenu links to the executables # this entrys are only useful if a bin folder is used, otherwise use the empty EXECUTABLES # and fill out the NSIS_MENU_LINKS #SET(CPACK_PACKAGE_EXECUTABLES ${CPACK_PACKAGE_EXECUTABLES} "desuto" "DeSuTo") #SET(CPACK_PACKAGE_EXECUTABLES ${CPACK_PACKAGE_EXECUTABLES} "desutodaemon" "DeSuToDaemon") SET(CPACK_PACKAGE_EXECUTABLES "" "") SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS " CreateShortCut \\\"$DESKTOP\\\\Meganizer.lnk\\\" \\\"$INSTDIR\\\\epartexe.exe\\\" \\\"meganizer\\\" \\\"$INSTDIR\\\\meganizer.ico\\\" CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Meganizer.lnk\\\" \\\"$INSTDIR\\\\epartexe.exe\\\" \\\"meganizer\\\" \\\"$INSTDIR\\\\meganizer.ico\\\" ") SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS " Delete \\\"$DESKTOP\\\\Meganizer.lnk\\\" Delete \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Meganizer.lnk\\\" ") IF(NOT BINDINGS_KDE) ########### Add uninstall target ############### CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake" IMMEDIATE @ONLY) ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake") ENDIF(NOT BINDINGS_KDE) # This must always be last! INCLUDE(CPack)