Am Sonntag 18 Mai 2008 22:35:53 schrieb Stefan Buschmann:
> Hi,
>
> I don't know ifort, but I had the same problem with Makefiles and MSYS a
> while ago.
>
> > Since it works with cygwin I assume ifort knows cygwin and handles the
> > forward slash right.  Does anyone know if ifort has a flag or environment
> > variable name to set which tells ifort its working on windows.
>
> There is nothing ifort could do about this. Every command line parameter
> starting with a slash ('/') will be replaced by MSYS with the
> corresponding windows path ('/foo/bar' will be translated to something
> like 'C:\msys\foo\bar' I think). So the parameter will be translated
> before ifort is even being executed. Since there is no way for MSYS to
> know whether "/something" is a path that has to be translated or a
> command line parameter, the only solution should be to use '-' instead
> of '/'.
>
> Stefan


Thank you very much Stefan!

A patch to fix Windows-ifort.cmake is attached.


-- Maik
diff --git a/Modules/Platform/Windows-ifort.cmake b/Modules/Platform/Windows-ifort.cmake
index 2bf4753..36b4b92 100755
--- a/Modules/Platform/Windows-ifort.cmake
+++ b/Modules/Platform/Windows-ifort.cmake
@@ -4,7 +4,7 @@ SET(WIN32 1)
 IF(CMAKE_VERBOSE_MAKEFILE)
   SET(CMAKE_CL_NOLOGO)
 ELSE(CMAKE_VERBOSE_MAKEFILE)
-  SET(CMAKE_CL_NOLOGO "/nologo")
+  SET(CMAKE_CL_NOLOGO "-nologo")
 ENDIF(CMAKE_VERBOSE_MAKEFILE)
 
 SET(CMAKE_Fortran_MODDIR_FLAG "-module:")
@@ -12,24 +12,24 @@ SET(CMAKE_Fortran_MODDIR_FLAG "-module:")
 SET(CMAKE_Fortran_USE_RESPONSE_FILE_FOR_OBJECTS 1)
 
 SET(CMAKE_Fortran_CREATE_SHARED_LIBRARY 
- "link ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE}  /out:<TARGET> /dll  <LINK_FLAGS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
+ "link ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE}  -out:<TARGET> -dll  <LINK_FLAGS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
 
 SET(CMAKE_Fortran_CREATE_SHARED_MODULE ${CMAKE_Fortran_CREATE_SHARED_LIBRARY})
 
 # create a C++ static library
-SET(CMAKE_Fortran_CREATE_STATIC_LIBRARY  "lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
+SET(CMAKE_Fortran_CREATE_STATIC_LIBRARY  "lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> -out:<TARGET> <OBJECTS> ")
 
 # compile a C++ file into an object file
 SET(CMAKE_Fortran_COMPILE_OBJECT
-    "<CMAKE_Fortran_COMPILER>  ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /fpp /Fo<OBJECT> <DEFINES> <FLAGS> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
+    "<CMAKE_Fortran_COMPILER>  ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} -fpp -Fo<OBJECT> <DEFINES> <FLAGS> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
 
-SET(CMAKE_COMPILE_RESOURCE "rc <FLAGS> /fo<OBJECT> <SOURCE>")
+SET(CMAKE_COMPILE_RESOURCE "rc <FLAGS> -fo<OBJECT> <SOURCE>")
 
 SET(CMAKE_Fortran_LINK_EXECUTABLE
-    "<CMAKE_Fortran_COMPILER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} <FLAGS> /Fe<TARGET> -link <CMAKE_Fortran_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
+    "<CMAKE_Fortran_COMPILER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} <FLAGS> -Fe<TARGET> -link <CMAKE_Fortran_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
 
-SET(CMAKE_CREATE_WIN32_EXE /subsystem:windows)
-SET(CMAKE_CREATE_CONSOLE_EXE /subsystem:console)
+SET(CMAKE_CREATE_WIN32_EXE -subsystem:windows)
+SET(CMAKE_CREATE_CONSOLE_EXE -subsystem:console)
 
 IF(CMAKE_GENERATOR MATCHES "Visual Studio 6")
    SET (CMAKE_NO_BUILD_TYPE 1)
@@ -42,23 +42,23 @@ ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR CMAKE_GENERATOR MATCHES "Visu
 # does the compiler support pdbtype and is it the newer compiler
 
 SET(CMAKE_BUILD_TYPE_INIT Debug)
-SET (CMAKE_Fortran_FLAGS_INIT "/W1 /nologo /fpp")
-SET (CMAKE_Fortran_FLAGS_DEBUG_INIT "/debug:full")
-SET (CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "/O2 /D NDEBUG")
-SET (CMAKE_Fortran_FLAGS_RELEASE_INIT "/MD /O1 /D NDEBUG")
-SET (CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "/O1 /debug:full /D NDEBUG")
+SET (CMAKE_Fortran_FLAGS_INIT "-W1 -nologo -fpp")
+SET (CMAKE_Fortran_FLAGS_DEBUG_INIT "-debug:full")
+SET (CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "-O2 -D NDEBUG")
+SET (CMAKE_Fortran_FLAGS_RELEASE_INIT "-MD -O1 -D NDEBUG")
+SET (CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "-O1 -debug:full -D NDEBUG")
 
 SET (CMAKE_Fortran_STANDARD_LIBRARIES_INIT "user32.lib")
 
 # executable linker flags
-SET (CMAKE_LINK_DEF_FILE_FLAG "/DEF:")
-SET (CMAKE_EXE_LINKER_FLAGS_INIT " /INCREMENTAL:YES")
+SET (CMAKE_LINK_DEF_FILE_FLAG "-DEF:")
+SET (CMAKE_EXE_LINKER_FLAGS_INIT " -INCREMENTAL:YES")
 IF (CMAKE_COMPILER_SUPPORTS_PDBTYPE)
-  SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /pdbtype:sept")
-  SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /pdbtype:sept")
+  SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "-debug -pdbtype:sept")
+  SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "-debug -pdbtype:sept")
 ELSE (CMAKE_COMPILER_SUPPORTS_PDBTYPE)
-  SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug")
-  SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug")
+  SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "-debug")
+  SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "-debug")
 ENDIF (CMAKE_COMPILER_SUPPORTS_PDBTYPE)
 
 SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT})
_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to