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 | |
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>
-rw-r--r-- | CMakeLists.txt | 58 | ||||
-rw-r--r-- | cmake/Modules/WaffleDefineCompilerFlags.cmake | 71 |
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() |