summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt274
1 files changed, 274 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..52e2459
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,274 @@
+PROJECT(kbfx)
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.4.2 FATAL_ERROR)
+SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmakemodules)
+SET(CMAKE_COLOR_MAKEFILE ON CACHE STRING "Enable/Disable color output during build." FORCE)
+#SET(CMAKE_VERBOSE_MAKEFILE OFF CACHE STRING "Enable/Disable cmake debug output during build." FORCE)
+
+# Optimization flags
+# SET(CMAKE_CXX_FLAGS_DISTRIBUTION "-O3")
+# SET(CMAKE_C_FLAGS_DISTRIBUTION "-O3")
+
+# Global variable CMAKE_BUILD_TYPE
+# None (CMAKE_C_FLAGS or CMAKE_CXX_FLAGS used)
+# Debug (CMAKE_C_FLAGS_DEBUG or CMAKE_CXX_FLAGS_DEBUG)
+# Release (CMAKE_C_FLAGS_RELEASE or CMAKE_CXX_FLAGS_RELEASE)
+# RelWithDebInfo (CMAKE_C_FLAGS_RELWITHDEBINFO or CMAKE_CXX_FLAGS_RELWITHDEBINFO
+# MinSizeRel (CMAKE_C_FLAGS_MINSIZEREL or CMAKE_CXX_FLAGS_MINSIZEREL)
+IF (NOT CMAKE_BUILD_TYPE)
+ SET(CMAKE_BUILD_TYPE RelWithDebInfo
+ CACHE
+ STRING "Specify build type: None Debug Release RelWithDebInfo MinSizeRel."
+ FORCE)
+ENDIF (NOT CMAKE_BUILD_TYPE)
+
+OPTION(USE_STRIGI "Enable use of Strigi search support (disabled)" OFF)
+OPTION(USE_MENUDRAKE "Use 'menudrake' instead of 'kmenuedit' in Mandriva (auto)" ON)
+OPTION(USE_KDE4 "Compile for KDE4 (disabled)" OFF)
+
+SET(BIN_SEARCH_PATHES
+ $ENV{HOME}/bin
+ $ENV{HOME}/usr/bin
+ $ENV{KDEDIR}/bin
+ ${CMAKE_INSTALL_PREFIX}/bin
+ /opt/kde/bin
+ /opt/kde3/bin
+ /opt/kde4/bin
+ /usr/kde/3.5/bin
+ /usr/bin
+ /usr/local/bin
+ /opt/bin
+ )
+SET(INCLUDE_SEARCH_PATHES
+ $ENV{HOME}/include
+ $ENV{HOME}/usr/include
+ $ENV{KDEDIR}/include
+ /opt/kde/include
+ /opt/kde3/include
+ /opt/kde4/include
+ /usr/kde/3.5/include
+ /usr/include
+ /usr/local/include
+ /opt/include
+ ${CMAKE_SYSTEM_INCLUDE_PATH}
+ )
+SET(LIB_SEARCH_PATHES
+ $ENV{HOME}/lib
+ $ENV{HOME}/usr/lib
+ $ENV{KDEDIR}/lib
+ /opt/kde/lib
+ /opt/kde3/lib
+ /opt/kde4/lib
+ /usr/kde/3.5/lib
+ /usr/lib
+ /usr/local/lib
+ /opt/lib
+ )
+
+# Setting versions
+
+# For versions that are stable set to 1, else to 0
+SET(APPLICATION_STABLE 1)
+
+SET(LIB_MAJOR 4)
+SET(LIB_MINOR 9)
+SET(LIB_RELEASE 3)
+SET(LIB_SUB_RELEASE 1)
+SET(APPLICATION_INTERNAL_VERSION "20070516")
+SET(APPLICATION_DATE "2007-05-16")
+
+SET(APPLICATION_NAME "${PROJECT_NAME}")
+SET(APPLICATION_MAIN_VERSION "0.${LIB_MAJOR}.${LIB_MINOR}.${LIB_RELEASE}")
+
+IF (APPLICATION_STABLE)
+ SET(APPLICATION_STABLE_RELEASE ".${LIB_SUB_RELEASE}")
+ SET(APPLICATION_VERSION "${APPLICATION_MAIN_VERSION}.${LIB_SUB_RELEASE}")
+ SET(GENTOO_VERSION "${APPLICATION_MAIN_VERSION}.${LIB_SUB_RELEASE}")
+ELSE (APPLICATION_APPLICATION_STABLE "")
+ SET(STABLE_RELEASE)
+ SET(APPLICATION_VERSION "${APPLICATION_MAIN_VERSION}-${LIB_SUB_RELEASE}")
+ SET(GENTOO_VERSION "${APPLICATION_MAIN_VERSION}_pre${LIB_SUB_RELEASE}")
+ENDIF (APPLICATION_STABLE)
+
+SET(VERSION ${APPLICATION_VERSION})
+
+SET(STRIGI_VERSION "0.3.11")
+SET(GENTOO_KEYWORDS "x86 ~ppc ~amd64")
+
+# Prepare docbook part
+CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/doc/en/index.docbook.in ${CMAKE_BINARY_DIR}/doc/en/index.docbook @ONLY)
+
+IF (USE_STRIGI)
+ FIND_PACKAGE(Strigi REQUIRED)
+ INCLUDE_DIRECTORIES(${STRIGI_INCLUDE_DIR})
+ MESSAGE(STATUS "Strigi support is: ON!")
+ELSE (USE_STRIGI)
+ MESSAGE(STATUS "Strigi support is: OFF!")
+ENDIF (USE_STRIGI)
+
+
+FIND_PROGRAM(HAVE_MANDRAKE menudrake)
+IF (HAVE_MANDRAKE AND USE_MENUDRAKE)
+ SET(MANDRAKE "1")
+ MESSAGE(STATUS "Will use 'menudrake' instead of 'kmenuedit'!")
+ELSE (HAVE_MANDRAKE AND USE_MENUDRAKE)
+ SET(MANDRAKE "")
+ MESSAGE(STATUS "Will use 'kmenuedit'!")
+ENDIF (HAVE_MANDRAKE AND USE_MENUDRAKE)
+
+IF (NOT USE_KDE4)
+ MESSAGE(STATUS "Building for KDE3")
+ INCLUDE(TestCXXAcceptsFlag)
+
+ SET(CMAKE_CXX_FLAGS_DEBUG
+ "${CMAKE_CXX_FLAGS_DEBUG} -DTESTING_RC=\"\\\"\${CMAKE_SOURCE_DIR}/configdialog/kbfxconfigappui.rc\\\"\"")
+
+ CHECK_CXX_ACCEPTS_FLAG("-fexceptions" CXX_EXCEPTION)
+ CHECK_CXX_ACCEPTS_FLAG("-fstack-protector" CXX_PROTECTOR)
+
+ FIND_PACKAGE(KDE3 REQUIRED)
+
+ INCLUDE(FindKdeLibs)
+ INCLUDE(MacroEnsureVersion)
+
+ # Dummy macros for compatibility
+ MACRO(KDE4_AUTOMOC _dummy)
+ ENDMACRO(KDE4_AUTOMOC)
+
+ MACRO(KDE4_ADD_LIBRARY _dummy _dummy1 _dummy2)
+ ENDMACRO(KDE4_ADD_LIBRARY)
+
+ MACRO(KDE4_INSTALL_LIBTOOL_FILE _dummy _dummy1)
+ ENDMACRO(KDE4_INSTALL_LIBTOOL_FILE)
+
+ MACRO(KDE4_ADD_UI3_FILES _dummy _dummy1)
+ ENDMACRO(KDE4_ADD_UI3_FILES)
+
+ MACRO(KDE4_ADD_DCOP_SKELS _dummy _dummy1)
+ ENDMACRO(KDE4_ADD_DCOP_SKELS)
+
+ MACRO(KDE4_ADD_EXECUTABLE _dummy _dummy1)
+ ENDMACRO(KDE4_ADD_EXECUTABLE)
+
+ MACRO(KDE4_INSTALL_ICONS _dummy)
+ ENDMACRO(KDE4_INSTALL_ICONS)
+ELSE (NOT USE_KDE4)
+ MESSAGE(STATUS "Building for KDE4")
+ FIND_PACKAGE(KDE4 REQUIRED)
+ ADD_DEFINITIONS(${KDE4_DEFINITIONS} ${QT_DEFINITIONS})
+ SET(INCLUDE_SEARCH_PATHES
+ ${INCLUDE_SEARCH_PATHES}
+ ${KDE4_INCLUDES}
+ )
+ SET(LIB_SEARCH_PATHES
+ ${LIB_SEARCH_PATHES}
+ ${KDE4_LIB_DIR}
+ )
+ENDIF (NOT USE_KDE4)
+
+INCLUDE_DIRECTORIES(
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}/kbfxlib/data
+ ${CMAKE_BINARY_DIR}/kbfxlib/common
+ ${CMAKE_BINARY_DIR}/src
+ ${CMAKE_BINARY_DIR}/configdialog
+ ${CMAKE_BINARY_DIR}/plugins/common
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/kbfxlib/data
+ ${CMAKE_SOURCE_DIR}/kbfxlib/common
+ ${CMAKE_SOURCE_DIR}/src
+ ${CMAKE_SOURCE_DIR}/configdialog
+ ${CMAKE_SOURCE_DIR}/plugins/common
+ ${KDE3_INCLUDE_DIR}/kbfx
+ ${KDE3_INCLUDE_DIR}/kbfx/plugins
+ ${INCLUDE_SEARCH_PATHES}
+ )
+
+IF (NOT USE_KDE4)
+ IF (CXX_EXCEPTION)
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions")
+ ENDIF (CXX_EXCEPTION)
+ IF (CXX_PROTECTOR)
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector")
+ ENDIF (CXX_PROTECTOR)
+
+ ADD_DEFINITIONS(${KDE3_DEFINITIONS} ${QT_DEFINITIONS})
+ SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
+ SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
+
+ IF(KDE3_KDECONFIG_EXECUTABLE)
+ EXECUTE_PROCESS(COMMAND ${KDE3_KDECONFIG_EXECUTABLE} "--version" OUTPUT_VARIABLE output)
+ STRING(REGEX MATCH "KDE: [0-9]+\\.[0-9]+\\.[0-9]+" KDEVERSION "${output}")
+ STRING(REGEX REPLACE "^KDE: " "" KDEVERSION "${KDEVERSION}")
+ ENDIF(KDE3_KDECONFIG_EXECUTABLE)
+ SET(KDE_MIN_VERSION "3.5.0")
+ MACRO_ENSURE_VERSION(${KDE_MIN_VERSION} ${KDEVERSION} VERSION_OK)
+ IF(NOT VERSION_OK)
+ MESSAGE(FATAL_ERROR "You need at least KDE Version of 3.5.0 in order to compile KBFX.\n Please upgrade your KDE or install the development files of KDE.")
+ ENDIF(NOT VERSION_OK)
+ENDIF (NOT USE_KDE4)
+
+SET(KBFX_LIB_INSTALL_DIR ${LIB_INSTALL_DIR})
+
+ADD_SUBDIRECTORY(kbfxlib/data)
+ADD_SUBDIRECTORY(kbfxlib/common)
+ADD_SUBDIRECTORY(src)
+ADD_SUBDIRECTORY(configdialog)
+ADD_SUBDIRECTORY(skin/vector)
+ADD_SUBDIRECTORY(skin/raster/default)
+ADD_SUBDIRECTORY(skin/raster/2panels)
+ADD_SUBDIRECTORY(images)
+ADD_SUBDIRECTORY(doc)
+ADD_SUBDIRECTORY(doc/en)
+ADD_SUBDIRECTORY(doc/common)
+ADD_SUBDIRECTORY(po)
+ADD_SUBDIRECTORY(plugins/common)
+ADD_SUBDIRECTORY(plugins/applications)
+ADD_SUBDIRECTORY(plugins/settings)
+ADD_SUBDIRECTORY(plugins/plasmoids)
+ADD_SUBDIRECTORY(plugins/recentstuff)
+IF (USE_STRIGI)
+ ADD_SUBDIRECTORY(plugins/strigi)
+ENDIF (USE_STRIGI)
+
+CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/config.h.in ${CMAKE_BINARY_DIR}/config.h @ONLY)
+CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/kbfx.spec.in ${CMAKE_BINARY_DIR}/kbfx.spec @ONLY)
+CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/kbfx.ebuild.in ${CMAKE_BINARY_DIR}/kbfx-${GENTOO_VERSION}.ebuild @ONLY)
+CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/strigi.ebuild.in ${CMAKE_BINARY_DIR}/strigi-${STRIGI_VERSION}.ebuild @ONLY)
+CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/kbfx-svn.ebuild.in ${CMAKE_BINARY_DIR}/kbfx-9999.ebuild @ONLY)
+
+SET(DIST_INCLUDE "kbfx-9999.ebuild kbfx.spec kbfx-${GENTOO_VERSION}.ebuild strigi-${STRIGI_VERSION}.ebuild")
+SET(DIST_EXCLUDE "Helperstuff")
+CONFIGURE_FILE(
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmakemodules/makedist.sh.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/makedist.sh"
+ IMMEDIATE
+ @ONLY)
+ADD_CUSTOM_TARGET(dist
+ "${CMAKE_BINARY_DIR}/makedist.sh"
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+
+IF (NOT USE_KDE4)
+ CONFIGURE_FILE(
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmakemodules/cmake_uninstall.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
+ IMMEDIATE @ONLY)
+ ADD_CUSTOM_TARGET(uninstall
+ "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
+ENDIF (NOT USE_KDE4)
+
+
+FILE(GLOB _POFILES po/*.po)
+FOREACH(_p ${_POFILES})
+ SET(POFILES "${_p} ${POFILES}")
+ENDFOREACH(_p)
+
+SET(MESSAGES_DIR ${CMAKE_SOURCE_DIR})
+CONFIGURE_FILE(
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmakemodules/package_messages.sh.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/package_messages.sh"
+ IMMEDIATE
+ @ONLY)
+ADD_CUSTOM_TARGET(package-messages
+ "${CMAKE_CURRENT_BINARY_DIR}/package_messages.sh")
+