Add -s flag, fix $OPT_FLAGS evaluating as an empty string, and correctly pass the arch needed by Windows with -O3 to the optimize build

This commit is contained in:
pentarctagon 2016-11-16 03:44:11 -06:00
parent 9bc33ff794
commit 9de1f61924
2 changed files with 27 additions and 8 deletions

View file

@ -103,13 +103,13 @@ endif(NOT CMAKE_BUILD_TYPE)
MESSAGE("Adding Optimize build")
if("${ENABLE_LTO}" STREQUAL "yes")
MESSAGE("LTO is enabled for Optimize build")
set(CMAKE_CXX_FLAGS_OPTIMIZE "-O3 -march=native -flto" CACHE STRING "Flags for a more highly optimized build" FORCE)
set(CMAKE_C_FLAGS_OPTIMIZE "-O3 -march=native -flto" CACHE STRING "Flags for a more highly optimized build with LTO" FORCE)
set(CMAKE_CXX_FLAGS_OPTIMIZE "-O3 -march=native -flto -s" CACHE STRING "Flags for a more highly optimized build" FORCE)
set(CMAKE_C_FLAGS_OPTIMIZE "-O3 -march=native -flto -s" CACHE STRING "Flags for a more highly optimized build with LTO" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_OPTIMIZE "-fuse-ld=gold" CACHE STRING "Flags for a more highly optimized build with LTO" FORCE)
else()
MESSAGE("LTO is not enabled for Optimize build")
set(CMAKE_CXX_FLAGS_OPTIMIZE "-O3 -march=native" CACHE STRING "Flags for a more highly optimized build without LTO" FORCE)
set(CMAKE_C_FLAGS_OPTIMIZE "-O3 -march=native" CACHE STRING "Flags for a more highly optimized build without LTO" FORCE)
set(CMAKE_CXX_FLAGS_OPTIMIZE "-O3 -march=native -s" CACHE STRING "Flags for a more highly optimized build without LTO" FORCE)
set(CMAKE_C_FLAGS_OPTIMIZE "-O3 -march=native -s" CACHE STRING "Flags for a more highly optimized build without LTO" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_OPTIMIZE "" CACHE STRING "" FORCE)
endif()
set(CMAKE_SHARED_LINKER_FLAGS_OPTIMIZE "" CACHE STRING "Not used" FORCE)
@ -555,6 +555,22 @@ if(WIN32)
string(REPLACE ";" " " CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "added -march=pentiumpro" FORCE)
MESSAGE("added -march=pentiumpro to Release build")
separate_arguments(CMAKE_CXX_FLAGS_OPTIMIZE)
list(REMOVE_ITEM CMAKE_CXX_FLAGS_OPTIMIZE "-march=native")
list(APPEND CMAKE_CXX_FLAGS_OPTIMIZE "-march=pentiumpro")
list(REMOVE_DUPLICATES CMAKE_CXX_FLAGS_OPTIMIZE)
string(REPLACE ";" " " CMAKE_CXX_FLAGS_OPTIMIZE "${CMAKE_CXX_FLAGS_OPTIMIZE}")
set(CMAKE_CXX_FLAGS_OPTIMIZE "${CMAKE_CXX_FLAGS_OPTIMIZE}" CACHE STRING "added -march=pentiumpro" FORCE)
MESSAGE("added -march=pentiumpro to Optimize build")
separate_arguments(CMAKE_C_FLAGS_OPTIMIZE)
list(REMOVE_ITEM CMAKE_C_FLAGS_OPTIMIZE "-march=native")
list(APPEND CMAKE_C_FLAGS_OPTIMIZE "-march=pentiumpro")
list(REMOVE_DUPLICATES CMAKE_C_FLAGS_OPTIMIZE)
string(REPLACE ";" " " CMAKE_C_FLAGS_OPTIMIZE "${CMAKE_C_FLAGS_OPTIMIZE}")
set(CMAKE_C_FLAGS_OPTIMIZE "${CMAKE_C_FLAGS_OPTIMIZE}" CACHE STRING "added -march=pentiumpro" FORCE)
MESSAGE("added -march=pentiumpro to Optimize build")
endif(WIN32)
# replace the default Debug flag of -g with -O0 -DDEBUG -ggdb3

View file

@ -511,13 +511,16 @@ for env in [test_env, client_env, env]:
# because apparently telling the compiler, linker, AND windres to be 32-bit just isn't enough
if env["PLATFORM"] == 'win32':
env["OPT_FLAGS"] = "$OPT_FLAGS -march=pentiumpro"
env["ARCH"] = "-march=pentiumpro"
env["OPT_FLAGS"] = env["OPT_FLAGS"] + " " + env["ARCH"]
else:
env["ARCH"] = "-march=native"
if env["enable_lto"] == "yes":
env["HIGH_OPT_COMP_FLAGS"] = "-O3 -march=native -flto"
env["HIGH_OPT_LINK_FLAGS"] = "$HIGH_OPT_COMP_FLAGS -fuse-ld=gold"
env["HIGH_OPT_COMP_FLAGS"] = "-O3 " + env["ARCH"] + " -flto -s"
env["HIGH_OPT_LINK_FLAGS"] = env["HIGH_OPT_COMP_FLAGS"] + " -fuse-ld=gold"
else:
env["HIGH_OPT_COMP_FLAGS"] = "-O3 -march=native"
env["HIGH_OPT_COMP_FLAGS"] = "-O3 " + env["ARCH"] + " -s"
env["HIGH_OPT_LINK_FLAGS"] = ""
if "clang" in env["CXX"]: