summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-11-24 17:10:48 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-11-24 17:10:48 -0600
commit01adb8f0d22cda54f15f7c3dda53e811d336a726 (patch)
tree4bf2a13180c506d1166692e3b02e6b9325c31188
parent23aab05bd5f1e35a881ee26a1d6e9a50252a8296 (diff)
downloadkgtk-qt3-01adb8f0.tar.gz
kgtk-qt3-01adb8f0.zip
Initial CMake conversion attempt
-rw-r--r--AUTHORS1
-rw-r--r--CMakeLists.txt139
-rw-r--r--CMakeLists.txt.orig65
-rw-r--r--ConfigureChecks.cmake59
-rw-r--r--kdialogd3/CMakeLists.txt59
-rw-r--r--qt3/CMakeLists.txt55
6 files changed, 281 insertions, 97 deletions
diff --git a/AUTHORS b/AUTHORS
index 2925c35..5f39480 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1 +1,2 @@
+Timothy Pearson <kb9vqf@pearsoncomputing.net>
Craig Drummond <Craig.Drummond@lycos.co.uk>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 72c65d6..896b3af 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,22 @@
-project(KGtk)
-cmake_minimum_required(VERSION 2.4.0)
+#################################################
+#
+# (C) 2011 Timothy Pearson
+# kb9vqf (AT) pearsoncomputing.net
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+cmake_minimum_required( VERSION 2.8 )
+
+
+##### general package setup #####################
+
+project( kgtk )
+
+##### set up cpack ##############################
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
set(CPACK_GENERATOR "TBZ2")
@@ -12,54 +29,70 @@ set(KGTK_VERSION_FULL "${KGTK_VERSION}.${CPACK_PACKAGE_VERSION_PATCH}")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${KGTK_VERSION_FULL}")
include(CPack)
-set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
-include(CheckFunctionExists)
-check_function_exists(getpeereid HAVE_GETPEEREID)
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/include/tqt -include tqt.h -DTQT_THREAD_SUPPORT")
-SET(QT_UIC_EXECUTABLE "/usr/bin/uic-tqt")
-#SET(QT_MOC_EXECUTABLE "/usr/bin/tmoc")
-
-if (NOT "${KGTK_KDE3}" MATCHES "false")
- add_subdirectory(kdialogd3)
-endif (NOT "${KGTK_KDE3}" MATCHES "false")
-
-if (NOT "${KGTK_GTK2}" MATCHES "false")
- # Check if we have dlvsym...
- find_library(LIBDLVSYM_LIBRARY
- NAMES dl
- PATHS /lib /usr/lib /usr/X11R6/lib /usr/local/lib)
-
- if(LIBDLVSYM_LIBRARY)
- set(HAVE_DLVSYM 1)
- # Determine version of dlsym...
- find_library(LIBDL_LIBRARY
- NAMES dl
- PATHS /lib /usr/lib /usr/X11R6/lib /usr/local/lib)
-
- if(LIBDL_LIBRARY)
- execute_process(COMMAND objdump --dynamic-syms ${LIBDL_LIBRARY}
- COMMAND grep dlsym
- OUTPUT_VARIABLE DLSYM_DATA)
- separate_arguments(DLSYM_DATA)
- if (${CMAKE_MAJOR_VERSION} GREATER 2 OR ${CMAKE_MINOR_VERSION} GREATER 4)
- cmake_policy(SET CMP0007 OLD)
- endif (${CMAKE_MAJOR_VERSION} GREATER 2 OR ${CMAKE_MINOR_VERSION} GREATER 4)
- list(GET DLSYM_DATA 4 KGTK_DLSYM_VERSION)
- endif(LIBDL_LIBRARY)
- else(LIBDLVSYM_LIBRARY)
- message("** INFORMATION: You're libdl does not contain dlvsym - SWT apps will not be supported")
- endif(LIBDLVSYM_LIBRARY)
-
- add_subdirectory(gtk2)
-endif (NOT "${KGTK_GTK2}" MATCHES "false")
-
-if (NOT "${KGTK_QT3}" MATCHES "false")
- add_subdirectory(qt3)
-endif (NOT "${KGTK_QT3}" MATCHES "false")
-
-install(PROGRAMS ${CMAKE_SOURCE_DIR}/kdialogd-wrapper DESTINATION bin)
-install(PROGRAMS ${CMAKE_SOURCE_DIR}/kgtk-wrapper DESTINATION bin)
-
-message("** INFORMATION: Using installation prefix: ${CMAKE_INSTALL_PREFIX}")
-configure_file (config.h.cmake ${CMAKE_BINARY_DIR}/config.h)
+##### include essential cmake modules ###########
+
+include( CheckCXXSourceCompiles )
+include( CheckFunctionExists )
+include( CheckIncludeFileCXX )
+include( CheckLibraryExists )
+include( CheckStructHasMember )
+include( CheckSymbolExists )
+include( CheckTypeSize )
+include( FindPkgConfig )
+
+
+##### include our cmake modules #################
+
+set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" )
+include( TDEMacros )
+
+
+##### setup install paths #######################
+
+include( TDESetupPaths )
+tde_setup_paths( )
+
+
+##### user requested modules ####################
+
+option( BUILD_ALL "Build all" OFF )
+option( BUILD_KGTK_TQT "Include TQT support" ${BUILD_ALL} )
+option( BUILD_KGTK_TDE "Include TDE support" ${BUILD_ALL} )
+option( BUILD_KGTK_GTK2 "Include GTK2 support" ${BUILD_ALL} )
+option( BUILD_DOC "Build doc" ${BUILD_ALL} )
+option( BUILD_TRANSLATIONS "Build translations" ${BUILD_ALL} )
+
+
+##### configure checks ##########################
+
+include( ConfigureChecks.cmake )
+
+
+###### global compiler settings #################
+
+add_definitions(
+ -DHAVE_CONFIG_H
+)
+
+set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TQT_CXX_FLAGS}" )
+set( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined" )
+set( CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined" )
+
+
+##### source directories ########################
+
+add_subdirectory( src )
+tde_conditional_add_subdirectory( BUILD_KGTK_TQT qt3 )
+tde_conditional_add_subdirectory( BUILD_KGTK_TDE kdialogd3 )
+tde_conditional_add_subdirectory( BUILD_KGTK_GTK2 gtk2 )
+tde_conditional_add_subdirectory( BUILD_DOC doc )
+tde_conditional_add_subdirectory( BUILD_TRANSLATIONS po )
+
+##### write configure files #####################
+
+configure_file( config.h.cmake config.h @ONLY )
+
+##### install global wrapper scripts ############
+
+install(PROGRAMS ${CMAKE_SOURCE_DIR}/kdialogd-wrapper DESTINATION ${BIN_INSTALL_DIR})
+install(PROGRAMS ${CMAKE_SOURCE_DIR}/kgtk-wrapper DESTINATION ${BIN_INSTALL_DIR}) \ No newline at end of file
diff --git a/CMakeLists.txt.orig b/CMakeLists.txt.orig
new file mode 100644
index 0000000..72c65d6
--- /dev/null
+++ b/CMakeLists.txt.orig
@@ -0,0 +1,65 @@
+project(KGtk)
+cmake_minimum_required(VERSION 2.4.0)
+
+set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
+set(CPACK_GENERATOR "TBZ2")
+set(CPACK_SOURCE_GENERATOR "TBZ2")
+set(CPACK_PACKAGE_VERSION_MAJOR "0")
+set(CPACK_PACKAGE_VERSION_MINOR "10")
+set(CPACK_PACKAGE_VERSION_PATCH "1")
+set(KGTK_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
+set(KGTK_VERSION_FULL "${KGTK_VERSION}.${CPACK_PACKAGE_VERSION_PATCH}")
+set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${KGTK_VERSION_FULL}")
+include(CPack)
+
+set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+include(CheckFunctionExists)
+check_function_exists(getpeereid HAVE_GETPEEREID)
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/include/tqt -include tqt.h -DTQT_THREAD_SUPPORT")
+SET(QT_UIC_EXECUTABLE "/usr/bin/uic-tqt")
+#SET(QT_MOC_EXECUTABLE "/usr/bin/tmoc")
+
+if (NOT "${KGTK_KDE3}" MATCHES "false")
+ add_subdirectory(kdialogd3)
+endif (NOT "${KGTK_KDE3}" MATCHES "false")
+
+if (NOT "${KGTK_GTK2}" MATCHES "false")
+ # Check if we have dlvsym...
+ find_library(LIBDLVSYM_LIBRARY
+ NAMES dl
+ PATHS /lib /usr/lib /usr/X11R6/lib /usr/local/lib)
+
+ if(LIBDLVSYM_LIBRARY)
+ set(HAVE_DLVSYM 1)
+ # Determine version of dlsym...
+ find_library(LIBDL_LIBRARY
+ NAMES dl
+ PATHS /lib /usr/lib /usr/X11R6/lib /usr/local/lib)
+
+ if(LIBDL_LIBRARY)
+ execute_process(COMMAND objdump --dynamic-syms ${LIBDL_LIBRARY}
+ COMMAND grep dlsym
+ OUTPUT_VARIABLE DLSYM_DATA)
+ separate_arguments(DLSYM_DATA)
+ if (${CMAKE_MAJOR_VERSION} GREATER 2 OR ${CMAKE_MINOR_VERSION} GREATER 4)
+ cmake_policy(SET CMP0007 OLD)
+ endif (${CMAKE_MAJOR_VERSION} GREATER 2 OR ${CMAKE_MINOR_VERSION} GREATER 4)
+ list(GET DLSYM_DATA 4 KGTK_DLSYM_VERSION)
+ endif(LIBDL_LIBRARY)
+ else(LIBDLVSYM_LIBRARY)
+ message("** INFORMATION: You're libdl does not contain dlvsym - SWT apps will not be supported")
+ endif(LIBDLVSYM_LIBRARY)
+
+ add_subdirectory(gtk2)
+endif (NOT "${KGTK_GTK2}" MATCHES "false")
+
+if (NOT "${KGTK_QT3}" MATCHES "false")
+ add_subdirectory(qt3)
+endif (NOT "${KGTK_QT3}" MATCHES "false")
+
+install(PROGRAMS ${CMAKE_SOURCE_DIR}/kdialogd-wrapper DESTINATION bin)
+install(PROGRAMS ${CMAKE_SOURCE_DIR}/kgtk-wrapper DESTINATION bin)
+
+message("** INFORMATION: Using installation prefix: ${CMAKE_INSTALL_PREFIX}")
+configure_file (config.h.cmake ${CMAKE_BINARY_DIR}/config.h)
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
new file mode 100644
index 0000000..905df2b
--- /dev/null
+++ b/ConfigureChecks.cmake
@@ -0,0 +1,59 @@
+#################################################
+#
+# (C) 2010 Serghei Amelian
+# serghei (DOT) amelian (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+if( BUILD_TRANSLATIONS AND NOT DEFINED MSGFMT_EXECUTABLE )
+ find_program( MSGFMT_EXECUTABLE msgfmt )
+ if( NOT MSGFMT_EXECUTABLE )
+ tde_message_fatal( "msgfmt program is required, but was not found on your system" )
+ endif( )
+endif( )
+
+check_type_size( "int" SIZEOF_INT BUILTIN_TYPES_ONLY )
+check_type_size( "long" SIZEOF_LONG BUILTIN_TYPES_ONLY )
+
+check_include_file( stdint.h HAVE_STDINT_H )
+check_include_file( systems.h HAVE_SYSTEMS_H )
+check_include_file( linux/inotify.h HAVE_INOTIFY )
+
+check_function_exists( statvfs HAVE_STATVFS )
+check_function_exists( getpeereid HAVE_GETPEEREID )
+
+if ( BUILD_KGTK_GTK2 )
+ # Check if we have dlvsym...
+ find_library(LIBDLVSYM_LIBRARY
+ NAMES dl
+ PATHS /lib /usr/lib /usr/X11R6/lib /usr/local/lib)
+
+ if(LIBDLVSYM_LIBRARY)
+ set(HAVE_DLVSYM 1)
+ # Determine version of dlsym...
+ find_library(LIBDL_LIBRARY
+ NAMES dl
+ PATHS /lib /usr/lib /usr/X11R6/lib /usr/local/lib)
+
+ if(LIBDL_LIBRARY)
+ execute_process(COMMAND objdump --dynamic-syms ${LIBDL_LIBRARY}
+ COMMAND grep dlsym
+ OUTPUT_VARIABLE DLSYM_DATA)
+ separate_arguments(DLSYM_DATA)
+ if (${CMAKE_MAJOR_VERSION} GREATER 2 OR ${CMAKE_MINOR_VERSION} GREATER 4)
+ cmake_policy(SET CMP0007 OLD)
+ endif (${CMAKE_MAJOR_VERSION} GREATER 2 OR ${CMAKE_MINOR_VERSION} GREATER 4)
+ list(GET DLSYM_DATA 4 KGTK_DLSYM_VERSION)
+ endif(LIBDL_LIBRARY)
+ else(LIBDLVSYM_LIBRARY)
+ message("** INFORMATION: You're libdl does not contain dlvsym - SWT apps will not be supported")
+ endif(LIBDLVSYM_LIBRARY)
+endif ()
+
+# common required stuff
+find_package( TQt )
+find_package( TDE )
diff --git a/kdialogd3/CMakeLists.txt b/kdialogd3/CMakeLists.txt
index 439187b..4274165 100644
--- a/kdialogd3/CMakeLists.txt
+++ b/kdialogd3/CMakeLists.txt
@@ -1,23 +1,40 @@
-set(QT_MT_REQUIRED TRUE)
-find_package(KDE3)
-find_package(Qt3)
+#################################################
+#
+# (C) 2011 Timothy Pearson
+# kb9vqf (AT) pearsoncomputing.net
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
-if (NOT QT_INCLUDE_DIR)
- MESSAGE(STATUS_ERROR "Qt3 package not found--assuming TQt4")
- SET(QT_INCLUDE_DIR "/usr/include/qt4" CACHE PATH "" FORCE)
-endif (NOT QT_INCLUDE_DIR)
+include_directories(
+ ${TQT_INCLUDE_DIRS}
+ ${TDE_INCLUDE_DIR}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/common
+)
-if (KDE3_INCLUDE_DIR)
- message("** INFORMATION: KDialogD for KDE3 will be built.")
- link_directories(${KDE3_LIB_DIR})
- include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/common ${CMAKE_BINARY_DIR} ${KDE3_INCLUDE_DIR} ${QT_INCLUDE_DIR})
- set(kdialogd3_SRCS kdialogd.cpp)
- SET(QT_MOC_EXECUTABLE "/usr/bin/tmoc")
- kde3_automoc(${kdialogd3_SRCS})
- add_executable(kdialogd3 ${kdialogd3_SRCS})
- target_link_libraries(kdialogd3 qt-mt tdeui kio tdecore)
- install_targets(/bin kdialogd3)
- add_subdirectory(po)
-else (KDE3_INCLUDE_DIR)
- message("** ERROR : Could not locate Qt3/KDE3 headers, KDialogD for KDE3 will not be built.")
-endif (KDE3_INCLUDE_DIR)
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+ ${TDE_LIBRARY_DIRS}
+)
+
+message("** INFORMATION: KDialogD for TDE will be built.")
+add_subdirectory(po)
+
+##### kdialogd3 (executable) #################
+
+set( target kdialogd3 )
+
+set( ${target}_SRCS
+ kdialogd.cpp
+)
+
+tde_add_executable( ${target} AUTOMOC
+ SOURCES ${${target}_SRCS}
+ LINK tdecore-shared tdeui-shared
+ DESTINATION ${BIN_INSTALL_DIR}
+) \ No newline at end of file
diff --git a/qt3/CMakeLists.txt b/qt3/CMakeLists.txt
index bfada15..9aee007 100644
--- a/qt3/CMakeLists.txt
+++ b/qt3/CMakeLists.txt
@@ -1,29 +1,38 @@
-set(QT_MT_REQUIRED TRUE)
-find_package(Qt3)
+#################################################
+#
+# (C) 2011 Timothy Pearson
+# kb9vqf (AT) pearsoncomputing.net
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
-if (NOT QT_INCLUDE_DIR)
- MESSAGE(STATUS_ERROR "Qt3 package not found--assuming TQt4")
- SET(QT_INCLUDE_DIR "/usr/include/qt4" CACHE PATH "" FORCE)
-endif (NOT QT_INCLUDE_DIR)
+include_directories(
+ ${TQT_INCLUDE_DIRS}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/common
+)
-if (QT_INCLUDE_DIR)
- message("** INFORMATION: Qt3 LD_PRELOAD library will be built.")
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+)
- # set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" )
- set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)
+message("** INFORMATION: Qt3 LD_PRELOAD library will be built.")
- ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/mangled.h
- COMMAND ${CMAKE_SOURCE_DIR}/mangled.sh ${CMAKE_CXX_COMPILER} ${CMAKE_CURRENT_BINARY_DIR}/mangled.h)
+# set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" )
+set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)
- include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/common ${CMAKE_BINARY_DIR} ${QT_INCLUDE_DIR})
- set(kqt3_SRCS kqt3.cpp mangled.h)
- add_definitions(${QT_DEFINITIONS} -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT)
- add_library(kqt3 SHARED ${kqt3_SRCS})
- target_link_libraries(kqt3 ${QT_LIBRARIES} -lc -ldl)
- install(TARGETS kqt3 LIBRARY DESTINATION ${LIB_INSTALL_DIR}/kgtk)
+ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/mangled.h
+ COMMAND ${CMAKE_SOURCE_DIR}/mangled.sh ${CMAKE_CXX_COMPILER} ${CMAKE_CURRENT_BINARY_DIR}/mangled.h)
- configure_file (kqt3-wrapper.cmake ${CMAKE_CURRENT_BINARY_DIR}/kqt3-wrapper @ONLY)
- install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/kqt3-wrapper DESTINATION bin)
-else (QT_INCLUDE_DIR)
- message("** ERROR : Could not locate Qt3 headers, Qt3 LD_PRELOAD library will not be built.")
-endif (QT_INCLUDE_DIR)
+set(kqt3_SRCS kqt3.cpp mangled.h)
+add_definitions(${QT_DEFINITIONS} -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT)
+add_library(kqt3 SHARED ${kqt3_SRCS})
+target_link_libraries(kqt3 ${TQT_LIBRARIES} -lc -ldl)
+install(TARGETS kqt3 LIBRARY DESTINATION ${LIB_INSTALL_DIR}/kgtk)
+
+configure_file (kqt3-wrapper.cmake ${CMAKE_CURRENT_BINARY_DIR}/kqt3-wrapper @ONLY)
+install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/kqt3-wrapper DESTINATION ${BIN_INSTALL_DIR}) \ No newline at end of file