[CMake] OS X framework headers with capital letters

Steven Wilson steven.wesley.wilson at gmail.com
Tue Jul 21 16:59:25 EDT 2015


Thanks David,

That change appears to have corrected the issue.

Steve

On Tue, Jul 21, 2015 at 4:30 PM, David Cole <DLRdave at aol.com> wrote:

> Try putting ${FOO_HEADER_FILES} in the add_library call, too.
>
> I reproduced this by adding a file, with **ANY** name, to the
> PUBLIC_HEADER list of the
> [CMake/Tests/Framework/CMakeLists.txt](
> https://github.com/Kitware/CMake/blob/master/Tests/Framework/CMakeLists.txt
> )
> file... but NOT adding it to the list of sources given to add_library.
>
> It would appear from this experiment that the header files for a
> framework must be listed as sources of the library **and** added to
> the PUBLIC_HEADER target property.
>
> (I am guessing that you have the other header files that are working
> already in your FOO_SOURCE_FILES variable. Either that, or I'm missing
> something still...)
>
>
> HTH,
> David C.
>
>
>
> On Tue, Jul 21, 2015 at 1:39 PM, Steven Wilson
> <steven.wesley.wilson at gmail.com> wrote:
> > I am saying the file does not exist in the either installed framework or
> in
> > the framework in the build directory.   CMake is not moving the header
> files
> > that start with a capital letter into the framework headers directory.
>  Now
> > I did double check and it *is* moving the .hpp header that matches the
> name
> > of the framework (Foo.hpp in the example case), but it is not copying
> Foo.h.
> > In addition I tried adding two more arbitrary headers called
> AnotherHeader.h
> > and AnotherHeader.hpp and neither of those get included in the framework
> > either.
> >
> > The example I have posted is just an example.  My actual source files do
> not
> > share names where case sensitivity is a problem.   The file names in the
> > real project do not collide in any form.   I am running on a a Mac with
> the
> > HFS+ system without case sensitivity.
> >
> >
> >
> > On Tue, Jul 21, 2015 at 12:51 PM, David Cole <DLRdave at aol.com> wrote:
> >>
> >> Are you saying the file does not exist in the installed framework, or
> >> that you do not see "copying Foo.h" in the install output ...? This
> >> seems very unlikely. The header files are supposed to be in the
> >> framework in the build tree, and the built framework in its entirety
> >> is supposed to be recursively copied at install time ...
> >>
> >> Are you running on a Mac volume with a case sensitive file system or
> not?
> >>
> >> Are the source header files in question named with the case you've
> >> listed in the CMakeLists file?
> >>
> >> Does this reproduce if you add another header file named
> >> "AnotherHeader.h" and add it into the mix, say listing it first in the
> >> list of header files?
> >>
> >>
> >>
> >>
> >>
> >> On Tue, Jul 21, 2015 at 12:15 PM, Steven Wilson
> >> <steven.wesley.wilson at gmail.com> wrote:
> >> > Not to be picky, but the issue of case sensitivity ignores the
> original
> >> > question.
> >> >
> >> > If it helps someone think about the issue better, change:
> >> >
> >> > set(FOO_HEADER_FILES "foo.h;bar.h;bat.h;Foo.h;Foo.hpp")
> >> >
> >> > to
> >> >
> >> > set(FOO_HEADER_FILES "bar.h;bat.h;Foo.h;Foo.hpp")
> >> >
> >> >
> >> > Thanks,
> >> >
> >> > Steve
> >> >
> >> > On Tue, Jul 21, 2015 at 10:59 AM, Michael Jackson
> >> > <mike.jackson at bluequartz.net> wrote:
> >> >>
> >> >> to be very precise,
> >> >>     OS X is a "Case Preserving but NOT Case sensitive" be default.
> OS X
> >> >> can be made to be case sensitive but no one actually recommends it.
> >> >>
> >> >> this means that on OS X foo.h and Foo.h resolve to be the same file,
> >> >> where
> >> >> as on Linux they would be 2 different files. You would have the same
> >> >> issues
> >> >> on Windows.
> >> >>
> >> >> Mike Jackson
> >> >>
> >> >>
> >> >> On Jul 21, 2015, at 10:35 AM, Dan Kegel <dank at kegel.com> wrote:
> >> >>
> >> >> It can't installiert both foo.h and Foo.h in the mac, better correct
> >> >> your
> >> >> example.
> >> >>
> >> >> Am 21.07.2015 5:19 vorm. schrieb "Steven Wilson"
> >> >> <steven.wesley.wilson at gmail.com>:
> >> >>>
> >> >>> I've noticed that CMake 3.3.0-rc3 will not install a header file in
> a
> >> >>> Mac
> >> >>> OS X framework if the header file starts with a capital letter
> (either
> >> >>> that
> >> >>> or has the same name as the framework).
> >> >>>
> >> >>> For example if I have the following:
> >> >>>
> >> >>>
> >> >>> set(FOO_HEADER_FILES "foo.h;bar.h;bat.h;Foo.h;Foo.hpp")
> >> >>>
> >> >>> add_library(Foo SHARED ${FOO_SOURCE_FILES})
> >> >>>
> >> >>> set_target_properties(Foo PROPERTIES
> >> >>>     FRAMEWORK ON
> >> >>>     OUTPUT_NAME Foo
> >> >>>     PUBLIC_HEADER "${FOO_HEADER_FILES}"
> >> >>> )
> >> >>>
> >> >>> install(TARGETS Foo
> >> >>>   FRAMEWORK DESTINATION "frameworks")
> >> >>>
> >> >>>
> >> >>> Then when running 'make install' or the install target from Xcode,
> the
> >> >>> installation step silently does not install Foo.h or Foo.hpp.
> >> >>>
> >> >>> This behavior seems arbitrary, wrong, and completely annoying.
> >> >>>
> >> >>> Comments?
> >> >>>
> >> >>> --
> >> >>>
> >> >>> 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
> >> >>
> >> >> --
> >> >>
> >> >> 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
> >> >>
> >> >>
> >> >
> >> >
> >> > --
> >> >
> >> > 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
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20150721/9a9712fe/attachment-0001.html>


More information about the CMake mailing list