Sorry for the late answer, I was on vacation. 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? If it is okay I would write some documentation as well of course.
- Stefan -----Original Message----- From: Brad King [mailto:[email protected]] Sent: Montag, 31. August 2015 21:33 To: Kislinskiy, Stefan Cc: CHEVRIER, Marc; [email protected]; James Johnston Subject: Re: [cmake-developers] generator expression for path slash conversion (was: ExternalProject: Use native paths as substitute for directory tokens) On 08/31/2015 09:35 AM, Kislinskiy, Stefan wrote: > As there is already a patch for such a genex in bug 15509 and the > discussion in 5939 (both linked below in Brad's reply) started 7 years > ago... It would be a great pity to let this issue seep away again. > What can I do to help fixing this finally? Someone will need to think through and propose a specific genex that does the path conversion that makes sense in this context. I think something like $<TO_SHELL_PATH:...> may be appropriate. For referencing command line tools (as argv[0]) the C++ side uses code like this now: this->ConvertToOutputFormat(ccg.GetCommand(i), SHELL) This genex should map to the same conversion internally. -Brad
shell_path_genex.patch
Description: shell_path_genex.patch
cmake_minimum_required(VERSION 3.3.20150917 FATAL_ERROR)
project(Test VERSION 0.0.0.0 LANGUAGES NONE)
include(ExternalProject)
ExternalProject_Add(CMakeStyle
SOURCE_DIR ${CMAKE_BINARY_DIR}
CONFIGURE_COMMAND echo <SOURCE_DIR>
BUILD_COMMAND echo <BINARY_DIR>
INSTALL_COMMAND echo <INSTALL_DIR>
)
ExternalProject_Add_Step(CMakeStyle custom
COMMAND echo <TMP_DIR>
DEPENDERS configure
)
ExternalProject_Add(ShellStyle
SOURCE_DIR ${CMAKE_BINARY_DIR}
CONFIGURE_COMMAND echo $<SHELL_PATH:<SOURCE_DIR>>
BUILD_COMMAND echo $<SHELL_PATH:<BINARY_DIR>>
INSTALL_COMMAND echo $<SHELL_PATH:<INSTALL_DIR>>
)
ExternalProject_Add_Step(ShellStyle custom
COMMAND echo $<SHELL_PATH:<TMP_DIR>>
DEPENDERS configure
)
-- 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
