From c70639302c2930d6e14cbbcaf82ef177eedb7250 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Sat, 22 Oct 2016 22:20:37 +0200 Subject: [PATCH] Add convenience functions to CMakeLists.txt The helper functions allow setting compiler flags only if compiler supports them. --- CMakeLists.txt | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index d146f8bce0..0553dfc566 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,8 +60,44 @@ execute_process( ) add_definitions(-DOPENRCT2_COMMIT_SHA1_SHORT="${OPENRCT2_COMMIT_SHA1_SHORT}") +# Convenience functions to set compiler flags only if available +include(CheckCCompilerFlag) +include(CheckCXXCompilerFlag) + +function(ADD_CHECK_C_COMPILER_FLAG + _CFLAGS + _CACHE_VAR + _FLAG + ) + + CHECK_C_COMPILER_FLAG("${_FLAG}" "${_CACHE_VAR}") + if(${_CACHE_VAR}) + # message(STATUS "Using CFLAG: ${_FLAG}") + set(${_CFLAGS} "${${_CFLAGS}} ${_FLAG}" PARENT_SCOPE) + else() + message(STATUS "Unsupported CFLAG: ${_FLAG}") + endif() +endfunction() + +function(ADD_CHECK_CXX_COMPILER_FLAG + _CXXFLAGS + _CACHE_VAR + _FLAG + ) + + CHECK_CXX_COMPILER_FLAG("${_FLAG}" "${_CACHE_VAR}") + if(${_CACHE_VAR}) + # message(STATUS "Using CXXFLAG: ${_FLAG}") + set(${_CXXFLAGS} "${${_CXXFLAGS}} ${_FLAG}" PARENT_SCOPE) + else() + message(STATUS "Unsupported CXXFLAG: ${_FLAG}") + endif() +endfunction() + +# pkg-config INCLUDE(FindPkgConfig) +# Needed for linking with non-broken OpenSSL on Apple platforms if (APPLE) set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/openssl/lib/pkgconfig") endif (APPLE)