On Wed, Jan 18, 2017 at 10:14:26 +0100, Nils Gladitz wrote: > On 17.01.2017 23:25, Chris Bieneman wrote: > > Hello CMake-developers! > > > > In one of the LLVM sub-projects we have a problem where we need to > > install object files, which doesn't seem like a particularly easy > > task. I'm curious if anyone has any advice on how to approach this > > problem. > > > > The patch is currently being reviewed here: > > https://reviews.llvm.org/D28791 > > > > Since the object files have fairly simple compile commands our current > > approach is to compile the files in custom commands, then use > > install(FILES...). This is workable, but I'm wondering if there is a > > better way. They do need to be object files, static archives would not > > work because these specially named files are handled by linkers and > > other tools that we don't control. > > Also more of a workaround but perhaps you could create static libraries > but extract them with e.g. CMAKE_AR (toolchain specific) during either > installation e.g. install(CODE|SCRIPT) or as a POST_BUILD custom command.
This issue might be the best way to go: https://gitlab.kitware.com/cmake/cmake/issues/15226 > An OBJECT library might be better suited in theory but I don't think it > currently allows installation and the location of the object files is > generator specific (and afair not always known to cmake). > By doing a manual extraction of the archive you'd be in control over > where the objects go. Plus our plan for installing OBJECT libraries was to install them as INTERFACE libraries, leaving the objects themselves behind. The idea is to allow object libraries into target_link_libraries() for usage requirements and to support exporting them as part of the build system (an explicit $<TARGET_OBJECTS> would still be required to use their objects due to issues with transitive linking causing duplicate symbols if target_sources were used). --Ben -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers