86 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
cmake_minimum_required (VERSION 2.8)
 | 
						|
project(AllFindModules)
 | 
						|
 | 
						|
if (POLICY CMP0017)
 | 
						|
  cmake_policy(SET CMP0017 NEW)
 | 
						|
endif ()
 | 
						|
 | 
						|
# Avoid ctest truncation of output
 | 
						|
message(STATUS "CTEST_FULL_OUTPUT")
 | 
						|
 | 
						|
file(GLOB FIND_MODULES "${CMAKE_CURRENT_SOURCE_DIR}/../../../Modules/Find*.cmake" )
 | 
						|
 | 
						|
macro(do_find MODULE_NAME)
 | 
						|
    message(STATUS "   Checking Find${MODULE_NAME}")
 | 
						|
    find_package(${MODULE_NAME})
 | 
						|
endmacro()
 | 
						|
 | 
						|
# It is only possible to use either Qt3 or Qt4 in one project.
 | 
						|
# Since FindQt will complain if both are found we explicitly request Qt4 here
 | 
						|
# and filter out FindQt3. FindKDE3 also depends on Qt3 and
 | 
						|
# is therefore also blocked
 | 
						|
set(DESIRED_QT_VERSION 4)
 | 
						|
set(NO_QT4_MODULES "Qt3" "KDE3")
 | 
						|
 | 
						|
# These modules are named Find*.cmake, but are nothing that works in
 | 
						|
# find_package().
 | 
						|
set(NO_FIND_MODULES "PackageHandleStandardArgs" "PackageMessage")
 | 
						|
 | 
						|
foreach(FIND_MODULE ${FIND_MODULES})
 | 
						|
    string(REGEX REPLACE ".*/Find(.*)\\.cmake$" "\\1" MODULE_NAME "${FIND_MODULE}")
 | 
						|
 | 
						|
    list(FIND NO_QT4_MODULES ${MODULE_NAME} NO_QT4_INDEX)
 | 
						|
    list(FIND NO_FIND_MODULES ${MODULE_NAME} NO_FIND_INDEX)
 | 
						|
    if (NO_QT4_INDEX EQUAL -1 AND NO_FIND_INDEX EQUAL -1)
 | 
						|
        do_find(${MODULE_NAME})
 | 
						|
    endif ()
 | 
						|
 | 
						|
endforeach()
 | 
						|
 | 
						|
# Qt4 is not present, so we can check Qt3
 | 
						|
if (NOT QT4_FOUND)
 | 
						|
    set(DESIRED_QT_VERSION 3)
 | 
						|
    foreach(FIND_MODULE ${NO_QT4_MODULES} "Qt")
 | 
						|
        do_find(${FIND_MODULE})
 | 
						|
    endforeach()
 | 
						|
endif ()
 | 
						|
 | 
						|
macro(check_version_string MODULE_NAME VERSION_VAR)
 | 
						|
    if (${MODULE_NAME}_FOUND)
 | 
						|
        if (DEFINED ${VERSION_VAR})
 | 
						|
            message(STATUS "${VERSION_VAR}='${${VERSION_VAR}}'")
 | 
						|
            if (NOT ${VERSION_VAR} MATCHES "^[0-9]")
 | 
						|
                message(SEND_ERROR "unexpected: ${VERSION_VAR} does not begin with a decimal digit")
 | 
						|
            endif()
 | 
						|
            if ("${${VERSION_VAR}}" STREQUAL "")
 | 
						|
                message(SEND_ERROR "unexpected: ${VERSION_VAR} is empty")
 | 
						|
            endif()
 | 
						|
            if (${VERSION_VAR} VERSION_EQUAL 0)
 | 
						|
                message(SEND_ERROR "unexpected: ${VERSION_VAR} is VERSION_EQUAL 0")
 | 
						|
            endif()
 | 
						|
            if (NOT ${VERSION_VAR} VERSION_GREATER 0)
 | 
						|
                message(SEND_ERROR "unexpected: ${VERSION_VAR} is NOT VERSION_GREATER 0")
 | 
						|
            endif()
 | 
						|
        else()
 | 
						|
            message(SEND_ERROR "${MODULE_NAME}_FOUND is set but version number variable ${VERSION_VAR} is NOT DEFINED")
 | 
						|
        endif()
 | 
						|
    endif ()
 | 
						|
endmacro()
 | 
						|
 | 
						|
# If any of these modules reported that it was found a version number should have been
 | 
						|
# reported.
 | 
						|
 | 
						|
foreach(VTEST ALSA ARMADILLO BZIP2 CUPS CURL EXPAT FREETYPE GETTEXT GIT HG
 | 
						|
        HSPELL ICOTOOL JASPER LIBLZMA LIBXML2 LIBXSLT PERL PKG_CONFIG
 | 
						|
        PostgreSQL TIFF ZLIB)
 | 
						|
    check_version_string(${VTEST} ${VTEST}_VERSION_STRING)
 | 
						|
endforeach()
 | 
						|
 | 
						|
foreach(VTEST BISON Boost CUDA DOXYGEN FLEX GIF GTK2 LibArchive OPENSCENEGRAPH
 | 
						|
        RUBY SWIG)
 | 
						|
    check_version_string(${VTEST} ${VTEST}_VERSION)
 | 
						|
endforeach()
 | 
						|
 | 
						|
check_version_string(PYTHONINTERP PYTHON_VERSION_STRING)
 | 
						|
check_version_string(SUBVERSION Subversion_VERSION_SVN)
 |