diff options
author | Chad Versace <chad.versace@linux.intel.com> | 2013-08-19 22:34:47 -0700 |
---|---|---|
committer | Chad Versace <chad.versace@linux.intel.com> | 2013-08-19 23:46:51 -0700 |
commit | ef15984dca3f67d78eb6026970537442d7450830 (patch) | |
tree | 66488fb9b7bfef8e9b725b508ac28c912bedb0e7 | |
parent | 4915962cb59ffa7c7c0eae799595fca5f4ca5ba7 (diff) |
cmake: Refactor option validation
Move validation of options into a new module WaffleValidateOptions.
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 | 51 | ||||
-rw-r--r-- | cmake/Modules/WaffleValidateOptions.cmake | 65 |
2 files changed, 66 insertions, 50 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d4892d3..4d94054 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,62 +34,13 @@ cmake_minimum_required(VERSION 2.8) include(Options.cmake) include(WaffleDefineInternalOptions) +include(WaffleValidateOptions) include(WaffleDefineVersion) include(WaffleDefineCompilerFlags) include(GNUInstallDirs) find_package(PkgConfig) -# ---------------------------------------------- -# Emit errors for removed options -# ---------------------------------------------- - -if(DEFINED waffle_install_includedir) - message(FATAL_ERROR "Option waffle_install_includedir has been " - "replaced by CMAKE_INSTALL_INCLUDEDIR. You may need to edit the " - "CMakeCache to delete the option. See /doc/building.txt for " - "details.") -endif() - -if(DEFINED waffle_install_libdir) - message(FATAL_ERROR "Option waffle_install_libdir has been " - "replaced by CMAKE_INSTALL_LIBDIR. You may need to edit the " - "CMakeCache to delete the option. See /doc/building.txt for " - "details.") -endif() - -if(DEFINED waffle_install_docdir) - message(FATAL_ERROR "Option waffle_install_docdir has been " - "replaced by CMAKE_INSTALL_DOCDIR. You may need to edit the " - "CMakeCache to delete the option. See /doc/building.txt for " - "details.") -endif() - -# ---------------------------------------------- -# Validate waffle options -# ---------------------------------------------- - -if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") - if(NOT waffle_has_glx AND NOT waffle_has_wayland AND - NOT waffle_has_x11_egl AND NOT waffle_has_gbm) - message(FATAL_ERROR - "Must enable at least one of: " - "waffle_has_glx, waffle_has_wayland, " - "waffle_has_x11_egl, waffle_has_gbm.") - endif() -elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") - if(waffle_has_glx) - message(FATAL_ERROR "Option is not supported on Darwin: waffle_has_glx.") - endif() - if(waffle_has_wayland) - message(FATAL_ERROR "Option is not supported on Darwin: waffle_has_wayland.") - endif() - if(waffle_has_x11_egl) - message(FATAL_ERROR "Option is not supported on Darwin: waffle_has_x11_egl.") - endif() -endif() - - # ------------------------------------------------------------------------------ # Find Libraries # ------------------------------------------------------------------------------ diff --git a/cmake/Modules/WaffleValidateOptions.cmake b/cmake/Modules/WaffleValidateOptions.cmake new file mode 100644 index 0000000..798d9c9 --- /dev/null +++ b/cmake/Modules/WaffleValidateOptions.cmake @@ -0,0 +1,65 @@ +# 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. + +if(DEFINED waffle_install_includedir) + message(FATAL_ERROR "Option waffle_install_includedir has been " + "replaced by CMAKE_INSTALL_INCLUDEDIR. You may need to edit the " + "CMakeCache to delete the option. See /doc/building.txt for " + "details.") +endif() + +if(DEFINED waffle_install_libdir) + message(FATAL_ERROR "Option waffle_install_libdir has been " + "replaced by CMAKE_INSTALL_LIBDIR. You may need to edit the " + "CMakeCache to delete the option. See /doc/building.txt for " + "details.") +endif() + +if(DEFINED waffle_install_docdir) + message(FATAL_ERROR "Option waffle_install_docdir has been " + "replaced by CMAKE_INSTALL_DOCDIR. You may need to edit the " + "CMakeCache to delete the option. See /doc/building.txt for " + "details.") +endif() + +if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") + if(NOT waffle_has_glx AND NOT waffle_has_wayland AND + NOT waffle_has_x11_egl AND NOT waffle_has_gbm) + message(FATAL_ERROR + "Must enable at least one of: " + "waffle_has_glx, waffle_has_wayland, " + "waffle_has_x11_egl, waffle_has_gbm.") + endif() +elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") + if(waffle_has_glx) + message(FATAL_ERROR "Option is not supported on Darwin: waffle_has_glx.") + endif() + if(waffle_has_wayland) + message(FATAL_ERROR "Option is not supported on Darwin: waffle_has_wayland.") + endif() + if(waffle_has_x11_egl) + message(FATAL_ERROR "Option is not supported on Darwin: waffle_has_x11_egl.") + endif() +endif() |