]> sigrok.org Git - pulseview.git/blame - CMake/memaccess.cmake
Check if unportable sample pack/unpack works and in that case use it.
[pulseview.git] / CMake / memaccess.cmake
CommitLineData
9df8453f
MC
1##
2## This file is part of the PulseView project.
3##
4## Copyright (C) 2014 Marcus Comstedt <marcus@mc.pp.se>
5##
6## This program is free software: you can redistribute it and/or modify
7## it under the terms of the GNU General Public License as published by
8## the Free Software Foundation, either version 2 of the License, or
9## (at your option) any later version.
10##
11## This program is distributed in the hope that it will be useful,
12## but WITHOUT ANY WARRANTY; without even the implied warranty of
13## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14## GNU General Public License for more details.
15##
16## You should have received a copy of the GNU General Public License
17## along with this program. If not, see <http://www.gnu.org/licenses/>.
18##
19
20include(CheckCSourceRuns)
21
22function (memaccess_check_unaligned_le _var)
23CHECK_C_SOURCE_RUNS("
24#include <stdint.h>
25int main() {
26 int i;
27 union { uint64_t u64; uint8_t u8[16]; } d;
28 uint64_t v;
29 for (i=0; i<16; i++)
30 d.u8[i] = i;
31 v = *(uint64_t *)(d.u8+1);
32 if (v != 0x0807060504030201ULL)
33 return 1;
34 return 0;
35}" ${_var})
36endfunction()