aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/FindLibXml2.cmake45
-rw-r--r--modules/FindLibXslt.cmake45
-rw-r--r--modules/FindQt4.cmake43
3 files changed, 124 insertions, 9 deletions
diff --git a/modules/FindLibXml2.cmake b/modules/FindLibXml2.cmake
new file mode 100644
index 00000000..37486afc
--- /dev/null
+++ b/modules/FindLibXml2.cmake
@@ -0,0 +1,45 @@
+# - Try to find LibXml2
+# Once done this will define
+#
+# LIBXML2_FOUND - system has LibXml2
+# LIBXML2_INCLUDE_DIR - the LibXml2 include directory
+# LIBXML2_LIBRARY - Link these to use OpenGL and GLU
+# LIBXML2_DEFINITIONS - Compiler switches required for using LibXml2
+#
+# use pkg-config to get the directories and then use these values
+# in the FIND_PATH() and FIND_LIBRARY() calls
+
+
+INCLUDE(UsePkgConfig)
+
+PKGCONFIG(libxml-2.0 _LibXml2IncDir _LibXml2LinkDir _LibXml2LinkFlags _LibXml2Cflags)
+
+SET(LIBXML2_DEFINITIONS ${_LibXml2Cflags})
+
+FIND_PATH(LIBXML2_INCLUDE_DIR libxml/xpath.h
+ ${_LibXml2IncDir}/libxml2
+ /usr/include/libxml2
+ /usr/local/include/libxml2
+)
+
+FIND_LIBRARY(LIBXML2_LIBRARY NAMES xml2
+ PATHS
+ ${_LibXml2LinkDir}
+ /usr/lib
+ /usr/local/lib
+)
+
+IF(LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARY)
+ SET(LIBXML2_FOUND TRUE)
+ENDIF(LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARY)
+
+IF(LIBXML2_FOUND)
+ IF(NOT LIBXML2_QUIETLY)
+ MESSAGE(STATUS "Found LibXml2: ${LIBXML2_LIBRARY}")
+ ENDIF(NOT LIBXML2_QUIETLY)
+ELSE(LIBXML2_FOUND)
+ IF(NOT LIBXML2_REQUIRED)
+ MESSAGE(SEND_ERROR "Could not find LibXml2")
+ ENDIF(NOT LIBXML2_REQUIRED)
+ENDIF(LIBXML2_FOUND)
+
diff --git a/modules/FindLibXslt.cmake b/modules/FindLibXslt.cmake
new file mode 100644
index 00000000..ed23fd64
--- /dev/null
+++ b/modules/FindLibXslt.cmake
@@ -0,0 +1,45 @@
+# - Try to find LibXslt
+# Once done this will define
+#
+# LIBXSLT_FOUND - system has LibXslt
+# LIBXSLT_INCLUDE_DIR - the LibXslt include directory
+# LIBXSLT_LIBRARY - Link these to use OpenGL and GLU
+# LIBXSLT_DEFINITIONS - Compiler switches required for using LibXslt
+#
+
+
+# use pkg-config to get the directories and then use these values
+# in the FIND_PATH() and FIND_LIBRARY() calls
+INCLUDE(UsePkgConfig)
+
+PKGCONFIG(libxslt _LibXsltIncDir _LibXsltLinkDir _LibXsltLinkFlags _LibXsltCflags)
+
+SET(LIBXSLT_DEFINITIONS ${_LibXsltCflags})
+
+FIND_PATH(LIBXSLT_INCLUDE_DIR libxslt/xslt.h
+ ${_LibXsltIncDir}
+ /usr/include
+ /usr/local/include
+)
+
+FIND_LIBRARY(LIBXSLT_LIBRARY NAMES xslt
+ PATHS
+ ${_LibXsltLinkDir}
+ /usr/lib
+ /usr/local/lib
+)
+
+IF(LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARY)
+ SET(LIBXSLT_FOUND TRUE)
+ENDIF(LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARY)
+
+IF(LIBXSLT_FOUND)
+ IF(NOT LIBXSLT_QUIETLY)
+ MESSAGE(STATUS "Found LibXslt: ${LIBXSLT_LIBRARY}")
+ ENDIF(NOT LIBXSLT_QUIETLY)
+ELSE(LIBXSLT_FOUND)
+ IF(NOT LIBXSLT_REQUIRED)
+ MESSAGE(SEND_ERROR "Could not find LibXslt")
+ ENDIF(NOT LIBXSLT_REQUIRED)
+ENDIF(LIBXSLT_FOUND)
+
diff --git a/modules/FindQt4.cmake b/modules/FindQt4.cmake
index 47ac15d8..d2cea8a4 100644
--- a/modules/FindQt4.cmake
+++ b/modules/FindQt4.cmake
@@ -637,28 +637,53 @@ IF(QT4_QMAKE_FOUND)
#
######################################
+ MACRO(QT4_GET_ABS_PATH _abs_filename _filename)
+ IF(${_filename} MATCHES "^/.+")
+ SET(${_abs_filename} ${_filename})
+ ELSE(${_filename} MATCHES "^/.+")
+ SET(${_abs_filename} ${CMAKE_CURRENT_SOURCE_DIR}/${_filename})
+ ENDIF(${_filename} MATCHES "^/.+")
+ 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)
+
+ FOREACH(_current ${_inc_DIRS})
+ SET(${_moc_INC_DIRS} ${${_moc_INC_DIRS}} "-I" ${_current})
+ ENDFOREACH(_current ${_inc_DIRS})
+ ENDMACRO(QT4_GET_MOC_INC_DIRS)
+
+ MACRO(QT4_GENERATE_MOC infile outfile )
+ # get include dirs
+ QT4_GET_MOC_INC_DIRS(moc_includes)
+
+ QT4_GET_ABS_PATH(infile ${infile})
+
+ ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
+ COMMAND ${QT_MOC_EXECUTABLE}
+ ARGS ${moc_includes} -o ${outfile} ${infile}
+ MAIN_DEPENDENCY ${infile})
+ ENDMACRO(QT4_GENERATE_MOC)
+
# QT4_WRAP_CPP(outfiles inputfile ... )
# TODO perhaps add support for -D, -U and other minor options
MACRO(QT4_WRAP_CPP outfiles )
-
# get include dirs
- GET_DIRECTORY_PROPERTY(moc_includes_tmp INCLUDE_DIRECTORIES)
- SET(moc_includes)
- FOREACH(it ${moc_includes_tmp})
- SET(moc_includes ${moc_includes} "-I${it}")
- ENDFOREACH(it)
+ QT4_GET_MOC_INC_DIRS(moc_includes)
FOREACH(it ${ARGN})
+ QT4_GET_ABS_PATH(it ${it})
GET_FILENAME_COMPONENT(outfile ${it} NAME_WE)
- SET(infile ${CMAKE_CURRENT_SOURCE_DIR}/${it})
SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/moc_${outfile}.cxx)
ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
COMMAND ${QT_MOC_EXECUTABLE}
- ARGS ${moc_includes} -o ${outfile} ${infile}
- MAIN_DEPENDENCY ${infile})
+ ARGS ${moc_includes} -o ${outfile} ${it}
+ MAIN_DEPENDENCY ${it})
SET(${outfiles} ${${outfiles}} ${outfile})
ENDFOREACH(it)