| @ -0,0 +1,53 @@ | |||
| include(CheckCCompilerFlag) | |||
| # Add list of compiler warnings | |||
| # Every warning gets checked with check_c_compiler_flags | |||
| function(add_compiler_warnings) | |||
| foreach (flag ${ARGN}) | |||
| check_c_compiler_flag(${flag} ok) | |||
| if (ok) | |||
| add_compile_options(${flag}) | |||
| endif () | |||
| endforeach () | |||
| endfunction () | |||
| # Create new ${EXE,MODULE,SHARED}_LINKER_FLAGS build type for list of linker flags | |||
| # Every linker flag gets checked with check_c_compiler_flag | |||
| function(create_custom_linker_flags name) | |||
| foreach (flag ${ARGN}) | |||
| check_c_compiler_flag(-Wl,${flag} ok) | |||
| if (ok) | |||
| if (ldflags) | |||
| set(ldflags "${ldflags},${flag}") | |||
| else () | |||
| set(ldflags "-Wl,${flag}") | |||
| endif () | |||
| endif () | |||
| endforeach () | |||
| string(TOUPPER ${name} upper) | |||
| set(CMAKE_EXE_LINKER_FLAGS_${upper} "${ldflags}" CACHE STRING "${name} exe linker flags" FORCE) | |||
| set(CMAKE_MODULE_LINKER_FLAGS_${upper} "${ldflags}" CACHE STRING "${name} module linker flags" FORCE) | |||
| set(CMAKE_SHARED_LINKER_FLAGS_${upper} "${ldflags}" CACHE STRING "${name} shared linker flags" FORCE) | |||
| mark_as_advanced(CMAKE_EXE_LINKER_FLAGS_${upper} CMAKE_SHARED_LINKER_FLAGS_${upper} CMAKE_MODULE_LINKER_FLAGS_${upper}) | |||
| endfunction () | |||
| # Create new {C,CXX}_FLAGS build type for list of compiler flags | |||
| # Every compiler flag gets checked with check_c_compiler_flag | |||
| function(create_custom_compiler_flags name) | |||
| foreach (flag ${ARGN}) | |||
| check_c_compiler_flag(${flag} ok) | |||
| if (ok) | |||
| if (cflags) | |||
| set(cflags "${cflags} ${flag}") | |||
| else () | |||
| set(cflags "${flag}") | |||
| endif () | |||
| endif () | |||
| endforeach () | |||
| string(TOUPPER ${name} upper) | |||
| set(CMAKE_C_FLAGS_${upper} "${cflags}" CACHE STRING "${name} C flags" FORCE) | |||
| set(CMAKE_CXX_FLAGS_${upper} "${cflags}" CACHE STRING "${name} CXX flags" FORCE) | |||
| mark_as_advanced(CMAKE_CXX_FLAGS_${upper} CMAKE_C_FLAGS_${upper}) | |||
| endfunction () | |||