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 1/3] 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) From b1ec40f531abfe5c206b9c1f5a49318c8803c808 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Sat, 22 Oct 2016 22:24:19 +0200 Subject: [PATCH 2/3] Use -Wno-error=date-time only when compiler supports it --- CMakeLists.txt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0553dfc566..cd2c9ba24a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,13 +129,12 @@ if (NOT DISABLE_RCT2) message("DISABLE_RCT2 implies FORCE32") endif() -if (LAUNCHPAD_BUILD) - # Launchpad turns on -Wdate-time for compilers that support it, this shouldn't break our build - set(COMMON_COMPILE_OPTIONS "${COMMON_COMPILE_OPTIONS} -Wno-error=date-time") -else() - if (FORCE32) - set(TARGET_M "-m32") - endif() +# Launchpad turns on -Wdate-time for compilers that support it, this shouldn't break our build +ADD_CHECK_C_COMPILER_FLAG(CMAKE_C_FLAGS C_WARN_WRITE_STRINGS -Wno-error=date-time) +ADD_CHECK_CXX_COMPILER_FLAG(CMAKE_CXX_FLAGS CXX_WARN_WRITE_STRINGS -Wno-error=date-time) + +if (FORCE32) + set(TARGET_M "-m32") endif() if (FORCE32) From 03bd98f39570edf3e652f4ccafbf8769f2b44842 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Sat, 22 Oct 2016 22:25:30 +0200 Subject: [PATCH 3/3] Remove special cases for Launchpad builds --- CMakeLists.txt | 1 - debian/rules | 5 ----- 2 files changed, 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cd2c9ba24a..4055e48b6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -115,7 +115,6 @@ option(FORCE32 "Force 32-bit build. It will add `-m32` to compiler flags") option(DISABLE_OPENGL "Disable OpenGL support.") option(DISABLE_RCT2 "Build a standalone version, without using code and data segments from vanilla. On by default." ON) option(USE_MMAP "Use mmap to try loading rct2's data segment into memory.") -option(LAUNCHPAD_BUILD "Sets some build system options on launchpad.net") set(COMMON_COMPILE_OPTIONS "${COMMON_COMPILE_OPTIONS} -fstrict-aliasing -Werror -Wundef -Wmissing-declarations -Winit-self -Wall -Wno-unknown-pragmas -Wno-unused-function -Wno-missing-braces -Wno-comment") diff --git a/debian/rules b/debian/rules index ac1bd8470f..3c39c25d50 100755 --- a/debian/rules +++ b/debian/rules @@ -2,10 +2,5 @@ BUILDDIR=build_dir -extra_flags := "-DLAUNCHPAD_BUILD=on" - -override_dh_auto_configure: - dh_auto_configure -a -- $(extra_flags) - %: dh $@