diff options
author | Chad Versace <chad.versace@linux.intel.com> | 2013-08-19 22:28:46 -0700 |
---|---|---|
committer | Chad Versace <chad.versace@linux.intel.com> | 2013-08-19 23:45:46 -0700 |
commit | 6fcbe52d4210891da31838efb8fbc4d7aab7aa68 (patch) | |
tree | 40c7c05e3ae01dedc0b43acc9623a3d965c665c5 /cmake | |
parent | 8cd7a22db9691668e2c44a1367f891a2af6caf33 (diff) |
cmake: Refactor compiler flags into new module
Move definition of compiler flags into a new module
WaffleDefineCompilerFlags.
This change belongs to a series that cleans up the toplevel CMakeLists
by decompositing it into modules.
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Modules/WaffleDefineCompilerFlags.cmake | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/cmake/Modules/WaffleDefineCompilerFlags.cmake b/cmake/Modules/WaffleDefineCompilerFlags.cmake new file mode 100644 index 0000000..b2628df --- /dev/null +++ b/cmake/Modules/WaffleDefineCompilerFlags.cmake @@ -0,0 +1,71 @@ +# Copyright 2013 Intel Corporation +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# - Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# - Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +include(WaffleCheckThreadLocalStorage) + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=c99") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=implicit-function-declaration") + +if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") + # On MacOS, the SSE2 headers trigger this error. + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=missing-prototypes") +endif() + +set(CMAKE_C_FLAGS_DEBUG "-g3 -O0 -DDEBUG") + +# Use '-g1' to produce enough debug info for generating backtraces, but not +# enough for single-stepping. +set(CMAKE_C_FLAGS_RELEASE "-g1 -O2 -DNDEBUG") + +waffle_check_thread_local_storage() + +if(waffle_has_tls) + add_definitions(-DWAFFLE_HAS_TLS) +endif() + +if(waffle_has_tls_model_initial_exec) + add_definitions(-DWAFFLE_HAS_TLS_MODEL_INITIAL_EXEC) +endif() + +if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") + add_definitions(-DWAFFLE_HAS_CGL) +endif() + +if(waffle_has_glx) + add_definitions(-DWAFFLE_HAS_GLX) +endif() + +if(waffle_has_wayland) + add_definitions(-DWAFFLE_HAS_WAYLAND) +endif() + +if(waffle_has_x11_egl) + add_definitions(-DWAFFLE_HAS_X11_EGL) +endif() + +if(waffle_has_gbm) + add_definitions(-DWAFFLE_HAS_GBM) +endif() |