2009-12-17 23:15:34 +03:00
|
|
|
cmake_minimum_required(VERSION 2.8.1 FATAL_ERROR)
|
2013-10-18 14:35:04 +04:00
|
|
|
project(CheckTypeSize)
|
2009-12-17 23:15:34 +03:00
|
|
|
|
2013-10-18 14:35:04 +04:00
|
|
|
# Check C types
|
2009-12-17 23:15:34 +03:00
|
|
|
include(CheckTypeSize)
|
|
|
|
check_type_size("void*" SIZEOF_DATA_PTR)
|
|
|
|
check_type_size(char SIZEOF_CHAR)
|
|
|
|
check_type_size(short SIZEOF_SHORT)
|
|
|
|
check_type_size(int SIZEOF_INT)
|
|
|
|
check_type_size(long SIZEOF_LONG)
|
|
|
|
check_type_size("long long" SIZEOF_LONG_LONG)
|
|
|
|
check_type_size(__int64 SIZEOF___INT64)
|
|
|
|
check_type_size(size_t SIZEOF_SIZE_T)
|
|
|
|
check_type_size(ssize_t SIZEOF_SSIZE_T)
|
|
|
|
|
2012-08-13 21:27:44 +04:00
|
|
|
set(CMAKE_REQUIRED_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
|
|
set(CMAKE_EXTRA_INCLUDE_FILES somestruct.h)
|
|
|
|
check_type_size("((struct somestruct*)0)->someint" SIZEOF_STRUCTMEMBER_INT)
|
|
|
|
check_type_size("((struct somestruct*)0)->someptr" SIZEOF_STRUCTMEMBER_PTR)
|
|
|
|
check_type_size("((struct somestruct*)0)->somechar" SIZEOF_STRUCTMEMBER_CHAR)
|
|
|
|
|
2013-10-18 14:35:04 +04:00
|
|
|
# Check CXX types
|
|
|
|
check_type_size(bool SIZEOF_BOOL LANGUAGE CXX)
|
|
|
|
|
|
|
|
set(CMAKE_EXTRA_INCLUDE_FILES someclass.hxx)
|
|
|
|
check_type_size("((ns::someclass*)0)->someint" SIZEOF_NS_CLASSMEMBER_INT LANGUAGE CXX)
|
|
|
|
check_type_size("((ns::someclass*)0)->someptr" SIZEOF_NS_CLASSMEMBER_PTR LANGUAGE CXX)
|
|
|
|
check_type_size("((ns::someclass*)0)->somechar" SIZEOF_NS_CLASSMEMBER_CHAR LANGUAGE CXX)
|
|
|
|
check_type_size("((ns::someclass*)0)->somebool" SIZEOF_NS_CLASSMEMBER_BOOL LANGUAGE CXX)
|
|
|
|
|
2009-12-17 23:15:34 +03:00
|
|
|
configure_file(config.h.in config.h)
|
2013-10-18 14:35:04 +04:00
|
|
|
configure_file(config.hxx.in config.hxx)
|
|
|
|
|
2012-08-13 21:27:44 +04:00
|
|
|
include_directories("${CheckTypeSize_BINARY_DIR}")
|
2009-12-17 23:15:34 +03:00
|
|
|
|
|
|
|
add_executable(CheckTypeSize CheckTypeSize.c)
|
2013-10-18 14:35:04 +04:00
|
|
|
add_executable(CheckTypeSizeCXX CheckTypeSize.cxx)
|