]> sigrok.org Git - pulseview.git/blame - CMake/memaccess.cmake
Fix build with -DENABLE_DECODE=n.
[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
1b1dbb91
UH
22function(memaccess_check_unaligned_le _var)
23if(NOT CMAKE_CROSSCOMPILING)
9df8453f
MC
24CHECK_C_SOURCE_RUNS("
25#include <stdint.h>
26int main() {
27 int i;
28 union { uint64_t u64; uint8_t u8[16]; } d;
29 uint64_t v;
30 for (i=0; i<16; i++)
1b1dbb91 31 d.u8[i] = i;
9df8453f
MC
32 v = *(uint64_t *)(d.u8+1);
33 if (v != 0x0807060504030201ULL)
34 return 1;
35 return 0;
36}" ${_var})
1b1dbb91
UH
37endif()
38if(CMAKE_CROSSCOMPILING)
d48a82ee 39 message(STATUS "Cross compiling - using portable code for memory access")
1b1dbb91 40endif()
9df8453f 41endfunction()