diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/FindLibXml2.cmake | 45 | ||||
-rw-r--r-- | modules/FindLibXslt.cmake | 45 | ||||
-rw-r--r-- | modules/FindQt4.cmake | 43 |
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) |