Document and test CMAKE_[CURRENT_](BINARY|SOURCE)_DIR in script mode

This commit is contained in:
Tamas Kenez 2015-10-05 22:12:30 +02:00 committed by Brad King
parent 3709e950f4
commit 8bb908b108
6 changed files with 35 additions and 0 deletions

View File

@ -6,3 +6,8 @@ The path to the top level of the build tree.
This is the full path to the top level of the current CMake build This is the full path to the top level of the current CMake build
tree. For an in-source build, this would be the same as tree. For an in-source build, this would be the same as
:variable:`CMAKE_SOURCE_DIR`. :variable:`CMAKE_SOURCE_DIR`.
When run in -P script mode, CMake sets the variables
:variable:`CMAKE_BINARY_DIR`, :variable:`CMAKE_SOURCE_DIR`,
:variable:`CMAKE_CURRENT_BINARY_DIR` and
:variable:`CMAKE_CURRENT_SOURCE_DIR` to the current working directory.

View File

@ -8,3 +8,8 @@ processed by cmake. Each directory added by :command:`add_subdirectory` will
create a binary directory in the build tree, and as it is being create a binary directory in the build tree, and as it is being
processed this variable will be set. For in-source builds this is the processed this variable will be set. For in-source builds this is the
current source directory being processed. current source directory being processed.
When run in -P script mode, CMake sets the variables
:variable:`CMAKE_BINARY_DIR`, :variable:`CMAKE_SOURCE_DIR`,
:variable:`CMAKE_CURRENT_BINARY_DIR` and
:variable:`CMAKE_CURRENT_SOURCE_DIR` to the current working directory.

View File

@ -5,3 +5,8 @@ The path to the source directory currently being processed.
This the full path to the source directory that is currently being This the full path to the source directory that is currently being
processed by cmake. processed by cmake.
When run in -P script mode, CMake sets the variables
:variable:`CMAKE_BINARY_DIR`, :variable:`CMAKE_SOURCE_DIR`,
:variable:`CMAKE_CURRENT_BINARY_DIR` and
:variable:`CMAKE_CURRENT_SOURCE_DIR` to the current working directory.

View File

@ -6,3 +6,8 @@ The path to the top level of the source tree.
This is the full path to the top level of the current CMake source This is the full path to the top level of the current CMake source
tree. For an in-source build, this would be the same as tree. For an in-source build, this would be the same as
:variable:`CMAKE_BINARY_DIR`. :variable:`CMAKE_BINARY_DIR`.
When run in -P script mode, CMake sets the variables
:variable:`CMAKE_BINARY_DIR`, :variable:`CMAKE_SOURCE_DIR`,
:variable:`CMAKE_CURRENT_BINARY_DIR` and
:variable:`CMAKE_CURRENT_SOURCE_DIR` to the current working directory.

View File

@ -0,0 +1,14 @@
if(NOT IS_DIRECTORY "${EXPECTED_WORKING_DIR}")
message(FATAL_ERROR "EXPECTED_WORKING_DIR is not a directory: ${EXPECTED_WORKING_DIR}")
endif()
foreach(d CMAKE_BINARY_DIR CMAKE_CURRENT_BINARY_DIR CMAKE_SOURCE_DIR CMAKE_CURRENT_SOURCE_DIR)
if(NOT DEFINED ${d})
message(FATAL_ERROR "${d} is not defined")
endif()
if(EXPECTED_WORKING_DIR STREQUAL "${${d}}")
message(STATUS "${d} is the expected working directory (${EXPECTED_WORKING_DIR})")
else()
message(FATAL_ERROR "${d} = \"${${d}}\" is not the expected working directory (${EXPECTED_WORKING_DIR})")
endif()
endforeach()

View File

@ -115,6 +115,7 @@ run_cmake_command(E_sleep-bad-arg2 ${CMAKE_COMMAND} -E sleep 1 -1)
run_cmake_command(E_sleep-one-tenth ${CMAKE_COMMAND} -E sleep 0.1) run_cmake_command(E_sleep-one-tenth ${CMAKE_COMMAND} -E sleep 0.1)
run_cmake_command(P_directory ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}) run_cmake_command(P_directory ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR})
run_cmake_command(P_working-dir ${CMAKE_COMMAND} -DEXPECTED_WORKING_DIR=${RunCMake_BINARY_DIR}/P_working-dir-build -P ${RunCMake_SOURCE_DIR}/P_working-dir.cmake)
set(RunCMake_TEST_OPTIONS set(RunCMake_TEST_OPTIONS
"-DFOO=-DBAR:BOOL=BAZ") "-DFOO=-DBAR:BOOL=BAZ")