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:
		| @@ -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() | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Carles Fernandez
					Carles Fernandez