mirror of
https://github.com/reactos/CMake.git
synced 2024-11-29 14:30:27 +00:00
9db3116226
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
63 lines
2.4 KiB
CMake
63 lines
2.4 KiB
CMake
set(MY_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
|
|
|
|
# The find_* commands do path normalization so we should do so too
|
|
# before comparing results.
|
|
get_filename_component(MY_SOURCE_DIR "${MY_SOURCE_DIR}" ABSOLUTE)
|
|
|
|
set(_HEADER cmake_i_do_not_exist_in_the_system.h)
|
|
set(_HEADER_FULL "${MY_SOURCE_DIR}/include/${_HEADER}")
|
|
set(_HEADER_FULL_A "${MY_SOURCE_DIR}/A/include/${_HEADER}")
|
|
|
|
# at first check that the header isn't found without special measures
|
|
find_file(FOO_H_1 ${_HEADER})
|
|
if(FOO_H_1)
|
|
message(FATAL_ERROR "${_HEADER} found: ${FOO_H_1}, it should not exist !")
|
|
endif()
|
|
|
|
# The HINTS option should override the system but the PATHS option
|
|
# should not.
|
|
set(CMAKE_SYSTEM_PREFIX_PATH ${MY_SOURCE_DIR})
|
|
find_file(TEST_H_1 ${_HEADER} HINTS ${MY_SOURCE_DIR}/A/include)
|
|
find_file(TEST_H_2 ${_HEADER} PATHS ${MY_SOURCE_DIR}/A/include)
|
|
if(NOT "${TEST_H_1}" STREQUAL "${_HEADER_FULL_A}")
|
|
message(FATAL_ERROR "Did not find \"${_HEADER_FULL_A}\"\ngot \"${TEST_H_1}\" instead!")
|
|
endif()
|
|
if(NOT "${TEST_H_2}" STREQUAL "${_HEADER_FULL}")
|
|
message(FATAL_ERROR "Did not find \"${_HEADER_FULL}\"\ngot \"${TEST_H_2}\" instead!")
|
|
endif()
|
|
set(CMAKE_SYSTEM_PREFIX_PATH)
|
|
|
|
# with this it still should not be found, since the include/ subdir is still missing
|
|
set(CMAKE_INCLUDE_PATH "${MY_SOURCE_DIR}")
|
|
find_file(FOO_H_2 ${_HEADER})
|
|
if(FOO_H_2)
|
|
message(FATAL_ERROR "${_HEADER} found: ${FOO_H_2}, it should not exist !")
|
|
endif()
|
|
|
|
# now with the PATH_SUFFIX it should be found
|
|
find_file(FOO_H_3 NAMES ${_HEADER} PATH_SUFFIXES include )
|
|
if(NOT "${FOO_H_3}" STREQUAL "${_HEADER_FULL}")
|
|
message(FATAL_ERROR "Did not find \"${_HEADER_FULL}\"\ngot ${FOO_H_3} instead !")
|
|
endif()
|
|
|
|
# without PATH_SUFFIX, but with a CMAKE_INCLUDE_PATH it should not be found
|
|
set(CMAKE_INCLUDE_PATH /include)
|
|
find_file(FOO_H_4 ${_HEADER})
|
|
if(FOO_H_4)
|
|
message(FATAL_ERROR "${_HEADER} found: ${FOO_H_4}, it should not exist !")
|
|
endif()
|
|
|
|
# when setting CMAKE_FIND_ROOT_PATH to the current source dir,
|
|
# together with the CMAKE_INCLUDE_PATH it should be found
|
|
set(CMAKE_FIND_ROOT_PATH blub "${MY_SOURCE_DIR}")
|
|
find_file(FOO_H_5 ${_HEADER})
|
|
if(NOT "${FOO_H_5}" STREQUAL "${_HEADER_FULL}")
|
|
message(FATAL_ERROR "Did not find \"${_HEADER_FULL}\"\ngot ${FOO_H_5} instead !")
|
|
endif()
|
|
|
|
# by explicitly disabling CMAKE_FIND_ROOT_PATH again it shouldn't be found
|
|
find_file(FOO_H_6 ${_HEADER} NO_CMAKE_FIND_ROOT_PATH)
|
|
if(FOO_H_6)
|
|
message(FATAL_ERROR "${_HEADER} found: ${FOO_H_6}, it should not exist !")
|
|
endif()
|