Just as an alternative approach; instead of relying on having the code in-place, generate appropriate install directives RUNTIME_, ARCHIVE_ and LIBRARY_ issues similar, needing basically a macro my_install(target) if( WIN32) install( #what's correct for windows ) else( WIN32 ) install ( what's correct for other systems )... but anyhow, then with a few more lines, you can use cpack to generate installers.
Now, this means you can't just 'Set Active Project' and click F5 to run it, but you can right-click on the project, set the debugging properties of 'Target executable(?)'(first line) (there's a browse if you click the drop arrow), and then copy the path part of that and copy-paste to start-in directory(third line). Then you can run it, without having to force the solution/project outputs to a specific place. 2011/7/25 Laura Autón García <laura.au...@gmail.com>: > Hello all, > In the project I am collaborating on, CMake is used in Windows in > order to generate a Visual C++ solution to be compiled afterwards. In > this process, everything seems to work fine as the external > directories and libraries are well included and everything compiles > and so. However, we are experiencing problems with the directory in > which our dll library is to be created. > We specify in CMake that the directory is ../lib but > when checking the configuration in Visual C++ software, it seems to be > ../bin/Release directory, so the library is generated there. > The CMake sentences we wrote regarding this issue are as follows: > > SET(LIB_DIR "${PROJECT_SOURCE_DIR}/lib") > SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIB_DIR} CACHE PATH "Directory > for libraries") > > According to the documentation: > > CMAKE_LIBRARY_OUTPUT_DIRECTORY: Where to put all the LIBRARY > targets when built. > This variable is used to initialize the LIBRARY_OUTPUT_DIRECTORY > property on all the targets. > See that target property for additional information. > > Also, the documentation regarding LIBRARY_OUTPUT_DIRECTORY shows: > > LIBRARY_OUTPUT_DIRECTORY: Output directory in which to build > LIBRARY target files. > This property specifies the directory into which library target > files should be built. There are three > kinds of target files that may be built: archive, library, and > runtime. Executables are always treated > as runtime targets. Static libraries are always treated as archive > targets. Module libraries are always > treated as library targets. For non-DLL platforms shared libraries > are treated as library targets. For > DLL platforms the DLL part of a shared library is treated as a > runtime target and the corresponding > import library is treated as an archive target. All Windows-based > systems including Cygwin are > DLL platforms. This property is initialized by the value of the variable > CMAKE_LIBRARY_OUTPUT_DIRECTORY if it is set when a target is created. > > However, when the project is generated, the library output directory > is not the one specified, but the one I mentioned above. > If anyone has any idea why this may be happening, it would be appreciated. > The binaries, on the other hand, as generated in their correct directory. > > Thank you in advance. > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Follow this link to subscribe/unsubscribe: > http://www.cmake.org/mailman/listinfo/cmake > _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake