diff options
-rw-r--r-- | modules/FindAGG.cmake | 45 | ||||
-rw-r--r-- | modules/FindKDE4.cmake | 11 | ||||
-rw-r--r-- | modules/FindQt4.cmake | 208 |
3 files changed, 106 insertions, 158 deletions
diff --git a/modules/FindAGG.cmake b/modules/FindAGG.cmake new file mode 100644 index 00000000..6dc61dfe --- /dev/null +++ b/modules/FindAGG.cmake @@ -0,0 +1,45 @@ +# - Try to find AGG +# Once done this will define +# +# AGG_FOUND - system has AGG +# AGG_INCLUDE_DIR - the AGG include directory +# AGG_LIBRARY - Link these to use OpenGL and GLU +# AGG_DEFINITIONS - Compiler switches required for using AGG +# + + +# use pkg-config to get the directories and then use these values +# in the FIND_PATH() and FIND_LIBRARY() calls +INCLUDE(UsePkgConfig) + +PKGCONFIG(libagg _AGGIncDir _AGGLinkDir _AGGLinkFlags _AGGCflags) + +SET(AGG_DEFINITIONS ${_AGGCflags}) + +FIND_PATH(AGG_INCLUDE_DIR agg2/agg_conv_stroke.h + ${_AGGIncDir} + /usr/include + /usr/local/include +) + +FIND_LIBRARY(AGG_LIBRARY NAMES agg + PATHS + ${_AGGLinkDir} + /usr/lib + /usr/local/lib +) + +IF(AGG_INCLUDE_DIR AND AGG_LIBRARY) + SET(AGG_FOUND TRUE) +ENDIF(AGG_INCLUDE_DIR AND AGG_LIBRARY) + +IF(AGG_FOUND) + IF(NOT AGG_FIND_QUIETLY) + MESSAGE(STATUS "Found AGG: ${AGG_LIBRARY}") + ENDIF(NOT AGG_FIND_QUIETLY) +ELSE(AGG_FOUND) + IF(AGG_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find AGG") + ENDIF(AGG_FIND_REQUIRED) +ENDIF(AGG_FOUND) + diff --git a/modules/FindKDE4.cmake b/modules/FindKDE4.cmake index 022fe454..77a407db 100644 --- a/modules/FindKDE4.cmake +++ b/modules/FindKDE4.cmake @@ -40,9 +40,6 @@ ENDIF(UNIX) #this line includes FindQt.cmake, which searches the Qt library and headers FIND_PACKAGE(Qt4 REQUIRED) -#add the definitions found by FindQt to the current definitions -#ADD_DEFINITIONS(${QT_DEFINITIONS} -DQT_CLEAN_NAMESPACE) - SET(QT_AND_KDECORE_LIBS ${QT_QTCORE_LIBRARY} kdecore) #add some KDE specific stuff @@ -51,21 +48,21 @@ SET(KDE4_DEFINITIONS -DQT3_SUPPORT -DQT_NO_STL -DQT_NO_CAST_TO_ASCII -DQT_NO_TRA #only on linux, but not e.g. on FreeBSD: -IF(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") +IF(CMAKE_SYSTEM_NAME MATCHES Linux) SET(KDE4_DEFINITIONS ${KDE4_DEFINITIONS} -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_GNU_SOURCE) SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -avoid-version -Wl,--no-undefined -lc") SET(CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings -avoid-version -Wl,--no-undefined -lc") SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -O2 -Wformat-security -Wmissing-format-attribute -fno-common") SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -O2 -Wformat-security -fno-exceptions -fno-check-new -fno-common") -ENDIF(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") +ENDIF(CMAKE_SYSTEM_NAME MATCHES Linux) -IF(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") +IF(CMAKE_SYSTEM_NAME MATCHES FreeBSD) SET(KDE4_DEFINITIONS ${KDE4_DEFINITIONS} -D_GNU_SOURCE) SET(CMAKE_SHARED_LINKER_FLAGS "-avoid-version -lc") SET(CMAKE_MODULE_LINKER_FLAGS "-avoid-version -lc") SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -O2 -Wformat-security -Wmissing-format-attribute -fno-common") SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common") -ENDIF(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") +ENDIF(CMAKE_SYSTEM_NAME MATCHES FreeBSD) # This will need to be modified later to support either Qt/X11 or Qt/Mac builds IF(APPLE) diff --git a/modules/FindQt4.cmake b/modules/FindQt4.cmake index 4ed32e69..edc438a9 100644 --- a/modules/FindQt4.cmake +++ b/modules/FindQt4.cmake @@ -78,7 +78,6 @@ # # QT_QT3SUPPORT_LIBRARY_DEBUG Fullpath to Qt3Support_debug library # QT_QTASSISTANT_LIBRARY_DEBUG Fullpath to QtAssistant_debug library -# # QT_QTCORE_LIBRARY_DEBUG Fullpath to QtCore_debug # QT_QTDESIGNER_LIBRARY_DEBUG Fullpath to QtDesigner_debug # QT_QTGUI_LIBRARY_DEBUG Fullpath to QtGui_debug @@ -290,46 +289,10 @@ IF(QT4_QMAKE_FOUND) ) # Make variables changeble to the advanced user - MARK_AS_ADVANCED( - QT_LIBRARY_DIR - QT_INCLUDE_DIR - QT_QT_INCLUDE_DIR - QT_QT3SUPPORT_INCLUDE_DIR - QT_QTASSISTANT_INCLUDE_DIR - QT_QTCORE_INCLUDE_DIR - QT_QTDESIGNER_INCLUDE_DIR - QT_QTGUI_INCLUDE_DIR - QT_QTMOTIF_INCLUDE_DIR - QT_QTNETWORK_INCLUDE_DIR - QT_QTNSPLUGIN_INCLUDE_DIR - QT_QTOPENGL_INCLUDE_DIR - QT_QTSQL_INCLUDE_DIR - QT_QTXML_INCLUDE_DIR - ) + MARK_AS_ADVANCED( QT_LIBRARY_DIR QT_INCLUDE_DIR QT_QT_INCLUDE_DIR ) # Set QT_INCLUDES - SET( QT_INCLUDES - ${QT_INCLUDE_DIR} - ${QT_QTCORE_INCLUDE_DIR} - ${QT_QT_INCLUDE_DIR} - ${QT_QTGUI_INCLUDE_DIR} - ) - # append optional flags - MACRO(QT4_APPEND_INCLUDES_FLAG FLAG) - IF(${FLAG}) - SET(QT_INCLUDES ${QT_INCLUDES} "${${FLAG}}") - ENDIF(${FLAG}) - ENDMACRO(QT4_APPEND_INCLUDES_FLAG) - QT4_APPEND_INCLUDES_FLAG(QT_QT3SUPPORT_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTASSISTANT_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTDESIGNER_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTDESIGNER_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTMOTIF_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTNETWORK_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTNSPLUGIN_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTOPENGL_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTSQL_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTXML_INCLUDE_DIR) + SET( QT_INCLUDES ${QT_INCLUDE_DIR} ${QT_QT_INCLUDE_DIR} ) ######################################## @@ -443,116 +406,48 @@ IF(QT4_QMAKE_FOUND) FIND_LIBRARY(QT_QTDESIGNER_LIBRARY NAMES QtDesigner QtDesigner4 PATHS ${QT_LIBRARY_DIR}) FIND_LIBRARY(QT_QTDESIGNER_LIBRARY_DEBUG NAMES QtDesigner_debug QtDesignerd4 PATHS ${QT_LIBRARY_DIR}) - # Make variables changeble to the advanced user - MARK_AS_ADVANCED( - QT_QT3SUPPORT_LIBRARY - QT_QTASSISTANT_LIBRARY - QT_QTCORE_LIBRARY - QT_QTDESIGNER_LIBRARY - QT_QTGUI_LIBRARY - QT_QTMOTIF_LIBRARY - QT_QTNETWORK_LIBRARY - QT_QTNSPLUGIN_LIBRARY - QT_QTOPENGL_LIBRARY - QT_QTSQL_LIBRARY - QT_QTXML_LIBRARY ) - - # Make variables changeble to the advanced user - MARK_AS_ADVANCED( - QT_QT3SUPPORT_LIBRARY_DEBUG - QT_QTASSISTANT_LIBRARY_DEBUG - QT_QTCORE_LIBRARY_DEBUG - QT_QTDESIGNER_LIBRARY_DEBUG - QT_QTGUI_LIBRARY_DEBUG - QT_QTMOTIF_LIBRARY_DEBUG - QT_QTNETWORK_LIBRARY_DEBUG - QT_QTNSPLUGIN_LIBRARY_DEBUG - QT_QTOPENGL_LIBRARY_DEBUG - QT_QTSQL_LIBRARY_DEBUG - QT_QTXML_LIBRARY_DEBUG ) - ############################################ # # Check the existence of the libraries. # ############################################ - IF (QT_QTCORE_INCLUDE_DIR AND QT_QTCORE_LIBRARY) - SET(QT_QTCORE_FOUND 1) - IF (NOT QT_QTCORE_LIBRARY_DEBUG) - SET(QT_QTCORE_LIBRARY_DEBUG ${QT_QTCORE_LIBRARY}) - ENDIF (NOT QT_QTCORE_LIBRARY_DEBUG) - ENDIF (QT_QTCORE_INCLUDE_DIR AND QT_QTCORE_LIBRARY) - - IF (QT_QTGUI_INCLUDE_DIR AND QT_QTGUI_LIBRARY) - SET(QT_QTGUI_FOUND 1) - IF (NOT QT_QTGUI_LIBRARY_DEBUG) - SET(QT_QTGUI_LIBRARY_DEBUG ${QT_QTGUI_LIBRARY}) - ENDIF (NOT QT_QTGUI_LIBRARY_DEBUG) - ENDIF (QT_QTGUI_INCLUDE_DIR AND QT_QTGUI_LIBRARY) - - IF (QT_QT3SUPPORT_INCLUDE_DIR AND QT_QT3SUPPORT_LIBRARY) - SET(QT_QT3SUPPORT_FOUND 1) - IF (NOT QT_QT3SUPPORT_LIBRARY_DEBUG) - SET(QT_QT3SUPPORT_LIBRARY_DEBUG ${QT_QT3SUPPORT_LIBRARY}) - ENDIF (NOT QT_QT3SUPPORT_LIBRARY_DEBUG) - ENDIF (QT_QT3SUPPORT_INCLUDE_DIR AND QT_QT3SUPPORT_LIBRARY) - - IF (QT_QTASSISTANT_INCLUDE_DIR AND QT_QTASSISTANT_LIBRARY) - SET(QT_QTASSISTANT_FOUND 1) - IF (NOT QT_QTASSISTANT_LIBRARY_DEBUG) - SET(QT_QTASSISTANT_LIBRARY_DEBUG ${QT_QTASSISTANT_LIBRARY}) - ENDIF (NOT QT_QTASSISTANT_LIBRARY_DEBUG) - ENDIF (QT_QTASSISTANT_INCLUDE_DIR AND QT_QTASSISTANT_LIBRARY) - - IF (QT_QTDESIGNER_INCLUDE_DIR AND QT_QTDESIGNER_LIBRARY) - SET(QT_QTDESIGNER_FOUND 1) - IF (NOT QT_QTDESIGNER_LIBRARY_DEBUG) - SET(QT_QTDESIGNER_LIBRARY_DEBUG ${QT_QTDESIGNER_LIBRARY}) - ENDIF (NOT QT_QTDESIGNER_LIBRARY_DEBUG) - ENDIF (QT_QTDESIGNER_INCLUDE_DIR AND QT_QTDESIGNER_LIBRARY) - - IF (QT_QTMOTIF_INCLUDE_DIR AND QT_QTMOTIF_LIBRARY) - SET(QT_QTMOTIF_FOUND 1) - IF (NOT QT_QTMOTIF_LIBRARY_DEBUG) - SET(QT_QTMOTIF_LIBRARY_DEBUG ${QT_QTMOTIF_LIBRARY}) - ENDIF (NOT QT_QTMOTIF_LIBRARY_DEBUG) - ENDIF (QT_QTMOTIF_INCLUDE_DIR AND QT_QTMOTIF_LIBRARY) - - IF (QT_QTNETWORK_INCLUDE_DIR AND QT_QTNETWORK_LIBRARY) - SET(QT_QTNETWORK_FOUND 1) - IF (NOT QT_QTNETWORK_LIBRARY_DEBUG) - SET(QT_QTNETWORK_LIBRARY_DEBUG ${QT_QTNETWORK_LIBRARY}) - ENDIF (NOT QT_QTNETWORK_LIBRARY_DEBUG) - ENDIF (QT_QTNETWORK_INCLUDE_DIR AND QT_QTNETWORK_LIBRARY) - - IF (QT_QTNSPLUGIN_INCLUDE_DIR AND QT_QTNSPLUGIN_LIBRARY) - SET(QT_QTNSPLUGIN_FOUND 1) - IF (NOT QT_QTNSPLUGIN_LIBRARY_DEBUG) - SET(QT_QTNSPLUGIN_LIBRARY_DEBUG ${QT_QTNSPLUGIN_LIBRARY}) - ENDIF (NOT QT_QTNSPLUGIN_LIBRARY_DEBUG) - ENDIF (QT_QTNSPLUGIN_INCLUDE_DIR AND QT_QTNSPLUGIN_LIBRARY) - - IF (QT_QTOPENGL_INCLUDE_DIR AND QT_QTOPENGL_LIBRARY) - SET(QT_QTOPENGL_FOUND 1) - IF (NOT QT_QTOPENGL_LIBRARY_DEBUG) - SET(QT_QTOPENGL_LIBRARY_DEBUG ${QT_QTOPENGL_LIBRARY}) - ENDIF (NOT QT_QTOPENGL_LIBRARY_DEBUG) - ENDIF (QT_QTOPENGL_INCLUDE_DIR AND QT_QTOPENGL_LIBRARY) - - IF (QT_QTSQL_INCLUDE_DIR AND QT_QTSQL_LIBRARY) - SET(QT_QTSQL_FOUND 1) - IF (NOT QT_QTSQL_LIBRARY_DEBUG) - SET(QT_QTSQL_LIBRARY_DEBUG ${QT_QTSQL_LIBRARY}) - ENDIF (NOT QT_QTSQL_LIBRARY_DEBUG) - ENDIF (QT_QTSQL_INCLUDE_DIR AND QT_QTSQL_LIBRARY) - - IF (QT_QTXML_INCLUDE_DIR AND QT_QTXML_LIBRARY) - SET(QT_QTXML_FOUND 1) - IF (NOT QT_QTXML_LIBRARY_DEBUG) - SET(QT_QTXML_LIBRARY_DEBUG ${QT_QTXML_LIBRARY}) - ENDIF (NOT QT_QTXML_LIBRARY_DEBUG) - ENDIF (QT_QTXML_INCLUDE_DIR AND QT_QTXML_LIBRARY) + MACRO(_QT4_ADJUST_LIB_VARS basename) + IF (QT_${basename}_INCLUDE_DIR) + + # if only the release version was found, set the debug variable also to the release version + IF (QT_${basename}_LIBRARY AND NOT QT_${basename}_LIBRARY_DEBUG) + SET(QT_${basename}_LIBRARY_DEBUG ${QT_${basename}_LIBRARY}) + ENDIF (QT_${basename}_LIBRARY AND NOT QT_${basename}_LIBRARY_DEBUG) + + # if only the debug version was found, set the release variable also to the debug version + IF (QT_${basename}_LIBRARY_DEBUG AND NOT QT_${basename}_LIBRARY) + SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY_DEBUG}) + ENDIF (QT_${basename}_LIBRARY_DEBUG AND NOT QT_${basename}_LIBRARY) + + IF (QT_${basename}_LIBRARY) + SET(QT_${basename}_FOUND 1) + ENDIF (QT_${basename}_LIBRARY) + + #add the include directory to QT_INCLUDES + SET(QT_INCLUDES ${QT_INCLUDES} "${QT_${basename}_INCLUDE_DIR}") + ENDIF (QT_${basename}_INCLUDE_DIR ) + + # Make variables changeble to the advanced user + MARK_AS_ADVANCED(QT_${basename}_LIBRARY QT_${basename}_LIBRARY_DEBUG QT_${basename}_INCLUDE_DIR) + ENDMACRO(_QT4_ADJUST_LIB_VARS) + + _QT4_ADJUST_LIB_VARS(QTCORE) + _QT4_ADJUST_LIB_VARS(QTGUI) + _QT4_ADJUST_LIB_VARS(QT3SUPPORT) + _QT4_ADJUST_LIB_VARS(QTASSISTENT) + _QT4_ADJUST_LIB_VARS(QTDESIGNER) + _QT4_ADJUST_LIB_VARS(QTMOTIF) + _QT4_ADJUST_LIB_VARS(QTNETWORK) + _QT4_ADJUST_LIB_VARS(QTNSPLUGIN) + _QT4_ADJUST_LIB_VARS(QTOPENGL) + _QT4_ADJUST_LIB_VARS(QTSQL) + _QT4_ADJUST_LIB_VARS(QTXML) ####################################### # @@ -566,6 +461,9 @@ IF(QT4_QMAKE_FOUND) OUTPUT_VARIABLE qt_bins ) SET(QT_BINARY_DIR ${qt_bins} CACHE INTERNAL "") ENDIF (NOT QT_BINARY_DIR) + + # at first without the system paths, in order to prefer e.g. ${QTDIR}/bin/qmake over /usr/bin/qmake, + # which might be a Qt3 qmake FIND_PROGRAM(QT_MOC_EXECUTABLE NAMES moc PATHS @@ -581,6 +479,7 @@ IF(QT4_QMAKE_FOUND) NO_SYSTEM_PATH ) + # if qmake wasn't found in the specific dirs, now check the system path IF(NOT QT_MOC_EXECUTABLE) FIND_PROGRAM(QT_MOC_EXECUTABLE NAMES moc ) ENDIF(NOT QT_MOC_EXECUTABLE) @@ -603,6 +502,7 @@ IF(QT4_QMAKE_FOUND) /usr/bin/qt4 ) + # first the specific paths, then the system path, same as with qmake FIND_PROGRAM(QT_UIC_EXECUTABLE NAMES uic PATHS @@ -656,19 +556,25 @@ IF(QT4_QMAKE_FOUND) IF(${_filename} MATCHES "^/.+") SET(${_abs_filename} ${_filename}) ELSE(${_filename} MATCHES "^/.+") - SET(${_abs_filename} ${CMAKE_CURRENT_SOURCE_DIR}/${_filename}) +# if you are on windows and have problems converting relative paths to absolute paths +# check if un-commenting the following lines works for you and let me know, Alex, neundorf@kde.org +# IF(${_filename} MATCHES "^[a-zA-Z]:\\\\") +# SET(${_abs_filename} ${_filename}) +# ELSE(${_filename} MATCHES "^[a-zA-Z]:\\\\") + SET(${_abs_filename} ${CMAKE_CURRENT_SOURCE_DIR}/${_filename}) +# ENDIF(${_filename} MATCHES "^[a-zA-Z]:\\\\") ENDIF(${_filename} MATCHES "^/.+") - ENDMACRO(QT4_GET_ABS_PATH) + ENDMACRO(QT4_GET_ABS_PATH) - MACRO(QT4_GET_MOC_INC_DIRS _moc_INC_DIRS) - SET(${_moc_INC_DIRS}) - GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES) + MACRO(QT4_GET_MOC_INC_DIRS _moc_INC_DIRS) + SET(${_moc_INC_DIRS}) + GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES) - FOREACH(_current ${_inc_DIRS}) + FOREACH(_current ${_inc_DIRS}) SET(${_moc_INC_DIRS} ${${_moc_INC_DIRS}} "-I" ${_current}) - ENDFOREACH(_current ${_inc_DIRS}) - ENDMACRO(QT4_GET_MOC_INC_DIRS) + ENDFOREACH(_current ${_inc_DIRS}) + ENDMACRO(QT4_GET_MOC_INC_DIRS) MACRO(QT4_GENERATE_MOC infile outfile ) # get include dirs |