summaryrefslogtreecommitdiff
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
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>
-rw-r--r--CMakeLists.txt58
-rw-r--r--cmake/Modules/WaffleDefineCompilerFlags.cmake71
2 files changed, 72 insertions, 57 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 53cc5c0..87fe48e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,7 +34,7 @@ cmake_minimum_required(VERSION 2.8)
include(Options.cmake)
include(WaffleDefineVersion)
-include(WaffleCheckThreadLocalStorage)
+include(WaffleDefineCompilerFlags)
include(GNUInstallDirs)
find_package(PkgConfig)
@@ -68,11 +68,6 @@ endif()
# Set internal options.
#
-# Set the following:
-# waffle_has_tls
-# waffle_tls_model_initial_exec
-waffle_check_thread_local_storage()
-
if(waffle_has_wayland OR waffle_has_x11_egl OR waffle_has_gbm)
set(waffle_has_egl TRUE)
else(waffle_has_wayland OR waffle_has_x11_egl)
@@ -142,57 +137,6 @@ if(waffle_has_gbm)
pkg_check_modules(libudev REQUIRED libudev)
endif()
-
-# ------------------------------------------------------------------------------
-# Compiler Flags
-# ------------------------------------------------------------------------------
-
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=c99 -Wall -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")
-
-# Produce enough debug info for generating backtraces, but not
-# single-stepping.
-set(CMAKE_C_FLAGS_RELEASE "-g1 -O2 -DNDEBUG")
-
-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()
-
-#
-# Define macros WAFFLE_HAS_{PLATFORM}.
-#
-# Android is not in this list because it uses a separate build system.
-#
-
-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()
-
# ------------------------------------------------------------------------------
# Add subdirectories
# ------------------------------------------------------------------------------
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()