aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2006-01-22 16:33:31 +0000
committerAlexander Neundorf <neundorf@kde.org>2006-01-22 16:33:31 +0000
commit71e286cff4be54ac5a71898141234bd210882be5 (patch)
treec8f42eebbcec97a18a379bd19a5e51e0f5567c69
parent7c7a0e07ca201f1f5dd51bf87d6c023dc9dc28f0 (diff)
downloadextra-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-xam2cmake51
-rw-r--r--kde4/FindKDE4.cmake7
-rw-r--r--kde4/KDE4Macros.cmake58
-rw-r--r--modules/FindBZip2.cmake38
-rw-r--r--modules/FindCups.cmake35
5 files changed, 131 insertions, 58 deletions
diff --git a/am2cmake b/am2cmake
index 3d2109a9..7eff7bc2 100755
--- a/am2cmake
+++ b/am2cmake
@@ -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)
+