diff options
author | Alexander Neundorf <neundorf@kde.org> | 2006-01-22 16:33:31 +0000 |
---|---|---|
committer | Alexander Neundorf <neundorf@kde.org> | 2006-01-22 16:33:31 +0000 |
commit | 71e286cff4be54ac5a71898141234bd210882be5 (patch) | |
tree | c8f42eebbcec97a18a379bd19a5e51e0f5567c69 | |
parent | 7c7a0e07ca201f1f5dd51bf87d6c023dc9dc28f0 (diff) | |
download | extra-cmake-modules-71e286cff4be54ac5a71898141234bd210882be5.tar.gz extra-cmake-modules-71e286cff4be54ac5a71898141234bd210882be5.tar.bz2 |
-files for detecting bzip2 and cups
-better support for libtool convenience libs
Alex
svn path=/trunk/KDE/kdesdk/cmake/; revision=501320
-rwxr-xr-x | am2cmake | 51 | ||||
-rw-r--r-- | kde4/FindKDE4.cmake | 7 | ||||
-rw-r--r-- | kde4/KDE4Macros.cmake | 58 | ||||
-rw-r--r-- | modules/FindBZip2.cmake | 38 | ||||
-rw-r--r-- | modules/FindCups.cmake | 35 |
5 files changed, 131 insertions, 58 deletions
@@ -701,14 +701,6 @@ class CMakeFile srcsName=buildTarget.name+"_LIB_SRCS" elsif buildTarget.type==StaticLib srcsName=buildTarget.name+"_STAT_SRCS" - if $withConvLibs -#<porting info for libtool convenience libs> - $convFile.printf("# %s: %s\n\n", @amFile, buildTarget.name) - $convFile.printf("set(%s \n", srcsName) - buildTarget.sources.each { |currentFile| $convFile.printf(" ${CMAKE_SOURCE_DIR}/%s%s\n", @path, currentFile) } - $convFile.printf(")\n\n", srcsName) - next # do nothing for static libs - end #</porting info for libtool convenience libs> elsif buildTarget.type==Part srcsName=buildTarget.name+"_PART_SRCS" @@ -724,6 +716,49 @@ class CMakeFile kcfgsName=buildTarget.name+"_KCFG_SRCS" qrcsName=buildTarget.name+"_QRC" + + if buildTarget.type==StaticLib && $withConvLibs +#<porting info for libtool convenience libs> + $convFile.printf("# %s: %s\n\n", @amFile, buildTarget.name) + + if buildTarget.sources.empty? + $convFile.printf("set(%s \n", srcsName) + buildTarget.sources.each { |currentFile| $convFile.printf(" ${CMAKE_SOURCE_DIR}/%s%s\n", @path, currentFile) } + $convFile.printf(")\n\n", srcsName) + end + if not buildTarget.uis.empty? + $convFile.printf("set( %s\n", uisName) + buildTarget.uis.each{ |currentFile| $convFile.printf("%s\n", currentFile)} + $convFile.printf(")\n\n") + end + if not buildTarget.ui3s.empty? + $convFile.printf("set( %s\n", ui3sName) + buildTarget.ui3s.each{ |currentFile| $convFile.printf("%s\n", currentFile)} + $convFile.printf(")\n\n") + end + if not buildTarget.qrcs.empty? + $convFile.printf("set( %s\n", qrcsName) + buildTarget.qrcs.each{ |currentFile| $convFile.printf("%s\n", currentFile)} + $convFile.printf(")\n\n") + end + if not buildTarget.skels.empty? + $convFile.printf("set( %s\n", skelsName) + buildTarget.skels.each{ |currentFile| $convFile.printf("%s\n", currentFile)} + $convFile.printf(")\n\n") + end + if not buildTarget.stubs.empty? + $convFile.printf("set( %s\n", stubsName) + buildTarget.stubs.each{ |currentFile| $convFile.printf("%s\n", currentFile)} + $convFile.printf(")\n\n") + end + if not buildTarget.kcfgs.empty? + $convFile.printf("set( %s\n", kcfgsName) + buildTarget.kcfgs.each{ |currentFile| $convFile.printf("%s\n", currentFile)} + $convFile.printf(")\n\n") + end + next # do nothing else for static libs + end + if buildTarget.sources.empty? buildTarget.sources.push("dummy.cpp") end diff --git a/kde4/FindKDE4.cmake b/kde4/FindKDE4.cmake index 30bb1714..2df6b765 100644 --- a/kde4/FindKDE4.cmake +++ b/kde4/FindKDE4.cmake @@ -36,7 +36,8 @@ INCLUDE(FindQt4) SET(QT_AND_KDECORE_LIBS ${QT_QTCORE_LIBRARY} kdecore) #add some KDE specific stuff -SET(KDE4_DEFINITIONS -DQT3_SUPPORT -DQT_CLEAN_NAMESPACE ) +# not used in Qt4: QT_NO_COMPAT, QT_CLEAN_NAMESPACE, QT_THREAD_SUPPORT +SET(KDE4_DEFINITIONS -DQT3_SUPPORT -DQT_NO_STL -DQT_NO_CAST_TO_ASCII -DQT_NO_TRANSLATION -D_REENTRANT ) 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 -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common") @@ -46,6 +47,10 @@ IF(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") SET(KDE4_DEFINITIONS ${KDE4_DEFINITIONS} -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_GNU_SOURCE) ENDIF(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") +IF(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") + SET(KDE4_DEFINITIONS ${KDE4_DEFINITIONS} -D_GNU_SOURCE) +ENDIF(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") + #SET(CMAKE_SHARED_LINKER_FLAGS "-avoid-version -module -Wl,--no-undefined -Wl,--allow-shlib-undefined") SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -avoid-version -Wl,--no-undefined -lc") diff --git a/kde4/KDE4Macros.cmake b/kde4/KDE4Macros.cmake index 10370a60..8cbeb6f8 100644 --- a/kde4/KDE4Macros.cmake +++ b/kde4/KDE4Macros.cmake @@ -1,5 +1,5 @@ # this file contains the following macros: -# ADD_FILE_DEPENDANCY +# KDE4_ADD_FILE_DEPENDANCY # KDE4_ADD_DCOP_SKELS # KDE4_ADD_DCOP_STUBS # KDE4_ADD_MOC_FILES @@ -37,11 +37,7 @@ ENDMACRO(KDE4_ADD_FILE_DEPENDANCY) MACRO(KDE4_ADD_DCOP_SKELS _sources) FOREACH (_current_FILE ${ARGN}) - IF(${_current_FILE} MATCHES "^/.+") #abs path - SET(_tmp_FILE ${_current_FILE}) - ELSE(${_current_FILE} MATCHES "^/.+") - SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) - ENDIF(${_current_FILE} MATCHES "^/.+") + QT4_GET_ABS_PATH(_tmp_FILE ${_current_FILE}) GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) @@ -69,11 +65,7 @@ ENDMACRO(KDE4_ADD_DCOP_SKELS) MACRO(KDE4_ADD_DCOP_STUBS _sources) FOREACH (_current_FILE ${ARGN}) - IF(${_current_FILE} MATCHES "^/.+") #abs path - SET(_tmp_FILE ${_current_FILE}) - ELSE(${_current_FILE} MATCHES "^/.+") - SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) - ENDIF(${_current_FILE} MATCHES "^/.+") + QT4_GET_ABS_PATH(_tmp_FILE ${_current_FILE}) GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) @@ -102,11 +94,7 @@ ENDMACRO(KDE4_ADD_DCOP_STUBS) MACRO(KDE4_ADD_KCFG_FILES _sources) FOREACH (_current_FILE ${ARGN}) - IF(${_current_FILE} MATCHES "^/.+") #abs path - SET(_tmp_FILE ${_current_FILE}) - ELSE(${_current_FILE} MATCHES "^/.+") - SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) - ENDIF(${_current_FILE} MATCHES "^/.+") + QT4_GET_ABS_PATH(_tmp_FILE ${_current_FILE}) GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) @@ -151,11 +139,7 @@ ENDMACRO(KDE4_ADD_KCFG_FILES) MACRO(KDE4_ADD_UI_FILES _sources ) FOREACH (_current_FILE ${ARGN}) - IF(${_current_FILE} MATCHES "^/.+") - SET(_tmp_FILE ${_current_FILE}) - ELSE(${_current_FILE} MATCHES "^/.+") - SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) - ENDIF(${_current_FILE} MATCHES "^/.+") + QT4_GET_ABS_PATH(_tmp_FILE ${_current_FILE}) GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) @@ -176,29 +160,15 @@ MACRO(KDE4_ADD_UI_FILES _sources ) ENDFOREACH (_current_FILE) ENDMACRO(KDE4_ADD_UI_FILES) -MACRO(KDE4_GET_MOC_INC_DIRS _moc_INC_DIRS) - SET(${_moc_INC_DIRS}) - GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES) - - FOREACH(_current ${_inc_DIRS}) - SET(${_moc_INC_DIRS} ${${_moc_INC_DIRS}} "-I" ${_current}) - ENDFOREACH(_current ${_inc_DIRS}) -ENDMACRO(KDE4_GET_MOC_INC_DIRS _moc_INC_DIRS) - #create the implementation files from the ui files and add them to the list of sources #usage: KDE_ADD_UI_FILES(foo_SRCS ${ui_files}) MACRO(KDE4_ADD_UI3_FILES _sources ) - KDE4_GET_MOC_INC_DIRS(_moc_INCS) + QT4_GET_MOC_INC_DIRS(_moc_INCS) FOREACH (_current_FILE ${ARGN}) - IF(${_current_FILE} MATCHES "^/.+") - SET(_tmp_FILE ${_current_FILE}) - ELSE(${_current_FILE} MATCHES "^/.+") - SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) - ENDIF(${_current_FILE} MATCHES "^/.+") - + QT4_GET_ABS_PATH(_tmp_FILE ${_current_FILE}) GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) @@ -251,21 +221,14 @@ ENDMACRO(KDE4_ADD_UI3_FILES) MACRO(KDE4_AUTOMOC) - KDE4_GET_MOC_INC_DIRS(_moc_INCS) + QT4_GET_MOC_INC_DIRS(_moc_INCS) SET(_matching_FILES ) FOREACH (_current_FILE ${ARGN}) - IF(${_current_FILE} MATCHES "^/.+") - SET(_tmp_FILE ${_current_FILE}) - ELSE(${_current_FILE} MATCHES "^/.+") - SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) - ENDIF(${_current_FILE} MATCHES "^/.+") - -#message(STATUS "file: ${_tmp_FILE}") + QT4_GET_ABS_PATH(_tmp_FILE ${_current_FILE}) IF (EXISTS ${_tmp_FILE}) -#message(STATUS "exists") FILE(READ ${_tmp_FILE} _contents) @@ -274,16 +237,13 @@ MACRO(KDE4_AUTOMOC) STRING(REGEX MATCHALL "#include +[^ ]+\\.moc[\">]" _match "${_contents}") IF(_match) -#message(STATUS "match 1") FOREACH (_current_MOC_INC ${_match}) -#message(STATUS "match 2") STRING(REGEX MATCH "[^ <\"]+\\.moc" _current_MOC "${_current_MOC_INC}") GET_FILENAME_COMPONENT(_basename ${_current_MOC} NAME_WE) # SET(_header ${CMAKE_CURRENT_SOURCE_DIR}/${_basename}.h) SET(_header ${_abs_PATH}/${_basename}.h) SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC}) -# MESSAGE(STATUS "----- moc: ${_moc}") ADD_CUSTOM_COMMAND(OUTPUT ${_moc} COMMAND ${QT_MOC_EXECUTABLE} ARGS ${_moc_INCS} ${_header} -o ${_moc} diff --git a/modules/FindBZip2.cmake b/modules/FindBZip2.cmake new file mode 100644 index 00000000..b6a99d62 --- /dev/null +++ b/modules/FindBZip2.cmake @@ -0,0 +1,38 @@ +# - Try to find BZip2 +# Once done this will define +# +# BZIP2_FOUND - system has BZip2 +# BZIP2_INCLUDE_DIR - the BZip2 include directory +# BZIP2_LIBRARY - Link these to use OpenGL and GLU +# BZIP2_DEFINITIONS - Compiler switches required for using BZip2 +# BZIP2_NEED_PREFIX - this is set if the functions are prefixed with BZ2_ +# + + +FIND_PATH(BZIP2_INCLUDE_DIR bzlib.h + /usr/include + /usr/local/include +) + +FIND_LIBRARY(BZIP2_LIBRARY NAMES bz2 + PATHS + /usr/lib + /usr/local/lib +) + +IF(BZIP2_INCLUDE_DIR AND BZIP2_LIBRARY) + SET(BZIP2_FOUND TRUE) + INCLUDE(CheckLibraryExists) + check_library_exists(${BZIP2_LIBRARY} BZ2_bzCompressInit "" BZIP2_NEED_PREFIX) +ENDIF(BZIP2_INCLUDE_DIR AND BZIP2_LIBRARY) + +IF(BZIP2_FOUND) + IF(NOT BZIP2_QUIETLY) + MESSAGE(STATUS "Found BZip2: ${BZIP2_LIBRARY}") + ENDIF(NOT BZIP2_QUIETLY) +ELSE(BZIP2_FOUND) + IF(NOT BZIP2_REQUIRED) + MESSAGE(SEND_ERROR "Could not find BZip2") + ENDIF(NOT BZIP2_REQUIRED) +ENDIF(BZIP2_FOUND) + diff --git a/modules/FindCups.cmake b/modules/FindCups.cmake new file mode 100644 index 00000000..1e669d45 --- /dev/null +++ b/modules/FindCups.cmake @@ -0,0 +1,35 @@ +# - Try to find Cups +# Once done this will define +# +# CUPS_FOUND - system has Cups +# CUPS_INCLUDE_DIR - the Cups include directory +# CUPS_LIBRARY - Link these to use OpenGL and GLU +# CUPS_DEFINITIONS - Compiler switches required for using Cups +# + + +FIND_PATH(CUPS_INCLUDE_DIR cups/cups.h + /usr/include + /usr/local/include +) + +FIND_LIBRARY(CUPS_LIBRARY NAMES cups + PATHS + /usr/lib + /usr/local/lib +) + +IF(CUPS_INCLUDE_DIR AND CUPS_LIBRARY) + SET(CUPS_FOUND TRUE) +ENDIF(CUPS_INCLUDE_DIR AND CUPS_LIBRARY) + +IF(CUPS_FOUND) + IF(NOT CUPS_QUIETLY) + MESSAGE(STATUS "Found Cups: ${CUPS_LIBRARY}") + ENDIF(NOT CUPS_QUIETLY) +ELSE(CUPS_FOUND) + IF(NOT CUPS_REQUIRED) + MESSAGE(SEND_ERROR "Could not find Cups") + ENDIF(NOT CUPS_REQUIRED) +ENDIF(CUPS_FOUND) + |