Mercurial > hg > orthanc-databases
comparison Resources/PostgreSQL/CheckTypeAlignment.cmake @ 172:8c7bb94adff7
trying upgrade from libpq 9.6.1 to 13.1
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 11 Dec 2020 12:49:33 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
170:e712ff3eede3 | 172:8c7bb94adff7 |
---|---|
1 macro(CHECK_TYPE_ALIGNMENT TYPE NAME) | |
2 if(NOT ${NAME}) | |
3 message(STATUS "Check alignment of ${TYPE}") | |
4 | |
5 set(INCLUDE_HEADERS "#include <stddef.h> | |
6 #include <stdio.h> | |
7 #include <stdlib.h>") | |
8 | |
9 if(HAVE_STDINT_H) | |
10 set(INCLUDE_HEADERS "${INCLUDE_HEADERS}\n#include <stdint.h>\n") | |
11 endif(HAVE_STDINT_H) | |
12 | |
13 file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/check_${NAME}_alignment.c" | |
14 "${INCLUDE_HEADERS} | |
15 int main(){ | |
16 char diff; | |
17 struct foo {char a; ${TYPE} b;}; | |
18 struct foo *p = (struct foo *) malloc(sizeof(struct foo)); | |
19 diff = ((char *)&p->b) - ((char *)&p->a); | |
20 return diff;} | |
21 ") | |
22 | |
23 try_run(${NAME} COMPILE_RESULT "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/" | |
24 "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/check_${NAME}_alignment.c") | |
25 | |
26 message(STATUS "Check alignment of ${TYPE} - ${${NAME}}") | |
27 | |
28 endif(NOT ${NAME}) | |
29 endmacro() |