[CMake] CheckTypeSize and non-standard headers

Philip Lowman philip at yhbt.com
Tue Feb 17 00:28:42 EST 2009


On Mon, Feb 16, 2009 at 10:23 PM, Aaron Turner <synfinatic at gmail.com> wrote:

> On Mon, Feb 16, 2009 at 5:53 PM, Michael Jackson
> <mike.jackson at bluequartz.net> wrote:
> > project(Test)
> > cmake_minimum_required(VERSION 2.7)
> >
> > INCLUDE(${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
> >
> > set(CMAKE_REQUIRED_DEFINITIONS_SAVE ${CMAKE_REQUIRED_DEFINITIONS})
> > set(CMAKE_REQUIRED_DEFINITIONS
> > ${CMAKE_REQUIRED_DEFINITIONS};-D__need_wint_t=1)
> >
> > CHECK_TYPE_SIZE(wint_t WINT_T)
> > message(STATUS "Size of wint_t: ${WINT_T}")
> > message(STATUS "HAVE_WINT_T: ${HAVE_WINT_T}")
> >
> > set(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS_SAVE})
> >
> > Although I am not sure under what circumstances you are supposed to
> define
> > __need_wint_t? Or if there is some other encompassing macro to define.
> > Otherwise the above will find the size in bytes of wint_t.
>
> Not sure I follow what you're trying to accomplish with the above.
> Is this cmake 2.7 specific or some trick with the __need_wint_t (which
> isn't used in runetype.h)?


Hmm, try it in CMake 2.6, there is a CheckTypeSize.cmake.  Also, you
shouldn't have to specify the full path to it, just

INCLUDE(CheckTypeSize.cmake)


>
> For now, i'm just hacking around the issue with:
>
> check_include_file("runetype.h"     HAVE_RUNETYPE_H)
> IF(APPLE AND HAVE_RUNETYPE_H)
>    # OS X has wint_t, but check_type_size won't find it
>    SET(HAVE_WINT_T 1)
> ELSE(APPLE AND HAVE_RUNETYPE_H)
>    check_type_size("wint_t"            HAVE_WINT_T)
> ENDIF(APPLE AND HAVE_RUNTYPE_H)
>
> Long term, I'm going to write my own version of check_symbol_exists
> which uses a different test which is define/typedef agnostic.


Please consider submitting it via the bugtracker when you're done.

-- 
Philip Lowman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20090217/e5b8d328/attachment.htm>


More information about the CMake mailing list