[CMake] OS X framework headers with capital letters

Steven Wilson steven.wesley.wilson at gmail.com
Tue Jul 21 13:39:51 EDT 2015


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/5a41c078/attachment.html>


More information about the CMake mailing list