[CMake] Digital Mars
William A. Hoffman
billlist at nycap.rr.com
Thu May 18 11:51:17 EDT 2006
At 10:18 AM 5/18/2006, Amitha Perera wrote:
>I've been able to get relatively far by simply implementing a
>Platform/Windows-bmc.cmake, and using NMake as the Makefile parser. I
>thought I'd try this first before writing a generator for the Digital
>Mars make.
>
>Right now, I'm stuck here: the Digital Mars linker wants full paths to
>the libraries, or else will scan the LIB environment variable. Is
>there a variable simliar to <LINK_LIBRARIES> that will expand to the
>full paths of the required libraries?
>
>(Unfortunately, this is somewhat low priority for me, so I'll
>apologize in advance for delayed responses.)
Currently, there is not.
It does seem that the linker can not add paths to the link line:
http://www.digitalmars.com/d/archives/c++/command-line/639.html
I am not even sure we always have that information. For example,
someone might do LINK_DIRECTORIES(....) LINK_LIBRARIES(A).
Maybe we could set the LIB env as part of the link command.
Then use the /SCANLIB option. Then do something like this:
In Windows-bmc.cmake try this:
SET(CMAKE_LIBRARY_PATH_FLAG ";")
SET(CMAKE_CXX_CREATE_SHARED_LIBRARY
"set LIB=<LINK_LIBRARIES>"
"link ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out:<TARGET> /PDB:<TARGET_PDB> /dll <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
We might need to create a <LINK_DIRECTORIES> that would only have the link directories
part of the link line, but that might work with the extra junk at the end of the lib path.
-Bill
More information about the CMake
mailing list