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

Bill Hoffman bill.hoffman at kitware.com
Wed May 9 08:10:47 EDT 2007


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