[cmake-developers] [PATCH 2/2] FindwxWidgets.cmake: Resolve CygWin/MSYS paths to Windows paths

Simon Richter Simon.Richter at hogyros.de
Sun Feb 14 14:51:11 EST 2016


CMake expects Windows style paths on MSYS, so use the cygpath utility to
resolve them.
---
 Modules/FindwxWidgets.cmake | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/Modules/FindwxWidgets.cmake b/Modules/FindwxWidgets.cmake
index 12cb1ca..ed34216 100644
--- a/Modules/FindwxWidgets.cmake
+++ b/Modules/FindwxWidgets.cmake
@@ -839,6 +839,34 @@ 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()
+    endif()
 #=====================================================================
 # Neither UNIX_FIND_STYLE, nor WIN32_FIND_STYLE
 #=====================================================================
-- 
2.1.4



More information about the cmake-developers mailing list