If that really is your exact code from cmake you are building a static library only. There must be another argument to the add_library command that says SHARED. With out that argument cmake will always generate a static library build.
Also Visual Studio will generate the "Release" subdirectory for you. I do not think you can change that behavior. Lastly you may want to consider naming the plugins with a .plugin extension so the cpack rules know the difference between a shared library and a tripe plugin base in file extension which tends to work better in my experience. Hope that helps Mike Jackson On Wednesday, June 1, 2011, Mathias Bavay <[email protected]> wrote: > Hi! > > I've been using cmake and cpak on Linux for my project (a library) without > any problems. I'm now trying to get it to work with Visual C++ Express 10. It > compiles fine, and puts files (from the project directory) into > meteoio/Release (both a .dll and a .lib). When running cpack, it only packs > the .lib file, and I can not find any way to also properly get the dll. > > Here is a sample of my code for compiling the library: > SET(LIBPREFIX "lib") #make sure ALL plugins are libXXX for ALL plateforms > SET(CMAKE_IMPORT_LIBRARY_PREFIX "lib") #for Visual C++ import libraries > SET(SHAREDNAME ${PROJECT_NAME}) > ADD_LIBRARY(${SHAREDNAME} ${meteoio_sources}) > TARGET_LINK_LIBRARIES(${SHAREDNAME} ${LIBPROJ}) > SET_TARGET_PROPERTIES(${SHAREDNAME} PROPERTIES > PREFIX "${LIBPREFIX}" > LIBRARY_OUTPUT_DIRECTORY lib > ARCHIVE_OUTPUT_DIRECTORY lib > CLEAN_DIRECT_OUTPUT 1 > VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" > SOVERSION "${VERSION_MAJOR}" > ) > INSTALL(TARGETS ${SHAREDNAME} > RUNTIME DESTINATION bin > LIBRARY DESTINATION lib > ARCHIVE DESTINATION lib > COMPONENT libraries > ) > > First issue, despite specifying that I want the library to be under lib, it > goes into a Release directory under the source file's directory. But when > cpack should find and pack it, it only gets the .lib and always misses the > dll: > IF(WIN32) #handle the special case of WIN32 needing import libraries > FILE(GLOB importlibs "lib/libmeteoio*.lib*") > SET(DLL_EXT "dll") > ENDIF(WIN32) > FILE(GLOB solibs "lib/libmeteoio*.${DLL_EXT}*") > FILE(GLOB alibs "lib/*.${STAT_EXT}*") > INSTALL(FILES ${solibs} ${importlibs} ${alibs} DESTINATION lib COMPONENT > libraries) > > What am I doing wrong? It works perfectly fine under Linux (obviously, only > packing a .so), but not with Visual C++... The whole code can be seen at > https://slfsmm.indefero.net/p/meteoio/source/tree/HEAD/ > > Thank you very much, > Mathias Bavay > _______________________________________________ > 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 > -- _________________________________________________________ Mike Jackson [email protected] BlueQuartz Software www.bluequartz.net Principal Software Engineer Dayton, Ohio _______________________________________________ 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
