diff options
author | Wayne Stambaugh <stambaughw@verizon.net> | 2016-02-14 19:51:11 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-02-17 13:52:56 (GMT) |
commit | bf643286d32b569d20e7b7431ecc8755443fe5c4 (patch) | |
tree | 324aa3b6202e2be838d1fc75ce8a8e3366e83683 /Modules/FindwxWidgets.cmake | |
parent | 8dfb6f8b372b159c050b6ea5e16b4e44dd9ed095 (diff) | |
download | CMake-bf643286d32b569d20e7b7431ecc8755443fe5c4.zip CMake-bf643286d32b569d20e7b7431ecc8755443fe5c4.tar.gz CMake-bf643286d32b569d20e7b7431ecc8755443fe5c4.tar.bz2 |
FindwxWidgets: Resolve Cygwin/MSYS paths to Windows paths
We use `sh wx-config` to launch the `wx-config` tool so that it can run
even on Windows. Since it is always a shell script its output may use
POSIX paths even on Windows. Use `cygpath` to convert to Windows paths.
Diffstat (limited to 'Modules/FindwxWidgets.cmake')
-rw-r--r-- | Modules/FindwxWidgets.cmake | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Modules/FindwxWidgets.cmake b/Modules/FindwxWidgets.cmake index 49ce57e..8c07e6c 100644 --- a/Modules/FindwxWidgets.cmake +++ b/Modules/FindwxWidgets.cmake @@ -835,6 +835,36 @@ else() endif() endif() + # When using wx-config in MSYS, the include paths are UNIX style paths which may or may + # not work correctly depending on you MSYS/MinGW configuration. CMake expects native + # paths internally. + if(wxWidgets_FOUND AND MSYS) + find_program(_cygpath_exe cygpath ONLY_CMAKE_FIND_ROOT_PATH) + DBG_MSG_V("_cygpath_exe: ${_cygpath_exe}") + if(_cygpath_exe) + set(_tmp_path "") + foreach(_path ${wxWidgets_INCLUDE_DIRS}) + execute_process( + COMMAND cygpath -w ${_path} + OUTPUT_VARIABLE _native_path + RESULT_VARIABLE _retv + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) + if(_retv EQUAL 0) + file(TO_CMAKE_PATH ${_native_path} _native_path) + DBG_MSG_V("Path ${_path} converted to ${_native_path}") + set(_tmp_path "${_tmp_path} ${_native_path}") + endif() + endforeach() + DBG_MSG("Setting wxWidgets_INCLUDE_DIRS = ${_tmp_path}") + set(wxWidgets_INCLUDE_DIRS ${_tmp_path}) + separate_arguments(wxWidgets_INCLUDE_DIRS) + list(REMOVE_ITEM wxWidgets_INCLUDE_DIRS "") + endif() + unset(_cygpath_exe CACHE) + endif() + #===================================================================== # Neither UNIX_FIND_STYLE, nor WIN32_FIND_STYLE #===================================================================== |