• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1include(CheckCXXCompilerFlag)
2set(CMAKE_C_STANDARD 99)
3# Adds compiler options for all targets
4function(libxaac_add_compile_options)
5  if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
6    add_compile_options(-std=gnu99 -march=armv8-a)
7  elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch32")
8    add_compile_options(-O3 -Wall -std=c99 -mcpu=cortex-a8 -march=armv7-a -mfloat-abi=softfp -mfpu=neon)
9  elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i686" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
10    add_compile_options(-O3 -Wall -Wsequence-point -fwrapv)
11  endif()
12
13  set(CMAKE_REQUIRED_FLAGS -fsanitize=fuzzer-no-link)
14  check_cxx_compiler_flag(-fsanitize=fuzzer-no-link
15                          COMPILER_HAS_SANITIZE_FUZZER)
16  unset(CMAKE_REQUIRED_FLAGS)
17
18  if(DEFINED SANITIZE)
19    set(CMAKE_REQUIRED_FLAGS -fsanitize=${SANITIZE})
20    check_cxx_compiler_flag(-fsanitize=${SANITIZE} COMPILER_HAS_SANITIZER)
21    unset(CMAKE_REQUIRED_FLAGS)
22
23    if(NOT COMPILER_HAS_SANITIZER)
24      message(
25        FATAL_ERROR "ERROR: Compiler doesn't support -fsanitize=${SANITIZE}")
26      return()
27    endif()
28    add_compile_options(-fno-omit-frame-pointer -fsanitize=${SANITIZE})
29  endif()
30
31endfunction()
32
33# Adds defintions for all targets
34function(libxaac_add_definitions)
35  if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
36    add_definitions(-DARMV8 -DDEFAULT_ARCH=D_ARCH_ARMV8_GENERIC)
37  elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch32")
38    add_definitions(-DARMV7 -DDEFAULT_ARCH=D_ARCH_ARM_A9Q)
39  elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i686")
40    add_definitions(-DX86 -DX86_LINUX=1 -DDISABLE_AVX2 -DDEFAULT_ARCH=D_ARCH_X86_SSE42)
41  endif()
42endfunction()
43
44# Adds libraries needed for executables
45function(libxaac_set_link_libraries)
46  if(NOT MSVC)
47    link_libraries(Threads::Threads --static)
48  endif()
49endfunction()
50
51#Adds libraries for fuzzer
52function(libxaac_fuzzer_set_link_libraries)
53  link_libraries(Threads::Threads m)
54endfunction()