[CMake] Slash, Backslash trouble with MSYS and Windows Compiler/Linker

Ryan Pavlik rpavlik at iastate.edu
Tue Apr 20 11:00:10 EDT 2010


On 4/20/10 6:09 AM, Matthias Goesswein wrote:
> Hello!
>
> I`m using the Softune-Compiler under CMake with MSYS on Windows. (I'v 
> e written the Plattform files by myself)
> The Softune Compiler (For Fujitsu Microcontrollers) requires 
> Backslashes for paths in the options, but Cmake generates slashes as 
> it is usual in MSYS.
>
> e.g.
>
> The linker must be called:
>
> flnk907s -cpu MB90F345 -a -o otuput.abs main.o -l mylibrary\mylibrary.a
>
> (it finds the library in the directory mylibrary)
>
> but it is called like this
>
> flnk907s -cpu MB90F345 -a -o output.abs main.o -l mylibrary/mylibrary.a
>
> (it doesn't find the library in the directory mylibrary)
>
> Is there any option to change the slashes with cmake to backslashes?
>
> ---
> My Plattform file for the compiler looks like this:
>
>
> MESSAGE(STATUS "Fujitsu_16LX-fcc907s.cmake loaded")
>
> # This file implements support for the Softune Compiler
>
> SET(CMAKE_STATIC_LIBRARY_PREFIX "")
> SET(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
> SET(CMAKE_C_OUTPUT_EXTENSION ".o")
> SET(CMAKE_EXECUTABLE_SUFFIX ".abs")
> SET(CMAKE_LINK_LIBRARY_SUFFIX ".a")
> SET(CMAKE_LINK_LIBRARY_FILE_FLAG "-l")
>
> # Default C Flags
> SET(CMAKE_C_FLAGS_INIT "-cpu ${CMAKE_SYSTEM_PROCESSOR}")
> SET(CMAKE_C_FLAGS_DEBUG_INIT "-cpu ${CMAKE_SYSTEM_PROCESSOR} -g 
> -DDEBUG=1")
> SET(CMAKE_C_FLAGS_MINSIZEREL_INIT "-cpu ${CMAKE_SYSTEM_PROCESSOR}")
> SET(CMAKE_C_FLAGS_RELEASE_INIT "-cpu ${CMAKE_SYSTEM_PROCESSOR}")
> SET(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-cpu ${CMAKE_SYSTEM_PROCESSOR} 
> -g -DDEBUG=1")
>
> # Default Linker Flags
> SET (CMAKE_EXE_LINKER_FLAGS_INIT "-cpu ${CMAKE_SYSTEM_PROCESSOR} -a")
> SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "-cpu ${CMAKE_SYSTEM_PROCESSOR} 
> -a -g")
> SET (CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT "-cpu 
> ${CMAKE_SYSTEM_PROCESSOR}  -a")
> SET (CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT "-cpu 
> ${CMAKE_SYSTEM_PROCESSOR}  -a")
> SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "-cpu 
> ${CMAKE_SYSTEM_PROCESSOR} -a -g")
>
> # Rule variable to compile a single object file
> SET(CMAKE_C_COMPILE_OBJECT
>        "<CMAKE_C_COMPILER> <DEFINES> <FLAGS> -o <OBJECT> <SOURCE>" )
>
> # Rule variable to create a static library
> SET(CMAKE_C_CREATE_STATIC_LIBRARY
>       "${CMAKE_COMMAND} -E remove <TARGET>"
>       "flib907s -cpu ${CMAKE_SYSTEM_PROCESSOR} -g -a <OBJECTS> <TARGET>"
>    )
>
> # Rule variable to link a axecutable
> SET(CMAKE_C_LINK_EXECUTABLE
>        "flnk907s <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> -o <TARGET> 
> <OBJECTS> <LINK_LIBRARIES>"
>        "f2ms -S3 -o <TARGET_BASE>.s19 -adjust <TARGET>"
>    )
>
> # not supported
> SET(CMAKE_C_CREATE_SHARED_LIBRARY "")
> SET(CMAKE_C_CREATE_MODULE_LIBRARY "")
>
> ---
>
> Another question: Are such plattform ports welcome in the cmake 
> distribution? If yes, I'll put it in as feature request, when my port 
> is functional.
> BTW: Are there any naming conventions for new plattforms?
>
> Cheers,
> Matthias.
You somehow would need to include a call to

file(TO_NATIVE_PATH path result)


to prepare the file names for the tool.  I'm not sure how you'd go about 
doing that, though, sorry...

Ryan


-- 
Ryan Pavlik
Human-Computer Interaction Graduate Student
Virtual Reality Applications Center
Iowa State University

rpavlik at iastate.edu
http://academic.cleardefinition.com/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100420/5b9a1ed0/attachment.htm>


More information about the CMake mailing list