summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2018-08-09 11:51:05 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2018-10-15 18:22:48 +0200
commit915a564fd2be335f589264ecabc495109a15fe23 (patch)
tree33bd1a8788faf7d148ccbadad01b3949098e3f4b
parent20522393fee121c684fae3b03c5e8dafd4e820b6 (diff)
Change default compilation options.
This changes the default build type to RELEASE as it would be built using Yocto. Debug build should be activated if needed temporary as the other type: coverage and profiling. Doing this you are able to detect compilation error that would happens when building with Yocto and if you need to debug your program you only need to recompile changing temporary the build type to DEBUG. Bugs-AGL: SPEC-1644 Change-Id: I1823509a1a48415d3d440dd84d1e43ef48736ebe Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
-rw-r--r--cmake/cmake.d/01-build_options.cmake17
-rw-r--r--samples.d/config.cmake.sample13
2 files changed, 24 insertions, 6 deletions
diff --git a/cmake/cmake.d/01-build_options.cmake b/cmake/cmake.d/01-build_options.cmake
index 3be92ba..502b6bd 100644
--- a/cmake/cmake.d/01-build_options.cmake
+++ b/cmake/cmake.d/01-build_options.cmake
@@ -36,7 +36,7 @@ if(NOT CMAKE_BUILD_TYPE)
if(BUILD_TYPE)
set(CMAKE_BUILD_TYPE ${BUILD_TYPE} CACHE STRING "the type of build" FORCE)
else()
- set(CMAKE_BUILD_TYPE DEBUG CACHE STRING "the type of build" FORCE)
+ set(CMAKE_BUILD_TYPE RELEASE CACHE STRING "the type of build" FORCE)
endif()
endif()
@@ -86,9 +86,20 @@ endforeach()
# Compilation option depending on CMAKE_BUILD_TYPE
##################################################
set(PROFILING_COMPILE_OPTIONS -g -O0 -pg -Wp,-U_FORTIFY_SOURCE CACHE STRING "Compilation flags for PROFILING build type.")
-set(DEBUG_COMPILE_OPTIONS -g -ggdb -Og -D_FORTIFY_SOURCE=2 CACHE STRING "Compilation flags for DEBUG build type.")
+set(DEBUG_COMPILE_OPTIONS -g -ggdb CACHE STRING "Compilation flags for DEBUG build type.")
set(COVERAGE_COMPILE_OPTIONS -g --coverage CACHE STRING "Compilation flags for COVERAGE build type.")
-set(RELEASE_COMPILE_OPTIONS -O2 -D_FORTIFY_SOURCE=2 CACHE STRING "Compilation flags for RELEASE build type.")
+set(RELEASE_COMPILE_OPTIONS -O2
+ -pipe
+ -D_FORTIFY_SOURCE=2
+ -fstack-protector-strong
+ -Wformat -Wformat-security
+ -Werror=format-security
+ -feliminate-unused-debug-types
+ -Wl,-O1
+ -Wl,--hash-style=gnu
+ -Wl,--as-needed
+ -fstack-protector-strong
+ -Wl,-z,relro,-z,now CACHE STRING "Compilation flags for RELEASE build type. This is a copy of default Yocto build compile flags.")
foreach(option ${PROFILING_COMPILE_OPTIONS})
add_compile_options($<$<CONFIG:PROFILING>:${option}>)
endforeach()
diff --git a/samples.d/config.cmake.sample b/samples.d/config.cmake.sample
index b7e60c6..999208a 100644
--- a/samples.d/config.cmake.sample
+++ b/samples.d/config.cmake.sample
@@ -109,17 +109,24 @@ set (PKG_REQUIRED_LIST
#set(DEBUG_COMPILE_OPTIONS
# -g
# -ggdb
-# -Og
-# -D_FORTIFY_SOURCE=2
# CACHE STRING "Compilation flags for DEBUG build type.")
#set(CCOV_COMPILE_OPTIONS
# -g
# --coverage
# CACHE STRING "Compilation flags for CCOV build type.")
#set(RELEASE_COMPILE_OPTIONS
-# -g
# -O2
+# -pipe
# -D_FORTIFY_SOURCE=2
+# -fstack-protector-strong
+# -Wformat -Wformat-security
+# -Werror=format-security
+# -feliminate-unused-debug-types
+# -Wl,-O1
+# -Wl,--hash-style=gnu
+# -Wl,--as-needed
+# -fstack-protector-strong
+# -Wl,-z,relro,-z,now
# CACHE STRING "Compilation flags for RELEASE build type.")
# Location for config.xml.in template file.