[CMake] Cmake and mingw can't link to a library in a directory with a parenthesis

Leek, Jim leek2 at llnl.gov
Mon Sep 9 14:34:21 EDT 2013


I'm not really sure if this issue is with Cmake or Mingw.  I have a build that uses BLAS, so I have some code to either find BLAS or build it locally:

find_package(BLAS)
if(BLAS_FOUND)
  set (EXTRA_LIBS ${EXTRA_LIBS} "${BLAS_LIBRARIES}")
else()
  ### Build BLAS ###
endif()

However, on one Windows machine a BLAS library is found at:

C:\Program Files (x86)\psuade_project\ 1.6.0\bin\libblas.dll

However, when I try to build mingw-make can't even read the files cmake generated properly.  Here's the error:

C:/MinGW/bin/mingw32-make -f CMakeFiles\psuade-bin.dir\build.make CMakeFiles/psuade-bin.dir/build
mingw32-make[2]: Entering directory `C:/psuade/trunk_clean/build_shared'
mingw32-make[2]: *** No rule to make target `x86)/psuade_project 1.6.0/bin/libblas.dll)', needed by `bin/psuade.exe'.  S
top.

You can see that the open paren seems to have screwed up the parsing.  The issue is in the build.make file:
bin/psuade.exe: C:/Program Files\ (x86)/psuade_project/\ 1.6.0/bin/libblas.dll

I've tried a variety of escape characters to get this line to work with no luck.  I tried:
bin/psuade.exe: "C:/Program Files\ (x86)/psuade_project/\ 1.6.0/bin/libblas.dll"
bin/psuade.exe: C:/Program Files\ \(x86)/psuade_project/\ 1.6.0/bin/libblas.dll
bin/psuade.exe: "C:/Program Files\ \(x86)/psuade_project/\ 1.6.0/bin/libblas.dll"

I get different errors with each one.

Is this a bug, is there something else I should do?  For now I'm just going force it to build BLAS locally on windows.  But It seems like I should have a more general solution.

Jim

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


More information about the CMake mailing list