[prev in list] [next in list] [prev in thread] [next in thread]
List: koffice-devel
Subject: koffice
From: Cyrille Berger <cyb () lepi ! org>
Date: 2009-06-23 22:24:00
Message-ID: 1245795840.877089.12115.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 986018 by berger:
summer cleanup of the CMakeLists.txt:
* regroup commands in sections: required packages, optional packages, variables, \
selection of what is compilable (based on detection), subdirectories
* make it more consistant
* move the openctl test to krita/plugins/colorspaces
I tested it, it sounds to work, but if you have problems, tell me. And please, try to \
keep it clean :)
CCMAIL:koffice-devel@kde.org
M +163 -89 CMakeLists.txt
M +4 -4 krita/plugins/colorspaces/CMakeLists.txt
M +1 -0 krita/ui/CMakeLists.txt
M +1 -1 libs/pigment/tests/CMakeLists.txt
--- trunk/koffice/CMakeLists.txt #986017:986018
@@ -1,35 +1,58 @@
project(koffice)
-set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
+cmake_minimum_required(VERSION 2.6.2 FATAL_ERROR)
-if(KDE4_BUILD_TESTS)
- # only with this definition will the FOO_TEST_EXPORT macro do something
- add_definitions(-DCOMPILING_TESTS)
-endif(KDE4_BUILD_TESTS)
+ ######################
+#######################
+## Constants defines ##
+#######################
+######################
# define the generic version of the KOffice libraries here
# this makes it easy to advance it when the next KOffice release comes
set(GENERIC_KOFFICE_LIB_VERSION "5.0.0")
set(GENERIC_KOFFICE_LIB_SOVERSION "5")
-cmake_minimum_required(VERSION 2.6.2 FATAL_ERROR)
+set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
-# search packages used by KDE
+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 ##
+#########################
+########################
set(KDE_MIN_VERSION "4.1.0")
find_package(KDE4 4.1.0 REQUIRED)
find_package(Qt4 4.5.0 REQUIRED)
include(KDE4Defaults)
include(MacroLibrary)
+include (MacroAdditionalCleanFiles)
+include (MacroAddFileDependencies)
+ ###########################
+############################
+## Required dependencies ##
+############################
+###########################
+
find_package(Perl REQUIRED)
find_package(ZLIB REQUIRED)
find_package(PNG REQUIRED)
+if (APPLE)
+ find_package(Carbon REQUIRED)
+endif (APPLE)
-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 )
+ ################################
+#################################
+## Check wich pigment to build ##
+#################################
+################################
# NO_PIGMENT disabled everything that uses pigment in the crudest matter possible
if (NO_PIGMENT)
@@ -65,6 +88,16 @@
endif (SMALL_PIGMENT)
endif (NO_PIGMENT)
+ ###########################
+############################
+## Optional dependencies ##
+############################
+###########################
+
+##
+## Look for OpenGL
+##
+
macro_optional_find_package(OpenGL)
set(HAVE_OPENGL 0)
@@ -81,37 +114,65 @@
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")
+##
+## Look for OpenEXR
+##
+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) +
+##
+## Test for create ressources
+##
macro_optional_find_package(CreateResources)
macro_log_feature(CreateResources_FOUND "Create Resources" "Create Resources \
(brushes, palettes etc.)" "http://create.freedesktop.org" FALSE "" "Required by \
KOffice for optional extra resources.")
+##
+## Test for kdepimlibs
+##
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)")
+##
+## Test for boost
+##
macro_optional_find_package(Boost)
macro_log_feature(Boost_FOUND "Boost" "Boost C++ Libraries" "http://www.boost.org" \
FALSE "" "Required by KPresenter")
-macro_optional_find_package(Eigen2 2.0.3)
-macro_log_feature(EIGEN2_FOUND "Eigen" "C++ template library for linear algebra" \
"http://eigen.tuxfamily.org" FALSE "2.0.3" "Required by KSpread and Krita") +##
+## Test for eigen2
+##
+macro_optional_find_package(Eigen2)
+macro_log_feature(EIGEN2_FOUND "Eigen" "C++ template library for linear algebra" \
"http://eigen.tuxfamily.org" FALSE "2.0" "Required by KSpread and Krita (available as \
a module in kdesupport)")
+##
+## Test for blitz
+##
macro_optional_find_package(Blitz)
macro_log_feature(BLITZ_FOUND "QImageBlitz" "Image effect library" \
"http://www.kde.org" FALSE "" "Required by Krita (available in kdesupport)")
+##
+## Test for QCA2
+##
macro_optional_find_package(QCA2)
macro_log_feature(QCA2_FOUND "QCA" "Qt Cryptographic Architecture" \
"http://delta.affinix.com/qca" FALSE "2.0" "Required for encrypted OpenDocument files \
support (available as a module in kdesupport)")
+##
+## Test for exiv2
+##
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")
+##
+## 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 (APPLE)
- find_package(Carbon REQUIRED)
-endif (APPLE)
-
-
#Set the build of TextShape changetraker
add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS} ${QT_QTDBUS_DEFINITIONS})
@@ -135,22 +196,24 @@
set (KDE4_ICON_DIR ${CMAKE_INSTALL_PREFIX}/share/icons)
endif(WIN32)
+##
+## Test endianess
+##
+include (TestBigEndian)
+TEST_BIG_ENDIAN(CMAKE_WORDS_BIGENDIAN)
+configure_file(config-endian.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-endian.h )
-include (MacroAdditionalCleanFiles)
-include (MacroAddFileDependencies)
-
+##
+## Generate a file for prefix information
+##
configure_file(config-prefix.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-prefix.h )
-# Look for OpenCTL (XXX: move this inside full_pigment? Or inside pigment?)
-macro_optional_find_package(OpenCTL)
+ ####################
+#####################
+## Define includes ##
+#####################
+####################
-macro_log_feature(OPENCTL_FOUND "OpenCTL" "Free Color Transformation Language \
implementation" "http://www.openctl.org" FALSE "0.9.2" "Required for High Dynamic \
Range Color Spaces, YCbCr and LMS support")
-configure_file(config-openctl.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-openctl.h )
-
-include (TestBigEndian)
-TEST_BIG_ENDIAN(CMAKE_WORDS_BIGENDIAN)
-configure_file(config-endian.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-endian.h )
-
# for config.h and <toplevel/foo.h> includes (if any?)
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} )
@@ -166,24 +229,20 @@
# koodf depends on kostore and kopicture
set(KOODF_INCLUDES ${CMAKE_SOURCE_DIR}/libs/odf ${CMAKE_BINARY_DIR}/libs/odf \
${KOPICTURE_INCLUDES})
-
+# flake depends on koodf
set(FLAKE_INCLUDES ${CMAKE_SOURCE_DIR}/libs/flake
- ${CMAKE_SOURCE_DIR}/libs/odf
+ ${KOODF_INCLUDES}
${CMAKE_SOURCE_DIR}/libs/kobase
${CMAKE_SOURCE_DIR}/libs/flake/commands
${CMAKE_SOURCE_DIR}/libs/flake/tools
${CMAKE_BINARY_DIR}/libs/flake)
+# pigment depends on koplugin and lcms
+set(PIGMENT_INCLUDES ${CMAKE_SOURCE_DIR}/libs/koplugin \
${CMAKE_SOURCE_DIR}/libs/pigment ${CMAKE_SOURCE_DIR}/libs/pigment/compositeops \
${LCMS_INCLUDE_DIR} ${KDE4_INCLUDES} )
# komain depends on kostore, koplugin, flake and koodf
set(KOMAIN_INCLUDES ${KDE4_INCLUDES}
- ${CMAKE_SOURCE_DIR}/libs/flake
- ${CMAKE_SOURCE_DIR}/libs/flake/pics
- ${CMAKE_SOURCE_DIR}/libs/flake/commands
- ${CMAKE_SOURCE_DIR}/libs/flake/tools
- ${CMAKE_SOURCE_DIR}/libs/pigment
- ${CMAKE_SOURCE_DIR}/libs/pigment/colorspaces
- ${CMAKE_SOURCE_DIR}/libs/pigment/compositeops
- ${CMAKE_SOURCE_DIR}/libs/pigment/colorprofiles
+ ${FLAKE_INCLUDES}
+ ${PIGMENT_INCLUDES}
${CMAKE_SOURCE_DIR}/libs/koproperties
${CMAKE_SOURCE_DIR}/libs/store
${CMAKE_SOURCE_DIR}/libs/kotext
@@ -205,17 +264,12 @@
${CMAKE_SOURCE_DIR}/libs/widgets/zoom
${CMAKE_SOURCE_DIR}/libs/widgets/input
${CMAKE_SOURCE_DIR}/libs/kopicture
- ${CMAKE_SOURCE_DIR}/libs/kobase
${CMAKE_SOURCE_DIR}/libs/koaction
${CMAKE_SOURCE_DIR}/libs/main
${CMAKE_SOURCE_DIR}/libs/resources
- ${CMAKE_SOURCE_DIR}/libs/odf
${CMAKE_SOURCE_DIR}/libs/koplugin
- )
-
- # pigment depends on koplugin and lcms
- set(PIGMENT_INCLUDES ${CMAKE_SOURCE_DIR}/libs/koplugin \
${CMAKE_SOURCE_DIR}/libs/pigment ${CMAKE_SOURCE_DIR}/libs/pigment/colorspaces \
${CMAKE_SOURCE_DIR}/libs/pigment/colorprofiles ${LCMS_INCLUDE_DIR} \
${KDE4_INCLUDES} )
-
+ )
+
# koresources depends on pigment
set(KORESOURCES_INCLUDES ${CMAKE_SOURCE_DIR}/libs/resources
${CMAKE_BINARY_DIR}/libs/resources
@@ -229,9 +283,6 @@
${CMAKE_SOURCE_DIR}/libs/kotext/changetracker
${CMAKE_BINARY_DIR}/libs/kotext)
-set(KFORMULA_INCLUDES ${CMAKE_SOURCE_DIR}/libs/kformula
- ${CMAKE_BINARY_DIR}/libs/kformula)
-
set(KOKROSS_INCLUDES ${CMAKE_SOURCE_DIR}/libs/kokross \
${CMAKE_BINARY_DIR}/libs/kokross)
# kopageapp
@@ -239,57 +290,58 @@
set(KOPROPERTIES_INCLUDES ${CMAKE_SOURCE_DIR}/libs/kobase \
${CMAKE_BINARY_DIR}/libs/kobase)
-add_subdirectory(libs)
-add_subdirectory(interfaces)
-add_subdirectory(cmake)
+ #############################################
+##############################################
+## Detect which applications can be compile ##
+##############################################
+#############################################
+### Karbon: pigment
set(SHOULD_BUILD_KARBON TRUE)
if (NO_PIGMENT)
set(SHOULD_BUILD_KARBON FALSE)
endif (NO_PIGMENT)
-macro_optional_add_subdirectory(karbon)
-if(EIGEN2_FOUND)
- macro_optional_add_subdirectory(kspread)
- if(BUILD_kspread)
- set(SHOULD_BUILD_KSPREAD TRUE)
- else(BUILD_kspread)
- set(SHOULD_BUILD_KSPREAD FALSE)
- endif(BUILD_kspread)
-else(EIGEN2_FOUND)
+### KSpread: eigen2
+set(SHOULD_BUILD_KSPREAD TRUE)
+if(NOT EIGEN2_FOUND)
set(SHOULD_BUILD_KSPREAD FALSE)
-endif(EIGEN2_FOUND)
+endif(NOT EIGEN2_FOUND)
-#Check if build kpresenter here to be able to test if we can build \
filters/kpresenter
-if(Boost_FOUND)
- set(SHOULD_BUILD_KPRESENTER TRUE)
- macro_optional_add_subdirectory(kpresenter)
-else(Boost_FOUND)
+### KPresenter: boost
+set(SHOULD_BUILD_KPRESENTER TRUE)
+if(NOT Boost_FOUND)
set(SHOULD_BUILD_KPRESENTER FALSE)
-endif(Boost_FOUND)
+endif(NOT Boost_FOUND)
-FIND_PROGRAM(BZIP2_EXECUTABLE NAMES bzip2 )
-macro_log_feature(BZIP2_EXECUTABLE "bzip2" "High-quality data compressor" \
"http://www.bzip.org" FALSE "" "Required by Kexi") +### Kexi: bzip2
+set(SHOULD_BUILD_KEXI TRUE)
+if(NOT BZIP2_EXECUTABLE )
+ set(SHOULD_BUILD_KEXI FALSE)
+endif(NOT BZIP2_EXECUTABLE )
-if(BUILD_KEXI)
- if( BZIP2_EXECUTABLE )
- macro_optional_add_subdirectory(kexi)
- endif( BZIP2_EXECUTABLE )
-endif(BUILD_KEXI)
-
-if(KdepimLibs_FOUND)
- macro_optional_add_subdirectory(kplato)
-endif(KdepimLibs_FOUND)
-
-
+### Krita: non-win32, pigment, blitz, eigen2, exiv2
+set(SHOULD_BUILD_KRITA TRUE)
if(WIN32 OR SMALL_PIGMENT OR NO_PIGMENT OR NOT BLITZ_FOUND OR NOT EIGEN2_FOUND OR \
NOT EXIV2_FOUND) set(SHOULD_BUILD_KRITA FALSE)
-else(WIN32 OR SMALL_PIGMENT OR NO_PIGMENT OR NOT BLITZ_FOUND OR NOT EIGEN2_FOUND OR \
NOT EXIV2_FOUND)
- set(SHOULD_BUILD_KRITA TRUE)
- macro_optional_add_subdirectory(krita)
endif(WIN32 OR SMALL_PIGMENT OR NO_PIGMENT OR NOT BLITZ_FOUND OR NOT EIGEN2_FOUND OR \
NOT EXIV2_FOUND)
+### KPlato: kdepimlibs
+set(SHOULD_BUILD_KPLATO TRUE)
+if(NOT KdepimLibs_FOUND)
+ set(SHOULD_BUILD_KPLATO FALSE)
+endif(NOT KdepimLibs_FOUND)
+ ###################
+####################
+## Subdirectories ##
+####################
+###################
+
+add_subdirectory(libs)
+add_subdirectory(interfaces)
+add_subdirectory(cmake)
+
macro_optional_add_subdirectory(kword)
macro_optional_add_subdirectory(kformula)
macro_optional_add_subdirectory(kivio)
@@ -298,6 +350,30 @@
macro_optional_add_subdirectory(kchart)
macro_optional_add_subdirectory(doc)
+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)
+
add_subdirectory(pics)
add_subdirectory(plugins)
add_subdirectory(servicetypes)
@@ -305,8 +381,6 @@
add_subdirectory(tools)
add_subdirectory(filters)
-MACRO_DISPLAY_FEATURE_LOG()
+macro_display_feature_log()
-ADD_CUSTOM_TARGET(apidox doc/api/gendocs.pl WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
-
-install( FILES ${CMAKE_CURRENT_BINARY_DIR}/config-openexr.h DESTINATION \
${INCLUDE_INSTALL_DIR} COMPONENT Devel) +add_custom_target(apidox doc/api/gendocs.pl \
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
--- trunk/koffice/krita/plugins/colorspaces/CMakeLists.txt #986017:986018
@@ -1,9 +1,9 @@
+# Look for OpenCTL (XXX: move this inside full_pigment? Or inside pigment?)
+macro_optional_find_package(OpenCTL)
+macro_log_feature(OPENCTL_FOUND "OpenCTL" "Free Color Transformation Language \
implementation" "http://www.openctl.org" FALSE "0.9.2" "Required for High Dynamic \
Range Color Spaces, YCbCr and LMS support") +
if(OPENCTL_FOUND)
-# add_subdirectory( lms_f32 )
-# add_subdirectory( xyz_float_hdr.ctl )
-# add_subdirectory( rgb_float_hdr.ctl )
-# add_subdirectory( ycbcr )
add_subdirectory(ctlcs)
endif(OPENCTL_FOUND)
--- trunk/koffice/krita/ui/CMakeLists.txt #986017:986018
@@ -1,5 +1,6 @@
include_directories( ${KOTEXT_INCLUDES}
${BLITZ_INCLUDES}
+ ${CMAKE_SOURCE_DIR}/libs/pigment/colorprofiles
${CMAKE_CURRENT_SOURCE_DIR}/flake
${CMAKE_CURRENT_SOURCE_DIR}/resources
${CMAKE_CURRENT_SOURCE_DIR}/widgets/resources
--- trunk/koffice/libs/pigment/tests/CMakeLists.txt #986017:986018
@@ -1,5 +1,5 @@
set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
-include_directories( ${PIGMENT_INCLUDES} )
+include_directories( ${PIGMENT_INCLUDES} ${CMAKE_CURRENT_SOURCE_DIR}/../colorspaces \
)
if(MSVC)
# avoid "cannot open file 'LIBC.lib'" error
_______________________________________________
koffice-devel mailing list
koffice-devel@kde.org
https://mail.kde.org/mailman/listinfo/koffice-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic