Members of the KDE Community are recommended to subscribe to the kde-community mailing list at https://mail.kde.org/mailman/listinfo/kde-community to allow them to participate in important discussions and receive other important announcements

CMakeLists.txt 17.3 KB
Newer Older
Laurent Montel's avatar
Laurent Montel committed
1 2
project(koffice)

3
cmake_minimum_required(VERSION 2.6.2 FATAL_ERROR)
Laurent Montel's avatar
Laurent Montel committed
4

5 6 7 8 9 10
 ############
#############
## Options ##
#############
############

11 12 13 14 15
 ######################
#######################
## Constants defines ##
#######################
######################
Thomas Zander's avatar
Thomas Zander committed
16

17 18
# define the generic version of the KOffice libraries here
# this makes it easy to advance it when the next KOffice release comes
Cyrille Berger's avatar
Cyrille Berger committed
19 20
set(GENERIC_KOFFICE_LIB_VERSION "7.0.0")
set(GENERIC_KOFFICE_LIB_SOVERSION "7")
21

22
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
23

24 25 26 27 28
#
# WARNING: don't change the SHOULD_BUILD_app if an application
# doesn't build, but rather add the following line:
# option(BUILD_app "Build directory app" OFF)
#
29 30
#eg:
#option(BUILD_kexi "Build directory kexi" OFF) # kexi isn't buildable at the moment
31

32 33 34
option(GHNS "support Get Hot New Stuff" ON)
configure_file(config-ghns.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-ghns.h )

Jos van den Oever's avatar
Jos van den Oever committed
35
option(TINY "compile a tiny KOffice" OFF)
36 37 38 39 40 41 42 43 44 45 46 47 48 49

IF (TINY)
    set(SHOULD_BUILD_KWORD TRUE)
    set(SHOULD_BUILD_KPRESENTER TRUE)
    set(SHOULD_BUILD_KSPREAD TRUE)
    set(SHOULD_BUILD_KARBON FALSE)
    set(SHOULD_BUILD_KRITA FALSE)
    set(SHOULD_BUILD_KEXI FALSE)
    set(SHOULD_BUILD_KIVIO FALSE)
    set(SHOULD_BUILD_KPLATO FALSE)
    set(SHOULD_BUILD_KFORMULA FALSE)
    set(SHOULD_BUILD_KCHART TRUE)
    set(SHOULD_BUILD_KDGANTT FALSE)
    set(SHOULD_BUILD_KOUNAVAIL FALSE)
50
    set(SHOULD_BUILD_SCRIPTING FALSE)
51
    set(SHOULD_BUILD_F_OFFICE TRUE)
Jarosław Staniek's avatar
Jarosław Staniek committed
52
    set(SHOULD_BUILD_KOREPORT FALSE)
53 54 55 56 57 58
ELSE(TINY)
    set(SHOULD_BUILD_KWORD TRUE)
    set(SHOULD_BUILD_KPRESENTER TRUE)
    set(SHOULD_BUILD_KSPREAD TRUE)
    set(SHOULD_BUILD_KARBON TRUE)
    set(SHOULD_BUILD_KRITA TRUE)
Jarosław Staniek's avatar
Jarosław Staniek committed
59
    set(SHOULD_BUILD_KEXI TRUE)
60 61 62 63 64 65
    set(SHOULD_BUILD_KIVIO TRUE)
    set(SHOULD_BUILD_KPLATO TRUE)
    set(SHOULD_BUILD_KFORMULA TRUE)
    set(SHOULD_BUILD_KCHART TRUE)
    set(SHOULD_BUILD_KDGANTT TRUE)
    set(SHOULD_BUILD_KOUNAVAIL TRUE)
66
    set(SHOULD_BUILD_SCRIPTING TRUE)
67
    set(SHOULD_BUILD_F_OFFICE TRUE)
Jarosław Staniek's avatar
Jarosław Staniek committed
68
    set(SHOULD_BUILD_KOREPORT TRUE)
69
ENDIF(TINY)
70

71 72 73 74 75 76 77 78 79 80
if(KDE4_BUILD_TESTS)
    # only with this definition will the FOO_TEST_EXPORT macro do something
    add_definitions(-DCOMPILING_TESTS)
endif(KDE4_BUILD_TESTS)

 ########################
#########################
## Look for KDE and Qt ##
#########################
########################
Cyrille Berger's avatar
Cyrille Berger committed
81
set(KDE_MIN_VERSION "4.3.0")
82
find_package(KDE4 4.3.0 REQUIRED)
Cyrille Berger's avatar
Cyrille Berger committed
83

84
find_package(Qt4 4.6.0 REQUIRED)
85

86
include(KDE4Defaults)
87
include(MacroLibrary)
88 89 90
include (MacroAdditionalCleanFiles)
include (MacroAddFileDependencies)

91 92 93 94 95 96
option(GHNS "support Get Hot New Stuff" ON)
if(KDE_VERSION LESS "4.4.0")
    set(GHNS FALSE)
endif(KDE_VERSION LESS "4.4.0")
configure_file(config-ghns.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-ghns.h )

97 98 99 100 101
 ###########################
############################
## Required dependencies  ##
############################
###########################
102

Laurent Montel's avatar
Laurent Montel committed
103 104
find_package(Perl REQUIRED)
find_package(ZLIB REQUIRED)
105
find_package(PNG REQUIRED)
106

107 108 109
if (APPLE)
   find_package(Carbon REQUIRED)
endif (APPLE)
110

111 112
 ################################
#################################
113
## Check for OpenEXR           ##
114 115
#################################
################################
116

117

118 119 120 121
macro_optional_find_package(OpenEXR)
macro_bool_to_01(OPENEXR_FOUND HAVE_OPENEXR)
configure_file(config-openexr.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-openexr.h )
install( FILES  ${CMAKE_CURRENT_BINARY_DIR}/config-openexr.h DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel)
122

123

124 125 126 127 128 129 130 131 132 133
 ###########################
############################
## Optional dependencies  ##
############################
###########################

##
## Look for OpenGL
##

134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
macro_optional_find_package(OpenGL)
set(HAVE_OPENGL 0)

if(OPENGL_FOUND)
    message(STATUS "Found OpenGL: ${OPENGL_LIBRARIES}")
    if(QT_QTOPENGL_FOUND)
        message(STATUS "Found Qt OpenGL support")
        set(HAVE_OPENGL 1)
    else(QT_QTOPENGL_FOUND)
        message(STATUS "Did NOT find Qt OpenGL support. Check your Qt configuration")
    endif(QT_QTOPENGL_FOUND)
else(OPENGL_FOUND)
    message(STATUS "Did NOT find OpenGL libraries")
endif(OPENGL_FOUND)

configure_file(config-opengl.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-opengl.h )
macro_log_feature(HAVE_OPENGL "OpenGL" "OpenGL support" "" FALSE "" "Required by parts of Krita and optionally by flake")
151

152 153 154
##
## Test for create ressources
##
155
macro_optional_find_package(CreateResources)
156
macro_log_feature(CREATERESOURCES_FOUND "Create Resources" "Create Resources (brushes, palettes etc.)" "http://create.freedesktop.org" FALSE "" "Recommended at runtime for KOffice for optional extra resources.")
Laurent Montel's avatar
Laurent Montel committed
157

158 159 160
##
## Test for kdepimlibs
##
161 162 163
macro_optional_find_package(KdepimLibs)
macro_log_feature(KDEPIMLIBS_FOUND "KDE PIMLibs" "KDE Personal Information Management Libraries" "http://www.kde.org/" FALSE "" "Required by KPlato and the KDE address book integration (available as a module in KDE)")

164 165 166
##
## Test for boost
##
167
macro_optional_find_package(Boost)
168
macro_log_feature(Boost_FOUND "Boost" "Boost C++ Libraries" "http://www.boost.org" FALSE "" "Required by KPresenter")
169

170 171 172 173
##
## Test for eigen2
##
macro_optional_find_package(Eigen2)
174
macro_log_feature(EIGEN2_FOUND "Eigen" "C++ template library for linear algebra" "http://eigen.tuxfamily.org" FALSE "2.0" "Required by KSpread and Krita")
175

176 177 178
##
## Test for blitz
##
179
macro_optional_find_package(Blitz)
180
macro_log_feature(BLITZ_FOUND "QImageBlitz" "Image effect library" "http://www.kde.org" FALSE "" "Required by Krita (available in kdesupport)")
181

182 183 184
##
## Test for QCA2
##
185
macro_optional_find_package(QCA2)
186
macro_log_feature(QCA2_FOUND "QCA" "Qt Cryptographic Architecture" "http://delta.affinix.com/qca" FALSE "2.0" "Required for encrypted OpenDocument files and encrypted xls files support (available as a module in kdesupport)")
187

188 189 190
##
## Test for exiv2
##
191 192 193
set(EXIV2_MIN_VERSION "0.16")
macro_optional_find_package(Exiv2)
macro_log_feature(EXIV2_FOUND "Exiv2" "Image metadata library and tools" "http://www.exiv2.org" FALSE "0.16" "Required by Krita")
194

195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
##
## Test for soprano
##
macro_optional_find_package(Soprano)
macro_log_feature(Soprano_FOUND "Soprano" "KDE4 RDF handling library" "http://soprano.sourceforge.net/" FALSE "" "Required to handle RDF metadata in ODF")
if(NOT Soprano_FOUND)
    set(SHOULD_BUILD_RDF FALSE)
    set(SOPRANO_INCLUDE_DIR "")
else(NOT Soprano_FOUND)
    set(SHOULD_BUILD_RDF TRUE)
endif(NOT Soprano_FOUND)
if( Soprano_FOUND )
   add_definitions( -DSHOULD_BUILD_RDF )
endif( Soprano_FOUND )


211 212
##
## Test for lcms
213
##
214 215 216 217 218 219
macro_optional_find_package(LCMS)
set(REQUIRED_LCMS_VERSION 118)
if(LCMS_FOUND AND NOT LCMS_VERSION LESS ${REQUIRED_LCMS_VERSION})
    set(HAVE_REQUIRED_LCMS_VERSION TRUE)
    set(HAVE_LCMS TRUE)
else(LCMS_FOUND AND NOT LCMS_VERSION LESS ${REQUIRED_LCMS_VERSION})
220
    set(HAVE_REQUIRED_LCMS_VERSION FALSE)
221 222 223
    set(HAVE_LCMS FALSE)
endif(LCMS_FOUND AND NOT LCMS_VERSION LESS ${REQUIRED_LCMS_VERSION})

224
macro_log_feature(HAVE_REQUIRED_LCMS_VERSION "LittleCMS" "Color management engine" "http://www.littlecms.com" FALSE "1.18" "Required for color management and Krita")
225

Thomas Zander's avatar
Thomas Zander committed
226 227
#Set the build of TextShape changetraker

David Faure's avatar
David Faure committed
228
add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS} ${QT_QTDBUS_DEFINITIONS})
Laurent Montel's avatar
Laurent Montel committed
229

230
if(WIN32)
231 232 233 234 235 236 237 238 239 240 241 242 243 244
    # detect oxygen icon dir at configure time based on KDEDIRS - there may be different package installation locations
    execute_process(COMMAND "${KDE4_KDECONFIG_EXECUTABLE}" --path icon OUTPUT_VARIABLE _dir ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
    file(TO_CMAKE_PATH "${_dir}" __dir)
    find_path(KDE4_ICON_DIR oxygen PATHS
        ${__dir}
    )
    message(STATUS "using oxygen application icons from ${KDE4_ICON_DIR}")

    set(LIB_INSTALL_DIR ${LIB_INSTALL_DIR}
                        RUNTIME DESTINATION ${BIN_INSTALL_DIR}
                        LIBRARY ${INSTALL_TARGETS_DEFAULT_ARGS}
                        ARCHIVE ${INSTALL_TARGETS_DEFAULT_ARGS} )


245 246 247 248
else(WIN32)
    set (KDE4_ICON_DIR  ${CMAKE_INSTALL_PREFIX}/share/icons)
endif(WIN32)

249 250 251
##
## Test endianess
##
David Faure's avatar
David Faure committed
252
include (TestBigEndian)
253 254 255
TEST_BIG_ENDIAN(CMAKE_WORDS_BIGENDIAN)
configure_file(config-endian.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-endian.h )

256 257 258 259 260 261 262 263 264 265 266
##
## Generate a file for prefix information
##
configure_file(config-prefix.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-prefix.h )

 ####################
#####################
## Define includes ##
#####################
####################

267 268 269
# WARNING: make sure that QT_INCLUDES is the first directory to be added to include_directory before
#          any other include directory

270
# for config.h and <toplevel/foo.h> includes (if any?)
Boudewijn Rempt's avatar
Boudewijn Rempt committed
271
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/interfaces )
272

273 274 275
# koplugin is at the bottom of the stack
set(KOPLUGIN_INCLUDES ${CMAKE_SOURCE_DIR}/libs/koplugin)

276
# koodf is at the bottom of the stack
277 278
set(KOODF_INCLUDES ${CMAKE_SOURCE_DIR}/libs/odf
                   ${CMAKE_BINARY_DIR}/libs/odf
279
                   ${KDE4_INCLUDES})
Boudewijn Rempt's avatar
Boudewijn Rempt committed
280

281
# pigment depends on koplugin and lcms
282
set(PIGMENT_INCLUDES ${KOPLUGIN_INCLUDES}
283 284
                   ${CMAKE_SOURCE_DIR}/libs/pigment
                   ${CMAKE_SOURCE_DIR}/libs/pigment/compositeops
285
                   ${CMAKE_SOURCE_DIR}/libs/pigment/resources
286
                   ${QT_INCLUDES}
287
                   ${KDE4_INCLUDES})
288

289 290 291 292 293 294 295 296
# flake depends on koodf and pigment
set(FLAKE_INCLUDES ${CMAKE_SOURCE_DIR}/libs/flake
                   ${KOODF_INCLUDES}
                   ${KOPLUGIN_INCLUDES}
                   ${PIGMENT_INCLUDES}
                   ${CMAKE_SOURCE_DIR}/libs/flake/commands
                   ${CMAKE_SOURCE_DIR}/libs/flake/tools
                   ${CMAKE_BINARY_DIR}/libs/flake)
297 298 299 300 301 302 303

# KoText depends on koplugin, odf
set(KOTEXT_INCLUDES ${CMAKE_SOURCE_DIR}/libs/kotext
                   ${CMAKE_BINARY_DIR}/libs/kotext
                   ${CMAKE_SOURCE_DIR}/libs/kotext/changetracker
                   ${CMAKE_SOURCE_DIR}/libs/kotext/styles
                   ${CMAKE_SOURCE_DIR}/libs/kotext/opendocument
304
                   ${SOPRANO_INCLUDE_DIR}
305
                   ${FLAKE_INCLUDES}
306 307
                   ${KOODF_INCLUDES}
                   ${CMAKE_SOURCE_DIR}/libs/main)
308 309

# komain depends on kotext & flake
310
set(KOMAIN_INCLUDES ${KDE4_INCLUDES}
311
                    ${KOTEXT_INCLUDES}
312 313
                    ${CMAKE_SOURCE_DIR}/libs/widgets
                    ${CMAKE_SOURCE_DIR}/libs/main
314
                    ${CMAKE_SOURCE_DIR}/libs/main/config)
315

316 317 318
if(SHOULD_BUILD_SCRIPTING)
  set(KOKROSS_INCLUDES ${CMAKE_SOURCE_DIR}/libs/kokross ${CMAKE_BINARY_DIR}/libs/kokross)
endif(SHOULD_BUILD_SCRIPTING)
319

David Faure's avatar
David Faure committed
320 321
# kopageapp
set(KOPAGEAPP_INCLUDES ${CMAKE_SOURCE_DIR}/libs/kopageapp ${CMAKE_SOURCE_DIR}/libs/kopageapp/commands ${CMAKE_BINARY_DIR}/libs/kopageapp )
322

323 324 325 326 327 328 329 330 331 332
# koproperty
SET(KOPROPERTY_TARGETNAME koproperty)                           # TODO remove when we move to independent place
SET(KOPROPERTY_LIBS ${KOPROPERTY_TARGETNAME})                   # TODO remove when we move to independent place
SET(KOPROPERTY_LIB_VERSION ${GENERIC_KOFFICE_LIB_VERSION})      # TODO remove when we move to independent place
SET(KOPROPERTY_LIB_SOVERSION ${GENERIC_KOFFICE_LIB_SOVERSION})  # TODO remove when we move to independent place
SET(KOPROPERTY_USE_KOLIBS TRUE)                                 # TODO remove when we move to independent place
set(KOPROPERTY_INCLUDES ${KOODF_INCLUDES}
                        ${CMAKE_SOURCE_DIR}/libs
                        ${CMAKE_SOURCE_DIR}/libs/widgets)

333 334 335 336 337
 #############################################
##############################################
## Detect which applications can be compile ##
##############################################
#############################################
338

339 340 341 342 343 344
#
# WARNING: when adding a dependency if there is allready a line
# containing SHOULD_BUILD_app, don't add a new one, just add
# the test to the if construct
#

345

346 347
### KSpread: eigen2
if(NOT EIGEN2_FOUND)
Michael Jansen's avatar
Michael Jansen committed
348
    set(SHOULD_BUILD_KSPREAD FALSE)
349
endif(NOT EIGEN2_FOUND)
350

351 352
### KPresenter: boost
if(NOT Boost_FOUND)
353
    set(SHOULD_BUILD_KPRESENTER FALSE)
354
endif(NOT Boost_FOUND)
355

Carlo Segato's avatar
Carlo Segato committed
356
### Krita: pigment, blitz, eigen2, exiv2
357
if(NOT BLITZ_FOUND OR NOT EIGEN2_FOUND OR NOT EXIV2_FOUND)
358
   set(SHOULD_BUILD_KRITA FALSE)
359
endif(NOT BLITZ_FOUND OR NOT EIGEN2_FOUND OR NOT EXIV2_FOUND)
360

361 362 363 364 365
### KPlato: kdepimlibs
if(NOT KdepimLibs_FOUND)
    set(SHOULD_BUILD_KPLATO FALSE)
endif(NOT KdepimLibs_FOUND)

366 367 368 369 370
### HACK ###
# Those BUILD_ are illegally used below before they are defined, which cause problem on a first build
option(BUILD_kchart "Build directory kchart" ON)
option(BUILD_kexi   "Build directory kexi" ON)
option(BUILD_kplato "Build directory kplato" ON)
371
option(BUILD_koreport "Build directory libs/koreport" ON)
372 373
### HACK ###

374
if(NOT BUILD_kchart OR NOT SHOULD_BUILD_KCHART)
Jarosław Staniek's avatar
Jarosław Staniek committed
375 376 377 378 379
    message(STATUS "WARNING: KoReport component will not be built because KChart is not available.")
    if(BUILD_kplato AND SHOULD_BUILD_KPLATO)
        message(STATUS "WARNING: KPlato will not be built because KoReport component is not available.")
    endif(BUILD_kplato AND SHOULD_BUILD_KPLATO)
# no, Kexi can work without reports    set(SHOULD_BUILD_KEXI FALSE)
380
    set(SHOULD_BUILD_KPLATO FALSE)
Jarosław Staniek's avatar
Jarosław Staniek committed
381
    set(SHOULD_BUILD_KOREPORT FALSE)
382 383
endif(NOT BUILD_kchart OR NOT SHOULD_BUILD_KCHART)

Jarosław Staniek's avatar
Jarosław Staniek committed
384 385 386 387
if(BUILD_kexi AND SHOULD_BUILD_KEXI)
    ##
    ## Test for sqlite
    ##
Jarosław Staniek's avatar
KexiDB  
Jarosław Staniek committed
388
    set(SQLITE_RECOMMENDED_VERSION "3.6.23")
Jarosław Staniek's avatar
Jarosław Staniek committed
389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412
    find_package(KofficeSqlite 3.6.16)
    macro_log_feature(SQLITE_FOUND "SQLite" "Embedded SQL database engine" "http://www.sqlite.org"
                      FALSE ${SQLITE_MIN_VERSION} "Required by Kexi (for its default database driver).")
    ## Test for bzip2
    find_program(BZIP2_EXECUTABLE NAMES bzip2)
    macro_log_feature(BZIP2_EXECUTABLE "bzip2" "High-quality data compressor" "http://www.bzip.org"
                      FALSE "" "Required by Kexi.")

    if(NOT BZIP2_EXECUTABLE OR NOT SQLITE_FOUND)
        set(SHOULD_BUILD_KEXI FALSE)
        message(STATUS "WARNING: Kexi will not be built.")
    endif(NOT BZIP2_EXECUTABLE OR NOT SQLITE_FOUND)
endif(BUILD_kexi AND SHOULD_BUILD_KEXI)

# koreport component not needed if no app is using it
if(BUILD_koreport AND SHOULD_BUILD_KOREPORT)
    if(NOT BUILD_kexi AND NOT SHOULD_BUILD_KEXI)
        if(NOT BUILD_kplato AND NOT SHOULD_BUILD_KPLATO)
            message(STATUS "KoReport component will not be built because is unused.")
            set(SHOULD_BUILD_KOREPORT FALSE)
        endif(NOT BUILD_kplato AND NOT SHOULD_BUILD_KPLATO)
    endif(NOT BUILD_kexi AND NOT SHOULD_BUILD_KEXI)
endif(BUILD_koreport AND SHOULD_BUILD_KOREPORT)

413 414 415 416 417 418
 ###################
####################
## Subdirectories ##
####################
###################

419 420 421 422 423 424 425 426 427 428 429 430 431 432
if(SHOULD_BUILD_KWORD)
    macro_optional_add_subdirectory(kword)
endif(SHOULD_BUILD_KWORD)

if (SHOULD_BUILD_KFORMULA)
    macro_optional_add_subdirectory(kformula)
endif (SHOULD_BUILD_KFORMULA)

if (SHOULD_BUILD_KIVIO)
    macro_optional_add_subdirectory(kivio)
endif (SHOULD_BUILD_KIVIO)

if (SHOULD_BUILD_KOUNAVAIL)
    macro_optional_add_subdirectory(kounavail)
433
endif (SHOULD_BUILD_KOUNAVAIL)
434 435 436 437 438 439

if (SHOULD_BUILD_KPLATO)
    macro_optional_add_subdirectory(kdgantt)
endif (SHOULD_BUILD_KPLATO)

if (SHOULD_BUILD_KCHART)
440
    add_definitions(-DHAVE_KCHART)
441 442
    macro_optional_add_subdirectory(kchart)
endif (SHOULD_BUILD_KCHART)
443

444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467
if(SHOULD_BUILD_KPRESENTER)
  macro_optional_add_subdirectory(kpresenter)
endif(SHOULD_BUILD_KPRESENTER)

if(SHOULD_BUILD_KEXI)
    macro_optional_add_subdirectory(kexi)
endif(SHOULD_BUILD_KEXI)

if(SHOULD_BUILD_KPLATO)
    macro_optional_add_subdirectory(kplato)
endif(SHOULD_BUILD_KPLATO)

if(SHOULD_BUILD_KSPREAD)
    macro_optional_add_subdirectory(kspread)
endif(SHOULD_BUILD_KSPREAD)

if(SHOULD_BUILD_KRITA)
  macro_optional_add_subdirectory(krita)
endif(SHOULD_BUILD_KRITA)

if(SHOULD_BUILD_KARBON)
  macro_optional_add_subdirectory(karbon)
endif(SHOULD_BUILD_KARBON)

468 469
macro_optional_add_subdirectory(doc)

470 471 472 473
# non-app directories are moved here because they can depend on SHOULD_BUILD_{appname} variables set above
add_subdirectory(libs)
add_subdirectory(interfaces)
add_subdirectory(cmake)
Laurent Montel's avatar
Laurent Montel committed
474
add_subdirectory(pics)
475
add_subdirectory(plugins)
Laurent Montel's avatar
Laurent Montel committed
476 477
add_subdirectory(servicetypes)
add_subdirectory(templates)
478 479
add_subdirectory(tools)
add_subdirectory(filters)
Laurent Montel's avatar
Laurent Montel committed
480

481
macro_display_feature_log()
482

483 484 485 486 487 488
macro(macro_display_application_enabled _appName _shouldBuild)
if( BUILD_${_appName} AND ${_shouldBuild} MATCHES "[Tt][Rr][Uu][Ee]" )
  message(STATUS ${_appName} )
endif( BUILD_${_appName} AND ${_shouldBuild} MATCHES "[Tt][Rr][Uu][Ee]" )
endmacro(macro_display_application_enabled)

David Faure's avatar
David Faure committed
489
message(STATUS "---------------- The following applications will be built ----------------" )
490

491
macro_display_application_enabled(kword ${SHOULD_BUILD_KWORD})
492 493
macro_display_application_enabled(kspread ${SHOULD_BUILD_KSPREAD})
macro_display_application_enabled(kpresenter ${SHOULD_BUILD_KPRESENTER})
494
macro_display_application_enabled(kivio ${SHOULD_BUILD_KIVIO})
495 496 497 498
macro_display_application_enabled(kexi ${SHOULD_BUILD_KEXI})
macro_display_application_enabled(kplato ${SHOULD_BUILD_KPLATO})
macro_display_application_enabled(krita ${SHOULD_BUILD_KRITA})
macro_display_application_enabled(karbon ${SHOULD_BUILD_KARBON})
499 500
macro_display_application_enabled(kformula ${SHOULD_BUILD_KFORMULA})
macro_display_application_enabled(kchart ${SHOULD_BUILD_KCHART})
501
macro_display_application_enabled(f-office ${SHOULD_BUILD_F_OFFICE})
502

Jarosław Staniek's avatar
Jarosław Staniek committed
503 504 505 506
message(STATUS "---------------- The following components will be built ----------------" )

macro_display_application_enabled(koreport ${SHOULD_BUILD_KOREPORT})

507 508
message(STATUS "--------------------------------------------------------------------------" )

509
add_custom_target(apidox doc/api/gendocs.pl WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})