Remove hardcoded flags. This inhibits user flags, which is required by QA. --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,10 +3,6 @@ cmake_minimum_required( VERSION 3.3.2 ) -IF(CMAKE_BUILD_TYPE STREQUAL "") - SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build Type" FORCE) -ENDIF() - SET(ALL_TARGETS fex gvbam visualboyadvance-m vbamcore vbam) if( COMMAND cmake_policy ) @@ -28,6 +24,11 @@ SET(ASM_SCALERS_DEFAULT OFF) SET(MMX_DEFAULT OFF) +# Require C++11 support +SET(CMAKE_CXX_STANDARD 11) +SET(CMAKE_CXX_STANDARD_REQUIRED ON) +SET(CMAKE_CXX_EXTENSIONS OFF) + # turn asm on by default on 32bit x86 IF(CMAKE_SYSTEM_PROCESSOR MATCHES "[xX]86|[aA][mM][dD]64|[xX]64") IF(CMAKE_C_SIZEOF_DATA_PTR EQUAL 4) # 32 bit @@ -101,12 +102,6 @@ endif(EXISTS ${PROJECT_SOURCE_DIR}/.git) ENDIF( NOT VERSION ) -IF(CMAKE_BUILD_TYPE STREQUAL "Debug") - ADD_DEFINITIONS(-DDEBUG) -ELSE() - ADD_DEFINITIONS(-DNDEBUG) -ENDIF() - # Add support for Homebrew, MacPorts and Fink on OS X IF(APPLE) INCLUDE(MacPackageManagers) @@ -261,96 +256,9 @@ INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/dependencies/include") ENDIF() -# Compiler flags - -IF(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - SET(LTO_FLAG "") - IF(ENABLE_LTO) - IF(CMAKE_COMPILER_IS_GNUCXX) - SET(LTO_FLAG -flto=10) - ELSE() - SET(LTO_FLAG -flto) - ENDIF() - ENDIF(ENABLE_LTO) - - # common optimization flags - SET(MY_C_AND_CXX_OPT_FLAGS -O2 -mtune=generic -fomit-frame-pointer ${LTO_FLAG}) - - # common debug flags - IF(CMAKE_COMPILER_IS_GNUCXX) - SET(MY_C_AND_CXX_DBG_FLAGS -ggdb3 -Og) - ELSE() - SET(MY_C_AND_CXX_DBG_FLAGS -g) - ENDIF() - - # common flags - SET(MY_C_AND_CXX_FLAGS -pipe -fPIC -Wformat -Wformat-security -fstack-protector-strong --param ssp-buffer-size=4 -fexceptions -D_FORTIFY_SOURCE=2 -feliminate-unused-debug-types) - - SET(MY_C_FLAGS ${MY_C_FLAGS} ${MY_C_AND_CXX_FLAGS}) - SET(MY_CXX_FLAGS ${MY_CXX_FLAGS} ${MY_C_AND_CXX_FLAGS}) - - IF(MINGW) - SET(MY_C_FLAGS ${MY_C_FLAGS} -static-libgcc) - SET(MY_CXX_FLAGS ${MY_CXX_FLAGS} -static-libgcc -static-libstdc++) - ENDIF(MINGW) - - IF(CMAKE_BUILD_TYPE STREQUAL Debug) - SET(MY_C_FLAGS ${MY_C_FLAGS} ${MY_C_AND_CXX_DBG_FLAGS} -Wall) - SET(MY_CXX_FLAGS ${MY_CXX_FLAGS} ${MY_C_AND_CXX_DBG_FLAGS} -Wall) - ELSE() - SET(MY_C_FLAGS ${MY_C_FLAGS} ${MY_C_AND_CXX_OPT_FLAGS} -Wno-error) - SET(MY_CXX_FLAGS ${MY_CXX_FLAGS} ${MY_C_AND_CXX_OPT_FLAGS} -Wno-error) - ENDIF() - - FOREACH(C_COMPILE_FLAG ${MY_C_FLAGS}) - ADD_COMPILE_OPTIONS($<$:${C_COMPILE_FLAG}>) - ENDFOREACH() - - FOREACH(CXX_COMPILE_FLAG ${MY_CXX_FLAGS}) - ADD_COMPILE_OPTIONS($<$:${CXX_COMPILE_FLAG}>) - ENDFOREACH() - - # make a string of compile options to add to link flags - UNSET(C_COMPILE_FLAGS_STR) - UNSET(CXX_COMPILE_FLAGS_STR) - - FOREACH(ARG ${MY_C_FLAGS}) - SET(C_COMPILE_FLAGS_STR "${C_COMPILE_FLAGS_STR} ${ARG}") - ENDFOREACH() - - FOREACH(ARG ${MY_CXX_FLAGS}) - SET(CXX_COMPILE_FLAGS_STR "${CXX_COMPILE_FLAGS_STR} ${ARG}") - ENDFOREACH() - - # need all flags for linking, because of -flto etc. - SET(CMAKE_C_LINK_EXECUTABLE "${CMAKE_C_LINK_EXECUTABLE} ${C_COMPILE_FLAGS_STR}") - SET(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} ${CXX_COMPILE_FLAGS_STR}") - - # for the gcc -fstack-protector* flags we need libssp - # we also have to use the gcc- binutils for LTO to work - IF(CMAKE_COMPILER_IS_GNUCXX) - INCLUDE(UseGCCBinUtilsWrappers) - - IF(WIN32) - SET(SSP_STATIC ON) - ENDIF(WIN32) - - FIND_PACKAGE(SSP) - - IF(SSP_LIBRARY) - SET(CMAKE_C_LINK_EXECUTABLE "${CMAKE_C_LINK_EXECUTABLE} ${SSP_LIBRARY}") - SET(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} ${SSP_LIBRARY}") - ENDIF(SSP_LIBRARY) - - SET(CMAKE_C_LINK_EXECUTABLE "${CMAKE_C_LINK_EXECUTABLE} -Wl,-allow-multiple-definition") - SET(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -Wl,-allow-multiple-definition") - ENDIF() -ENDIF() - # Assembler flags - IF(ASM_ENABLED) - FOREACH(ASM_FLAG -I${CMAKE_SOURCE_DIR}/src/filters/hq/asm/ -O1 -w-orphan-labels) + FOREACH(ASM_FLAG -I${CMAKE_SOURCE_DIR}/src/filters/hq/asm/ -w-orphan-labels) ADD_COMPILE_OPTIONS($<$:${ASM_FLAG}>) ENDFOREACH() ENDIF(ASM_ENABLED) --- a/src/gtk/CMakeLists.txt +++ b/src/gtk/CMakeLists.txt @@ -1,6 +1,3 @@ -#Do not use this file directly. Always use the top level CMakeLists.txt file -SET( CMAKE_CXX_FLAGS -std=gnu++11 ) - #GTK dependencies FIND_PACKAGE ( PkgConfig REQUIRED ) FIND_PACKAGE ( Gettext REQUIRED ) --- a/src/wx/CMakeLists.txt +++ b/src/wx/CMakeLists.txt @@ -1,7 +1,3 @@ -#Do not use this file directly. Always use the top level CMakeLists.txt file -# This build is much easier if we just do it here. -SET( CMAKE_CXX_FLAGS -std=gnu++11 ) - # not yet implemented SET(CAIRO_DEFAULT OFF) @@ -46,15 +42,6 @@ ADD_DEFINITIONS (-DNO_OAL) endif(ENABLE_OPENAL) -IF(CMAKE_BUILD_TYPE STREQUAL "Debug") - SET(wxWidgets_USE_DEBUG ON) # noop if wx is compiled with --disable-debug, like in Mac Homebrew atm - - # and if this is the case, we can't set debug level without link failing - IF(NOT wxWidgets_DEFINITIONS MATCHES "-DwxDEBUG_LEVEL=0") - ADD_DEFINITIONS(-DwxDEBUG_LEVEL=1) - ENDIF() -ENDIF() - IF(APPLE) SET(wxWidgets_USE_STATIC ON) ENDIF(APPLE) @@ -256,13 +243,6 @@ SET_PROPERTY(TARGET visualboyadvance-m APPEND PROPERTY MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/wxplist.in) SET(MACOSX_BUNDLE_ICON_FILE ${VBAM_ICON}) SET_SOURCE_FILES_PROPERTIES(${VBAM_ICON_PATH} PROPERTIES MACOSX_PACKAGE_LOCATION Resources) - - # budle dylibs and relink them for releasing .app - # but only in Release mode - IF(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") - ADD_CUSTOM_COMMAND(TARGET visualboyadvance-m POST_BUILD - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tools/osx/third_party_libs_tool "$/../..") - ENDIF() endif(APPLE) SET(WX_EXE_NAME visualboyadvance-m-wx${CMAKE_EXECUTABLE_SUFFIX})