From 92fb5c1d7609d9443c5f252e344927de7fc8907f Mon Sep 17 00:00:00 2001 From: "J.A. de Jong" Date: Mon, 3 Jun 2024 16:57:12 +0200 Subject: [PATCH] Updated CMakeLists to compile with correct flags and settings --- CMakeLists.txt | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ab7b7b4..cd3fab4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,17 +1,27 @@ -cmake_minimum_required (VERSION 3.16) +cmake_minimum_required(VERSION 3.16) project(LASP LANGUAGES C CXX VERSION 1.1) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED) -option(LASP_DOUBLE_PRECISION "Compile as double precision floating point" ON) +if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64") + set(RPI TRUE) +else() + set(RPI FALSE) +endif() # Setting defaults for PortAudio and RtAudio backend, depending on Linux / # Windows. +set(DEFAULT_DOUBLE_PRECISION ON) if(WIN32) set(DEFAULT_RTAUDIO OFF) set(DEFAULT_PORTAUDIO ON) set(DEFAULT_ULDAQ OFF) +elseif(${RPI}) + set(DEFAULT_RTAUDIO OFF) + set(DEFAULT_PORTAUDIO ON) + set(DEFAULT_ULDAQ OFF) + else() set(DEFAULT_RTAUDIO OFF) set(DEFAULT_PORTAUDIO ON) @@ -19,6 +29,7 @@ else() endif() +option(LASP_DOUBLE_PRECISION "Compile as double precision floating point" ${DEFAULT_DOUBLE_PRECISION}) option(LASP_HAS_RTAUDIO "Compile with RtAudio Daq backend" ${DEFAULT_RTAUDIO}) option(LASP_HAS_PORTAUDIO "Compile with PortAudio Daq backend" ${DEFAULT_PORTAUDIO}) if(LASP_HAS_PORTAUDIO AND LASP_HAS_RTAUDIO) @@ -34,7 +45,7 @@ option(LASP_BUILD_CPP_TESTS "Build CPP test code" OFF) find_program(CCACHE_PROGRAM ccache) if(CCACHE_PROGRAM) set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") - set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CCACHE_PROGRAM}") + set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CCACHE_PROGRAM}") endif() # To allow linking to static libs from other directories @@ -80,7 +91,7 @@ endif() # Tune for current machine if(LASP_BUILD_TUNED) if(CMAKE_BUILD_TYPE STREQUAL "Debug") - message(FATAL_ERROR + message(FATAL_ERROR "Cannot build optimized and tuned code when debug is switched on") endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -mtune=native") @@ -105,13 +116,17 @@ else() endif() # ###################################### Compilation flags -set(CMAKE_C_FLAGS_RELEASE "-O3 -flto -mfpmath=sse -march=x86-64 -mtune=native \ +set(CMAKE_C_FLAGS_RELEASE "-O3 -flto -mtune=native \ -fdata-sections -ffunction-sections -fomit-frame-pointer -finline-functions") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-type-limits -Werror=return-type") -set(CMAKE_CXX_FLAGS_RELEASE "-O3 -flto -mfpmath=sse -march=x86-64 -mtune=native \ +set(CMAKE_CXX_FLAGS_RELEASE "-O3 -flto -mtune=native \ -fdata-sections -ffunction-sections -fomit-frame-pointer -finline-functions") +if(NOT ${RPI}) + set(CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE} -mfpmath=sse -march=x86-64) + set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE} -mfpmath=sse -march=x86-64) +endif() set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wall ") # ############################# End compilation flags