Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
85 lines
2.9 KiB
CMake
85 lines
2.9 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 HSPELL
|
|
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)
|