
Since commitca6ba3fee5
(Genex: Add a SHELL_PATH expression, 2015-09-24, v3.4.0-rc1~37^2) and commit21da25d2a8
(Tests: Generalize GeneratorExpression MSYS path conversion workaround, 2019-03-11, v3.15.0-rc1~407^2~1) we use a prefix string to prevent the MSYS 1.0 shell from converting absolute paths of the form `/c/...` to windows-style paths. In the newer `mingw.osdn.io` distribution of MSYS 1.0, the `bash` shell now also converts paths that appear after `:`. We have no way to add a prefix string in that context, so perform the test's check of the `SHELL_PATH` genex value at generate time instead.
39 lines
1.1 KiB
CMake
39 lines
1.1 KiB
CMake
include(${CMAKE_CURRENT_LIST_DIR}/check-common.cmake)
|
|
|
|
if(msys1_prefix)
|
|
string(REPLACE "${msys1_prefix}" "" test_shell_path ${test_shell_path})
|
|
endif()
|
|
|
|
if(WIN32)
|
|
if(CMAKE_GENERATOR STREQUAL "MSYS Makefiles")
|
|
check(test_shell_path [[/c/shell/path]])
|
|
elseif(CMAKE_GENERATOR STREQUAL "Unix Makefiles")
|
|
check(test_shell_path [[c:/shell/path]])
|
|
else()
|
|
check(test_shell_path [[c:\shell\path]])
|
|
endif()
|
|
else()
|
|
check(test_shell_path [[/shell/path]])
|
|
endif()
|
|
if(WIN32)
|
|
if(CMAKE_GENERATOR STREQUAL "MSYS Makefiles")
|
|
if(msys1_prefix)
|
|
# The comparison was done at generate time with the STREQUAL genex.
|
|
check(test_shell_path2 [[1]])
|
|
else()
|
|
check(test_shell_path2 [[/c/shell/path:/d/another/path]])
|
|
endif()
|
|
elseif(CMAKE_GENERATOR STREQUAL "Unix Makefiles")
|
|
check(test_shell_path2 [[c:/shell/path;d:/another/path]])
|
|
else()
|
|
check(test_shell_path2 [[c:\shell\path;d:\another\path]])
|
|
endif()
|
|
else()
|
|
check(test_shell_path2 [[/shell/path:/another/path]])
|
|
endif()
|
|
|
|
check(if_1 "a")
|
|
check(if_2 "b")
|
|
check(if_3 "b")
|
|
check(if_4 "a")
|