[CMake] LIBRARY_OUTPUT_PATH, EXECUTABLE_OUTPUT_PATH broken if CMake variables used.

Rob Mathews Rob.Mathews at varolii.com
Wed May 9 09:07:38 EDT 2007


PROJECT_BINARY_DIR - didn't see use it because I thought it was
something else. Tried it, it works. You'd want ${PROJECT_BINARY_DIR}/lib
though - otherwise the result seems to be missing a '/'

-----Original Message-----
From: Bill Hoffman [mailto:bill.hoffman at kitware.com] 
Sent: Wednesday, May 09, 2007 8:11 AM
To: Rob Mathews
Cc: cmake at cmake.org
Subject: Re: [CMake] LIBRARY_OUTPUT_PATH, EXECUTABLE_OUTPUT_PATH broken
if CMake variables used.

Rob Mathews wrote:
> Ie, something like: 
>
> SET(LIBRARY_OUTPUT_PATH "$(SolutionDir)lib"  CACHE PATH "Single output
> directory for building all libraries." FORCE)
>
>
> doesn't work any more because cmSystemTools::FileIsFullPath() thinks
> that "$SolutionDir)lib" is a relative path && prepends the project
> location to it. 
>
>
> The fix would either be to visit every place where
> cmSystemTools::FileIsFullPath() is called and consider if a variable
> should be allowed, or change cmSystemTools::FileIsFullPath to return
> "true" when it starts with a "$" (ie, a variable), and then let the
user
> deal with it. 
>
>   
That is not a CMake variable.  That is a visual studio variable, and if 
that ever worked it was by luck.  Is there a reason not to use the CMake

variable ${PROJECT_BINARY_DIR}lib, it should have about the same 
effect.  Unless, you are trying to create relocatable vcproj files that 
can be moved from machine to machine without having to run cmake, which 
really is not that supported.

-Bill





More information about the CMake mailing list