1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-10-31 07:13:03 +00:00

Fix building with custom build types

None, NoOptWithASM, Coverage, O2WithASM, O3WithASM and ASAN can now be used in CMAKE_BUILD_TYPE, in addition to Debug, Release, RelWithDebInfo and MinSizeRel.
Custom build types passed to volk_gnsssdr

Handle of custom build types when building tests
Fixes for clang
This commit is contained in:
Carles Fernandez
2020-01-19 22:13:50 +01:00
parent 7b4523a60d
commit 120032c8bd
3 changed files with 160 additions and 77 deletions

View File

@@ -37,7 +37,7 @@ set(__INCLUDED_VOLK_BUILD_TYPES_CMAKE TRUE)
# build type below, make sure to add it to this list.
list(APPEND AVAIL_BUILDTYPES
None Debug Release RelWithDebInfo MinSizeRel
DebugParanoid NoOptWithASM O2WithASM O3WithASM
DebugParanoid Coverage NoOptWithASM O2WithASM O3WithASM
ASAN
)
@@ -78,12 +78,21 @@ if(NOT WIN32)
"Flags used by the C++ compiler during DebugParanoid builds." FORCE)
set(CMAKE_C_FLAGS_DEBUGPARANOID "-Wall -Wextra -g -O0" CACHE STRING
"Flags used by the C compiler during DebugParanoid builds." FORCE)
set(CMAKE_EXE_LINKER_FLAGS_DEBUGPARANOID
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used for linking binaries during NoOptWithASM builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_DEBUGPARANOID
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used by the shared lib linker during NoOptWithASM builds." FORCE)
if(CMAKE_COMPILER_ID STREQUAL GNU)
set(CMAKE_EXE_LINKER_FLAGS_DEBUGPARANOID
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used for linking binaries during DebugParanoid builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_DEBUGPARANOID
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used by the shared lib linker during DebugParanoid builds." FORCE)
else()
set(CMAKE_EXE_LINKER_FLAGS_DEBUGPARANOID
"-Wl" CACHE STRING
"Flags used for linking binaries during DebugParanoid builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_DEBUGPARANOID
"-Wl" CACHE STRING
"Flags used by the shared lib linker during DebugParanoid builds." FORCE)
endif()
mark_as_advanced(
CMAKE_CXX_FLAGS_DEBUGPARANOID
@@ -92,6 +101,36 @@ if(NOT WIN32)
CMAKE_SHARED_LINKER_DEBUGPARANOID)
endif()
########################################################################
# For GCC and Clang, we can set a build type:
#
# -DCMAKE_BUILD_TYPE=Coverage
#
# This type uses no optimization (-O0), outputs debug symbols (-g) and
# outputs all intermediary files the build system produces, including
# all assembly (.s) files. Look in the build directory for these
# files.
# NOTE: This is not defined on Windows systems.
########################################################################
if(NOT WIN32)
set(CMAKE_CXX_FLAGS_COVERAGE "-Wall -pedantic -pthread -g -O0 -fprofile-arcs -ftest-coverage" CACHE STRING
"Flags used by the C++ compiler during Coverage builds." FORCE)
set(CMAKE_C_FLAGS_COVERAGE "-Wall -pedantic -pthread -g -O0 -fprofile-arcs -ftest-coverage" CACHE STRING
"Flags used by the C compiler during Coverage builds." FORCE)
set(CMAKE_EXE_LINKER_FLAGS_COVERAGE
"-W" CACHE STRING
"Flags used for linking binaries during Coverage builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE
"-W" CACHE STRING
"Flags used by the shared lib linker during Coverage builds." FORCE)
mark_as_advanced(
CMAKE_CXX_FLAGS_COVERAGE
CMAKE_C_FLAGS_COVERAGE
CMAKE_EXE_LINKER_FLAGS_COVERAGE
CMAKE_SHARED_LINKER_FLAGS_COVERAGE)
endif()
########################################################################
# For GCC and Clang, we can set a build type:
@@ -109,13 +148,21 @@ if(NOT WIN32)
"Flags used by the C++ compiler during NoOptWithASM builds." FORCE)
set(CMAKE_C_FLAGS_NOOPTWITHASM "-save-temps -g -O0" CACHE STRING
"Flags used by the C compiler during NoOptWithASM builds." FORCE)
set(CMAKE_EXE_LINKER_FLAGS_NOOPTWITHASM
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used for linking binaries during NoOptWithASM builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_NOOPTWITHASM
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used by the shared lib linker during NoOptWithASM builds." FORCE)
if(CMAKE_COMPILER_ID STREQUAL GNU)
set(CMAKE_EXE_LINKER_FLAGS_NOOPTWITHASM
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used for linking binaries during NoOptWithASM builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_NOOPTWITHASM
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used by the shared lib linker during NoOptWithASM builds." FORCE)
else()
set(CMAKE_EXE_LINKER_FLAGS_NOOPTWITHASM
"-Wl" CACHE STRING
"Flags used for linking binaries during NoOptWithASM builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_NOOPTWITHASM
"-Wl" CACHE STRING
"Flags used by the shared lib linker during NoOptWithASM builds." FORCE)
endif()
mark_as_advanced(
CMAKE_CXX_FLAGS_NOOPTWITHASM
CMAKE_C_FLAGS_NOOPTWITHASM
@@ -141,12 +188,21 @@ if(NOT WIN32)
"Flags used by the C++ compiler during O2WithASM builds." FORCE)
set(CMAKE_C_FLAGS_O2WITHASM "-save-temps -g -O2" CACHE STRING
"Flags used by the C compiler during O2WithASM builds." FORCE)
set(CMAKE_EXE_LINKER_FLAGS_O2WITHASM
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used for linking binaries during O2WithASM builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_O2WITHASM
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used by the shared lib linker during O2WithASM builds." FORCE)
if(CMAKE_COMPILER_ID STREQUAL GNU)
set(CMAKE_EXE_LINKER_FLAGS_O2WITHASM
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used for linking binaries during O2WithASM builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_O2WITHASM
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used by the shared lib linker during O2WithASM builds." FORCE)
else()
set(CMAKE_EXE_LINKER_FLAGS_O2WITHASM
"-Wl" CACHE STRING
"Flags used for linking binaries during O2WithASM builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_O2WITHASM
"-Wl" CACHE STRING
"Flags used by the shared lib linker during O2WithASM builds." FORCE)
endif()
mark_as_advanced(
CMAKE_CXX_FLAGS_O2WITHASM
@@ -173,12 +229,21 @@ if(NOT WIN32)
"Flags used by the C++ compiler during O3WithASM builds." FORCE)
set(CMAKE_C_FLAGS_O3WITHASM "-save-temps -g -O3" CACHE STRING
"Flags used by the C compiler during O3WithASM builds." FORCE)
set(CMAKE_EXE_LINKER_FLAGS_O3WITHASM
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used for linking binaries during O3WithASM builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_O3WITHASM
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used by the shared lib linker during O3WithASM builds." FORCE)
if(CMAKE_COMPILER_ID STREQUAL GNU)
set(CMAKE_EXE_LINKER_FLAGS_O3WITHASM
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used for linking binaries during O3WithASM builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_O3WITHASM
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING
"Flags used by the shared lib linker during O3WithASM builds." FORCE)
else()
set(CMAKE_EXE_LINKER_FLAGS_O3WITHASM
"-Wl" CACHE STRING
"Flags used for linking binaries during O3WithASM builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_O3WITHASM
"-Wl" CACHE STRING
"Flags used by the shared lib linker during O3WithASM builds." FORCE)
endif()
mark_as_advanced(
CMAKE_CXX_FLAGS_O3WITHASM
@@ -207,4 +272,3 @@ if(NOT WIN32)
CMAKE_EXE_LINKER_FLAGS_DEBUGPARANOID
CMAKE_SHARED_LINKER_DEBUGPARANOID)
endif()