From fb05258b8be88746cbf091808e9faae71007e984 Mon Sep 17 00:00:00 2001 From: Vitaly Kirsanov Date: Sat, 20 Jul 2019 11:27:11 +0300 Subject: CMake: checking type sizes (#48) --- CMakeLists.txt | 8 +++--- cmake/CheckSizes.cmake | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 5 deletions(-) create mode 100644 cmake/CheckSizes.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 802f71a..d723616 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,11 +58,9 @@ check_include_files(inttypes.h INCLUDE_INTTYPES_H) check_include_files(stdint.h INCLUDE_STDINT_H) check_include_files(sys/types.h INCLUDE_SYS_TYPES_H) -set(SIZE16 int16_t) -set(USIZE16 uint16_t) -set(SIZE32 int32_t) -set(USIZE32 uint32_t) -set(SIZE64 int64_t) +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + +include(CheckSizes) configure_file(include/ogg/config_types.h.in ${CMAKE_CURRENT_BINARY_DIR}/include/ogg/config_types.h @ONLY) diff --git a/cmake/CheckSizes.cmake b/cmake/CheckSizes.cmake new file mode 100644 index 0000000..4d6c8a0 --- /dev/null +++ b/cmake/CheckSizes.cmake @@ -0,0 +1,73 @@ +include(CheckTypeSize) + +check_type_size("int16_t" INT16_SIZE LANGUAGE C) +check_type_size("uint16_t" UINT16_SIZE LANGUAGE C) +check_type_size("u_int16_t" U_INT16_SIZE LANGUAGE C) +check_type_size("int32_t" INT32_SIZE LANGUAGE C) +check_type_size("uint32_t" UINT32_SIZE LANGUAGE C) +check_type_size("u_int32_t" U_INT32_SIZE LANGUAGE C) +check_type_size("int64_t" INT64_SIZE LANGUAGE C) +check_type_size("short" SHORT_SIZE LANGUAGE C) +check_type_size("int" INT_SIZE LANGUAGE C) +check_type_size("long" LONG_SIZE LANGUAGE C) +check_type_size("long long" LONG_LONG_SIZE LANGUAGE C) + +if(INT16_SIZE EQUAL 2) + set(SIZE16 "int16_t") +elseif(SHORT_SIZE EQUAL 2) + set(SIZE16 "short") +elseif(INT_SIZE EQUAL 2) + set(SIZE16 "int") +else() + message(FATAL_ERROR "No 16 bit type found on this platform!") +endif() + +if(UINT16_SIZE EQUAL 2) + set(USIZE16 "uint16_t") +elseif(SHORT_SIZE EQUAL 2) + set(USIZE16 "unsigned short") +elseif(INT_SIZE EQUAL 2) + set(USIZE16 "unsigned int") +elseif(U_INT_SIZE EQUAL 2) + set(USIZE16 "u_int16_t") +else() + message(FATAL_ERROR "No unsigned 16 bit type found on this platform!") +endif() + +if(INT32_SIZE EQUAL 4) + set(SIZE32 "int32_t") +elseif(SHORT_SIZE EQUAL 4) + set(SIZE32 "short") +elseif(INT_SIZE EQUAL 4) + set(SIZE32 "int") +elseif(LONG_SIZE EQUAL 4) + set(SIZE16 "long") +else() + message(FATAL_ERROR "No 32 bit type found on this platform!") +endif() + +if(UINT32_SIZE EQUAL 4) + set(USIZE32 "uint32_t") +elseif(SHORT_SIZE EQUAL 4) + set(USIZE32 "unsigned short") +elseif(INT_SIZE EQUAL 4) + set(USIZE32 "unsigned int") +elseif(LONG_SIZE EQUAL 4) + set(USIZE32 "unsigned long") +elseif(U_INT_SIZE EQUAL 4) + set(USIZE32 "u_int32_t") +else() + message(FATAL_ERROR "No unsigned 32 bit type found on this platform!") +endif() + +if(INT64_SIZE EQUAL 8) + set(SIZE64 "int64_t") +elseif(INT_SIZE EQUAL 8) + set(SIZE64 "int") +elseif(LONG_SIZE EQUAL 8) + set(SIZE64 "long") +elseif(LONG_LONG_SIZE EQUAL 8) + set(SIZE64 "long long") +else() + message(FATAL_ERROR "No 64 bit type found on this platform!") +endif() -- cgit v1.2.1 From 688208e6960595b2f33a6dc362033fbe369adc0d Mon Sep 17 00:00:00 2001 From: evpobr Date: Sat, 20 Jul 2019 13:31:41 +0500 Subject: cmake: Remove unnessessary variables from configure_file() command (#39) Just cleanup. Output path is relative to build directory anyway according to documentation. Related to #9. --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d723616..f8716a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,7 +48,7 @@ function(configure_pkg_config_file pkg_config_file_in) set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR}) set(VERSION ${PROJECT_VERSION}) string(REPLACE ".in" "" pkg_config_file ${pkg_config_file_in}) - configure_file(${pkg_config_file_in} ${CMAKE_CURRENT_BINARY_DIR}/${pkg_config_file} @ONLY) + configure_file(${pkg_config_file_in} ${pkg_config_file} @ONLY) endfunction() message(STATUS "Configuring ${PROJECT_NAME} ${PROJECT_VERSION}") @@ -62,7 +62,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") include(CheckSizes) -configure_file(include/ogg/config_types.h.in ${CMAKE_CURRENT_BINARY_DIR}/include/ogg/config_types.h @ONLY) +configure_file(include/ogg/config_types.h.in include/ogg/config_types.h @ONLY) set(OGG_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/include/ogg/config_types.h -- cgit v1.2.1 From 67acb227d69ec00724e7b4dcf4ff8530a0fc96e3 Mon Sep 17 00:00:00 2001 From: Erik de Castro Lopo Date: Mon, 22 Jul 2019 19:28:38 +1000 Subject: CMakeLists.txt: Add detection of uint64_t (#52) --- CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index f8716a3..54a13c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,6 +59,12 @@ check_include_files(stdint.h INCLUDE_STDINT_H) check_include_files(sys/types.h INCLUDE_SYS_TYPES_H) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +set(SIZE16 int16_t) +set(USIZE16 uint16_t) +set(SIZE32 int32_t) +set(USIZE32 uint32_t) +set(SIZE64 int64_t) +set(USIZE64 uint64_t) include(CheckSizes) -- cgit v1.2.1 From 1ab2706e52ccf36ce72b2599a91e8dbb22bc965d Mon Sep 17 00:00:00 2001 From: willson-chen <53104026+willson-chen@users.noreply.github.com> Date: Tue, 23 Jul 2019 14:28:06 +0800 Subject: Update the comment in config_types.h.in (#53) @var@ is replaced by configure when autoconf or cmake when use cmake --- include/ogg/config_types.h.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/ogg/config_types.h.in b/include/ogg/config_types.h.in index 92b4d57..898c3f1 100644 --- a/include/ogg/config_types.h.in +++ b/include/ogg/config_types.h.in @@ -1,7 +1,7 @@ #ifndef __CONFIG_TYPES_H__ #define __CONFIG_TYPES_H__ -/* these are filled in by configure */ +/* these are filled in by configure or cmake*/ #define INCLUDE_INTTYPES_H @INCLUDE_INTTYPES_H@ #define INCLUDE_STDINT_H @INCLUDE_STDINT_H@ #define INCLUDE_SYS_TYPES_H @INCLUDE_SYS_TYPES_H@ -- cgit v1.2.1