[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