I wrote the documentation and extended the GeneratorExpression tests for the SHELL_PATH genex. It works fine for WIN32 and UNIX. However, I'm having some trouble to test for MSYS. The check looks like:
if(MSYS) check(test_shell_path "/c/shell/path") elseif(WIN32) check(test_shell_path "c:\\\\shell\\\\path") elseif(UNIX) check(test_shell_path "c:/shell/path") endif() No matter what I'm doing, it always ends up in the WIN32 branch with FORWARD slashes. Additionally the drive letter is NOT converted to a posix path as it should be the case for MSYS. I tried MSYS from the official MinGW package, and I tried the MSYS2 installer. In both cases I called cmake from MinGW-sh, MSYS-sh, and even cmd.exe. I used the "MSYS Makefiles" Generator. In addition I tried the "MinGW Makefiles" generator just to check if "if(MINGW)" is working... which also fails. The configuring/generating itself is working.. Any ideas? Stefan -----Original Message----- From: Brad King [mailto:brad.k...@kitware.com] Sent: Donnerstag, 17. September 2015 15:56 To: Kislinskiy, Stefan Cc: CHEVRIER, Marc; cmake-developers@cmake.org; James Johnston Subject: Re: [cmake-developers] generator expression for path slash conversion On 09/17/2015 09:51 AM, Kislinskiy, Stefan wrote: > I wrote a SHELL_PATH genex which uses > cmOutputConverter->ConvertToOutputFormat(..., SHELL) for the conversion. > I decided to name the genex SHELL_PATH instead of TO_SHELL_PATH for > the sake of consistency to other genexes like LOWER_CASE. What do you think? LGTM. > I would write some documentation as well of course. Yes, please. Also please look at extending the test suite to cover it. See Tests/GeneratorExpression for genex unit test examples. If possible we should also have a case that uses it in practice in a way that fails on invocation of an actual native tool if the slashes are wrong. That will confirm not only that the genex does what we expect but that it also solves the problem we're trying to solve. Thanks, -Brad
shell_path_genex_v2.patch
Description: shell_path_genex_v2.patch
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers