[CMake] Semicolons in windows path list for ExternalProject_Add or ExP_Add_Step

Isaiah Norton isaiah.norton at gmail.com
Wed Feb 15 16:02:55 EST 2012


Hi,

Apologies in advance if I missed/misread something in the FAQ and the email
threads I've found so far about semicolons. I am using Windows 7 64-bit,
CMake 2.8.7, and "Visual Studio 10 Win64" generator with msbuild, VC++
Express 2010, Windows SDK7.1.

I need to pass a windows-style path list through ExternalProject_Add and
ExternalProject_Add_Step. Minimal example:

"""
cmake_minimum_required(VERSION 2.8)
include(ExternalProject)

ExternalProject_Add(
  "hello_world"
  URL "C:/temp"
  BUILD_COMMAND ${CMAKE_BUILD_TOOL}
"/p:VCBuildAdditionalLinkLibraryPaths=MORE;BETTER;PATHLIST"
  )
"""

When I generate the project, the path list separator is converted to
spaces, so when it gets to VCBuild from msbuild it is interpreted as
multiple arguments and fails.

""" from hello_world.vcxproj:
...
if %errorlevel% neq 0 goto :cmEnd
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
/p:VCBuildAdditionalLinkLibraryPaths=MORE BETTER PATHLIST
if %errorlevel% neq 0 goto :cmEnd
"""

In the real project, I am using $ENV{LIB} (="C:\Program Files
(x86)\Microsoft Visual Studio 10.0\VC\Lib\amd64;C:\Program Files\Microsoft
SDKs\Windows\v7.1\Lib\X64;C:\Program Files\Microsoft
SDKs\Windows\v7.1\Lib\x64")

I've tried string(REPLACE..) for escaping in various ways, but at best I
end up with extra slashes and at worst no spaces between paths. I also
tried permutations of "-D" and "LIST_SEPARATOR" to no avail.

Thanks very much for any suggestions.

-Isaiah
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20120215/b0183524/attachment.htm>


More information about the CMake mailing list