Have a look at the documentation for CMAKE_RUNTIME_OUTPUT_DIRECTORY. On Linux the .so shared library files do go in the LIBRARY_OUTPUT_DIRECTORY. However, on Windows the DLL files are placed in the runtime directory and only the import libraries (.LIB files) are placed in the LIBRARY_OUTPUT_DIRECTORY.
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