diff options
author | Jan-Simon Möller <jsmoeller@linuxfoundation.org> | 2017-07-27 17:33:11 +0200 |
---|---|---|
committer | Jan-Simon Möller <jsmoeller@linuxfoundation.org> | 2017-07-27 17:33:11 +0200 |
commit | a78f50b38d8753667da416ea64d5c6b5f29c0a3e (patch) | |
tree | 947626c03a4b3e79a8af222a5d2c94af5b131a8b /cmake/cmake.d/04-build_options.cmake | |
parent | 97348c43db647c0025919350383ce7d561761cb4 (diff) | |
parent | dee58363ddb98f8e63239035f1a8f1ab151c5e96 (diff) |
Merge remote-tracking branch 'origin/master' into dabdab_4.0.3dab_4.0.2dab_4.0.1dab_4.0.0dab/4.0.3dab/4.0.2dab/4.0.1dab/4.0.04.0.34.0.24.0.14.0.0dab
Diffstat (limited to 'cmake/cmake.d/04-build_options.cmake')
-rw-r--r-- | cmake/cmake.d/04-build_options.cmake | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/cmake/cmake.d/04-build_options.cmake b/cmake/cmake.d/04-build_options.cmake index d1b25f4..18a1b17 100644 --- a/cmake/cmake.d/04-build_options.cmake +++ b/cmake/cmake.d/04-build_options.cmake @@ -33,26 +33,23 @@ if (gcc_minimal_version) endif() endif(gcc_minimal_version) -# Check Kernel minimal version +# Check Kernel mandatory version, will fail the configuration if required version not matched. +if (kernel_mandatory_version) + message (STATUS "${Cyan}-- Check kernel_mandatory_version (found kernel version ${KERNEL_VERSION})${ColourReset}") + if (KERNEL_VERSION VERSION_LESS ${kernel_mandatory_version}) + message(FATAL_ERROR "${Red}**** FATAL: Require at least ${kernel_mandatory_version} please use a recent kernel or source your SDK environment then clean and reconfigure your CMake project.") + endif (KERNEL_VERSION VERSION_LESS ${kernel_mandatory_version}) +endif(kernel_mandatory_version) + +# Check Kernel minimal version just print a Warning about missing features +# and set a definition to be used as preprocessor condition in code to disable +# incompatibles features. if (kernel_minimal_version) - if(DEFINED ENV{SDKTARGETSYSROOT}) - file(STRINGS $ENV{SDKTARGETSYSROOT}/usr/include/linux/version.h LINUX_VERSION_CODE_LINE REGEX "LINUX_VERSION_CODE") - elseif(DEFINED ENV{PKG_CONFIG_SYSROOT_DIR}) - file(STRINGS $ENV{PKG_CONFIG_SYSROOT_DIR}/usr/include/linux/version.h LINUX_VERSION_CODE_LINE REGEX "LINUX_VERSION_CODE") - else() - file(STRINGS /usr/include/linux/version.h LINUX_VERSION_CODE_LINE REGEX "LINUX_VERSION_CODE") - endif() - - string(REGEX MATCH "[0-9]+" LINUX_VERSION_CODE ${LINUX_VERSION_CODE_LINE}) - math(EXPR a "${LINUX_VERSION_CODE} >> 16") - math(EXPR b "(${LINUX_VERSION_CODE} >> 8) & 255") - math(EXPR c "(${LINUX_VERSION_CODE} & 255)") - - set(KERNEL_VERSION "${a}.${b}.${c}") message (STATUS "${Cyan}-- Check kernel_minimal_version (found kernel version ${KERNEL_VERSION})${ColourReset}") - if (KERNEL_VERSION VERSION_LESS ${kernel_minimal_version}) - message(FATAL_ERROR "${Red}**** FATAL: Require at least ${kernel_minimal_version} please use a recent kernel or source your SDK environment then clean and reconfigure your CMake project.") + message(WARNING "${Yellow}**** Warning: Some feature(s) require at least ${kernel_minimal_version}. Please use a recent kernel or source your SDK environment then clean and reconfigure your CMake project.${ColourReset}") + else (KERNEL_VERSION VERSION_LESS ${kernel_minimal_version}) + add_definitions(-DKERNEL_MINIMAL_VERSION_OK) endif (KERNEL_VERSION VERSION_LESS ${kernel_minimal_version}) endif(kernel_minimal_version) @@ -75,18 +72,19 @@ add_compile_options(-fPIC) # TODO: make more visible readable compile (macro ? split ?) # Compilation option depending on CMAKE_BUILD_TYPE ################################################## -add_compile_options($<$<OR:$<CONFIG:DEBUG>,$<CONFIG:PROFILING>,$<CONFIG:CCOV>>:-g>) - -add_compile_options($<$<CONFIG:DEBUG>:-ggdb>) -add_compile_options($<$<CONFIG:CCOV>:--coverage>) - -add_compile_options($<$<CONFIG:DEBUG>:-Og>) +add_compile_options($<$<CONFIG:PROFILING>:-g>) add_compile_options($<$<CONFIG:PROFILING>:-O0>) add_compile_options($<$<CONFIG:PROFILING>:-pg>) -add_compile_options($<$<OR:$<CONFIG:CCOV>,$<CONFIG:PROFILING>>:-O2>) +add_compile_options($<$<CONFIG:PROFILING>:-Wp,-U_FORTIFY_SOURCE>) -add_compile_options($<$<OR:$<CONFIG:DEBUG>,$<CONFIG:PROFILING>>:-Wp,-U_FORTIFY_SOURCE>) +add_compile_options($<$<CONFIG:DEBUG>:-g>) +add_compile_options($<$<CONFIG:DEBUG>:-O0>) +add_compile_options($<$<CONFIG:DEBUG>:-ggdb>) +add_compile_options($<$<CONFIG:DEBUG>:-Wp,-U_FORTIFY_SOURCE>) +add_compile_options($<$<CONFIG:CCOV>:-g>) +add_compile_options($<$<CONFIG:CCOV>:-O2>) +add_compile_options($<$<CONFIG:CCOV>:--coverage>) # Env variable overload default if(DEFINED ENV{INSTALL_PREFIX}) |