mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-09-26 04:09:35 +03:00
39 lines
1.6 KiB
CMake
39 lines
1.6 KiB
CMake
# Place CMAKE_ROOT under the project source and run that nested cmake.
|
|
set(WuninitializedCMakeRoot_SAVED_CMAKE_COMMAND "${CMAKE_COMMAND}")
|
|
set(WuninitializedCMakeRoot_SAVED_PATH "$ENV{PATH}")
|
|
|
|
set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/WuninitializedCMakeRoot-src")
|
|
set(nested "${RunCMake_TEST_SOURCE_DIR}/nested")
|
|
set(cmake_root "${RunCMake_TEST_SOURCE_DIR}/cmake_root")
|
|
|
|
file(REMOVE_RECURSE "${RunCMake_TEST_SOURCE_DIR}")
|
|
file(MAKE_DIRECTORY "${RunCMake_TEST_SOURCE_DIR}" "${nested}/bin" "${nested}/CMakeFiles")
|
|
|
|
file(COPY "${RunCMake_SOURCE_DIR}/CMakeLists.txt"
|
|
"${RunCMake_SOURCE_DIR}/WuninitializedCMakeRoot.cmake"
|
|
DESTINATION "${RunCMake_TEST_SOURCE_DIR}")
|
|
|
|
file(CREATE_LINK "${CMAKE_ROOT}" "${cmake_root}" SYMBOLIC RESULT _link_result)
|
|
if(_link_result)
|
|
file(COPY "${CMAKE_ROOT}/Modules" DESTINATION "${cmake_root}")
|
|
endif()
|
|
file(WRITE "${nested}/CMakeFiles/CMakeSourceDir.txt" "${cmake_root}\n")
|
|
|
|
# Use the same file name as CMAKE_COMMAND (script mode may leave
|
|
# CMAKE_EXECUTABLE_SUFFIX empty).
|
|
get_filename_component(_cmake_name "${CMAKE_COMMAND}" NAME)
|
|
set(_nested_cmake "${nested}/bin/${_cmake_name}")
|
|
file(CREATE_LINK "${CMAKE_COMMAND}" "${_nested_cmake}" COPY_ON_ERROR RESULT _link_result)
|
|
if(_link_result)
|
|
message(FATAL_ERROR "Failed to link/copy cmake for WuninitializedCMakeRoot: ${_link_result}")
|
|
endif()
|
|
|
|
get_filename_component(_cmake_bin_dir "${CMAKE_COMMAND}" DIRECTORY)
|
|
if(CMAKE_HOST_WIN32)
|
|
set(ENV{PATH} "${_cmake_bin_dir};$ENV{PATH}")
|
|
else()
|
|
set(ENV{PATH} "${_cmake_bin_dir}:$ENV{PATH}")
|
|
endif()
|
|
|
|
set(CMAKE_COMMAND "${_nested_cmake}")
|