summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorChad Versace <chad.versace@linux.intel.com>2013-08-19 22:28:46 -0700
committerChad Versace <chad.versace@linux.intel.com>2013-08-19 23:45:46 -0700
commit6fcbe52d4210891da31838efb8fbc4d7aab7aa68 (patch)
tree40c7c05e3ae01dedc0b43acc9623a3d965c665c5 /cmake
parent8cd7a22db9691668e2c44a1367f891a2af6caf33 (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.cmake71
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()