changeset 3146:d468ce1eb636

[MSVC] fix cmake for use with clgcc/clg++ - adapt toolchain file (avoid making cmake think it's cross-compiling) - patch cmake to prevent using link library prefix (-l) and suffix (.lib)
author Michael Goffioul <michael.goffioul@gmail.com>
date Wed, 17 Jul 2013 10:04:30 -0400
parents fae248a5b181
children 9cd2f1a4d68f
files Makefile.in dist-files.mk src/msvc-build-cmake-1.patch
diffstat 3 files changed, 28 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.in	Mon Jul 15 21:29:42 2013 -0400
+++ b/Makefile.in	Wed Jul 17 10:04:30 2013 -0400
@@ -551,10 +551,13 @@
 define build-cmake-toolchain-file
     # create the CMake toolchain file
     [ -d '$(dir $(CMAKE_TOOLCHAIN_FILE))' ] || mkdir -p '$(dir $(CMAKE_TOOLCHAIN_FILE))'
-    (if [ $(MXE_SYSTEM) = mingw -o $(MXE_SYSTEM) = msvc ]; then \
+    (if [ $(MXE_SYSTEM) = mingw ]; then \
        echo 'set(CMAKE_SYSTEM_NAME Windows)'; \
        echo 'set(MSYS 1)'; \
      fi; \
+     if [ $(MXE_SYSTEM) = msvc ]; then \
+       echo 'set(MSVC 1)'; \
+     fi; \
      if [ $(BUILD_SHARED) = yes ]; then \
        echo 'set(BUILD_SHARED_LIBS ON)'; \
      else \
@@ -566,8 +569,13 @@
        echo 'set(BUILD_STATIC_LIBS OFF)'; \
      fi; \
      echo 'set(CMAKE_BUILD_TYPE Release)'; \
-     echo 'set(CMAKE_FIND_ROOT_PATH $(HOST_PREFIX))'; \
-     echo 'set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)'; \
+     if [ $(MXE_SYSTEM) = msvc ]; then \
+         echo 'set(CMAKE_FIND_ROOT_PATH $(HOST_PREFIX_NATIVE))'; \
+         echo 'set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)'; \
+     else \
+         echo 'set(CMAKE_FIND_ROOT_PATH $(HOST_PREFIX))'; \
+         echo 'set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)'; \
+     fi; \
      echo 'set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)'; \
      echo 'set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)'; \
      echo 'set(CMAKE_C_COMPILER $(MXE_CC))'; \
@@ -576,7 +584,11 @@
      echo 'set(CMAKE_RC_COMPILER $(MXE_WINDRES))'; \
      echo 'set(PKG_CONFIG_EXECUTABLE $(MXE_PKG_CONFIG))'; \
      echo 'set(QT_QMAKE_EXECUTABLE $(MXE_QMAKE))'; \
-     echo 'set(CMAKE_INSTALL_PREFIX $(HOST_PREFIX) CACHE PATH "Installation Prefix")'; \
+     if [ $(MXE_SYSTEM) = msvc ]; then \
+         echo 'set(CMAKE_INSTALL_PREFIX $(HOST_PREFIX_NATIVE) CACHE PATH "Installation Prefix")'; \
+     else \
+         echo 'set(CMAKE_INSTALL_PREFIX $(HOST_PREFIX) CACHE PATH "Installation Prefix")'; \
+     fi; \
      echo 'set(CMAKE_BUILD_TYPE Release CACHE STRING "Debug|Release|RelWithDebInfo|MinSizeRel")') \
      > '$(CMAKE_TOOLCHAIN_FILE)'
 endef
--- a/dist-files.mk	Mon Jul 15 21:29:42 2013 -0400
+++ b/dist-files.mk	Wed Jul 17 10:04:30 2013 -0400
@@ -279,6 +279,7 @@
   mingwrt.mk \
   mpfr.mk \
   msitools.mk \
+  msvc-build-cmake-1.patch \
   msvc-dbus-1.patch \
   msvc-fftw-1.patch \
   msvc-fltk-1.patch \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/msvc-build-cmake-1.patch	Wed Jul 17 10:04:30 2013 -0400
@@ -0,0 +1,11 @@
+diff -ur cmake-2.8.9-orig/Modules/Platform/Windows.cmake cmake-2.8.9/Modules/Platform/Windows.cmake
+--- cmake-2.8.9-orig/Modules/Platform/Windows.cmake	2012-08-09 14:15:19 -0400
++++ cmake-2.8.9/Modules/Platform/Windows.cmake	2013-07-17 09:59:10 -0400
+@@ -8,6 +8,7 @@
+ SET(CMAKE_IMPORT_LIBRARY_SUFFIX ".lib")
+ SET(CMAKE_EXECUTABLE_SUFFIX ".exe")          # .exe
+ SET(CMAKE_LINK_LIBRARY_SUFFIX ".lib")
++SET(CMAKE_LINK_LIBRARY_FLAG "")
+ SET(CMAKE_DL_LIBS "")
+ 
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "")