> Please keep follow-up questions on list, so others may participate and > benefit as well.
Oh, I did not realize that I sent my email off list. I just hit reply, without double checking the recipient field. > The Framework test demonstrates one (not pretty, not elegant, but > possible) way to do what you want. > > Rather than using PUBLIC_HEADER to achieve the final location of the > nested header file, use the source file property > MACOSX_PACKAGE_LOCATION. > > add_library(foo SHARED > foo.cxx > ... > fooDeepPublic.h > ) > set_property(SOURCE fooDeepPublic.h > PROPERTY MACOSX_PACKAGE_LOCATION Headers/Deep > ) Surely this is not the most elegant solution, but it is much more acceptable than this one <http://www.cmake.org/pipermail/cmake/2008-June/022378.html> Thanks! > The result of the foo.framework build on my Mac CMake build tree is as > follows: > > > davidc...@mymac : foo.framework > $ pwd > <<...>>/CMake Mac-unix-Debug/Tests/Framework/foo.framework > > > davidc...@mymac : foo.framework > $ find . > . > ./foo > ./Headers > ./PrivateHeaders > ./Resources > ./Versions > ./Versions/Current > ./Versions/ver4 > ./Versions/ver4/foo > ./Versions/ver4/Headers > ./Versions/ver4/Headers/Deep > ./Versions/ver4/Headers/Deep/fooDeepPublic.h > ./Versions/ver4/Headers/foo.h > ./Versions/ver4/Headers/foo2.h > ./Versions/ver4/Headers/fooPublic.h > ./Versions/ver4/Headers/fooPublicExtensionlessHeader > ./Versions/ver4/PrivateHeaders > ./Versions/ver4/PrivateHeaders/fooBoth.h > ./Versions/ver4/PrivateHeaders/fooPrivate.h > ./Versions/ver4/PrivateHeaders/fooPrivateExtensionlessHeader > ./Versions/ver4/Resources > ./Versions/ver4/Resources/fooExtensionlessResource > ./Versions/ver4/Resources/Info.plist > ./Versions/ver4/Resources/test.lua > > > > > HTH, > David > > > > > On Tue, Oct 19, 2010 at 8:26 AM, Daniel Pfeifer > <dan...@pfeifer-mail.de> wrote: > Hi David, > > Am Freitag, den 15.10.2010, 10:42 -0400 schrieb David Cole: > > The best way to preserve structure is to layout the source > directory > > exactly as you want it, and then use a single > install(DIRECTORY > > command. If it's not in your source tree exactly as you want > it, you > > could add a custom build step to arrange such a directory in > your > > build tree, and then use install(DIRECTORY on that. > > > > An alternative would be to group headers that go together > using > > variables, one per destination directory, and then have one > > install(FILES rule for each separate destination directory. > > > Right, for the install(FILES) command there are a few > alternatives. > But what about the PUBLIC_HEADER property for mac frameworks? > > > > HTH, > > David > > > > > > > > On Fri, Oct 15, 2010 at 7:00 AM, Daniel Pfeifer > > <dan...@pfeifer-mail.de> wrote: > > Hi, > > > > This question has been asked quite a few times, but > never > > satisfactorily > > answerded before: How do I install a bunch of > headers > > preserving > > directory structure? The following snippet > > > > > set(HEADERS header1.h dir/header2.h) > > > install(FILES ${HEADERS} DESTINATION include) > > > > puts both files inside the same directory. The > structure is > > not > > preserved. The following workaround does the trick: > > > > > foreach(HEADER HEADERS) > > > string(REGEX MATCH "(.*)[/\\]" DIR ${HEADER}) > > > install(FILES ${HEADER} DESTINATION > include/${DIR}) > > > endforeach(HEADER HEADERS) > > > > However, I consider this as a workaround, not as a > solution! > > > > It gets more complicated as soon as I want to build > frameworks > > on mac, > > > > > set_target_properties(my_lib PROPERTIES > PUBLIC_HEADER > > ${HEADERS}) > > > > again puts both files inside the same directory, > ignoring > > structure. > > Here the workaround is even less a solution, if this > is really > > the only > > way: > > > <http://www.cmake.org/pipermail/cmake/2008-June/022378.html> > > > > Hasn't this been considered before? The public wiki > shows two > > use cases > > of cmake frameworks, but neither of them puts > headers into a > > directory > > hierarchy. > <http://www.cmake.org/Wiki/CMake:MacOSX_Frameworks> > > > > cheers, Daniel > > > > > > _______________________________________________ > > 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