CMakeLists.txt 3.08 KB
Newer Older
1 2
project( okteta )

3
cmake_minimum_required(VERSION 2.8.12)
4
set(QT_MIN_VERSION "5.2.0")
5

6
find_package(ECM 1.0.0 REQUIRED NO_MODULE)
7

8
# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
9
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules" ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
Stephen Kelly's avatar
Stephen Kelly committed
10

11
include(ECMInstallIcons)
12
include(ECMGenerateHeaders)
13 14
include(ECMSetupVersion)
include(ECMPackageConfigHelpers)
15

16
include(FeatureSummary)
17
include(GenerateExportHeader)
18

Stephen Kelly's avatar
Stephen Kelly committed
19 20 21
include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDECompilerSettings)
22

23 24 25 26 27 28 29 30 31 32 33
find_package(Qt5 REQUIRED NO_MODULE
    COMPONENTS
    Core
    Network
    Designer
    PrintSupport
    Script
    ScriptTools
    Widgets
    Xml
)
Alex Richardson's avatar
Alex Richardson committed
34
find_package(Qt5Test QUIET)
35 36 37 38
if (NOT Qt5Test_FOUND)
  message(STATUS "Qt5Test not found, unit tests will not be built.")
endif()

39

40
find_package(KF5 REQUIRED
41 42 43 44 45 46
    COMPONENTS
    Bookmarks
    Codecs
    Completion
    ConfigWidgets
    DBusAddons
47
    DocTools
48 49 50 51 52 53 54 55 56
    I18n
    KCMUtils
    KIO
    NewStuff
    Parts
    Service
    WidgetsAddons
    XmlGui
)
57

Alex Richardson's avatar
Alex Richardson committed
58
if( UNIX )
59 60 61
  add_compile_options(-Wall)
  # enable this to reduce the file sizes (might crash)
  # add_compile_options(-fno-rtti)
Alex Richardson's avatar
Alex Richardson committed
62 63
endif()

64 65 66
find_package(Qca-qt5 2.1.0)
set_package_properties(Qca-qt5 PROPERTIES DESCRIPTION "Qt Cryptographic Architecture"
                       URL "http:/download.kde.org/stable/qca-qt5" TYPE OPTIONAL
67
                       PURPOSE "Needed for most of the algorithms of the checksum tool")
68

69
# control build scope
70 71 72 73 74 75 76
if(NOT DEFINED OMIT_EXAMPLES)
    set(OMIT_EXAMPLES ${BUILD_TESTING})
endif()
if(NOT DEFINED OMIT_INTERNAL_TEMPLATES)
    set(OMIT_INTERNAL_TEMPLATES ${BUILD_TESTING})
endif()
set( OKTETA_BUILD_EXAMPLES  NOT OMIT_EXAMPLES )
77 78
set( KASTEN_BUILD_INTERNAL_TEMPLATES NOT OMIT_INTERNAL_TEMPLATES )

79
add_definitions(
80
    -DQT_USE_QSTRINGBUILDER
81 82
    -DQT_NO_CAST_TO_ASCII
    -DQT_NO_CAST_FROM_ASCII
83
    -DQT_NO_CAST_FROM_BYTEARRAY
84 85
)

86
# helper libs
87
add_subdirectory( libs )
88
add_subdirectory( doc )
89

90
set( OKTETALIBS_MAJOR_VERSION 0 )
91 92
set( OKTETALIBS_MINOR_VERSION 9 )
set( OKTETALIBS_PATCHLEVEL_VERSION 0 )
93
set( OKTETALIBS_VERSION "${OKTETALIBS_MAJOR_VERSION}.${OKTETALIBS_MINOR_VERSION}.${OKTETALIBS_PATCHLEVEL_VERSION}" )
94 95 96
set( OKTETALIBS_ABI_VERSION 2 )
set( OKTETALIBS_INCLUDE_INSTALL_DIR  ${INCLUDE_INSTALL_DIR}/okteta ) #${OKTETALIBS_ABI_VERSION} )
set( OKTETALIBS_CCINCLUDE_INSTALL_DIR  ${INCLUDE_INSTALL_DIR}/Okteta ) #${OKTETALIBS_ABI_VERSION} )
97

98 99 100 101
set( oktetacore_LIB  oktetacore )
set( oktetagui_LIB   oktetagui )
set( oktetacore_LIB_NAME  okteta${OKTETALIBS_ABI_VERSION}core )
set( oktetagui_LIB_NAME   okteta${OKTETALIBS_ABI_VERSION}gui )
102

103 104
set( OKTETALIBS_LIB_SOVERSION ${OKTETALIBS_ABI_VERSION} )
set( OKTETALIBS_LIB_VERSION ${OKTETALIBS_VERSION} )
105

106
# Okteta libs
107 108
add_subdirectory( core )
add_subdirectory( gui )
109
add_subdirectory( designer )
110

111
# Okteta Kasten components
112
add_subdirectory( kasten )
113
# special mimetypes
114
add_subdirectory( mimetypes )
115

116
# programs and parts for desktop
117 118
add_subdirectory( parts )
add_subdirectory( program )
119

120
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)