summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2010-06-26 23:06:47 -0700
committerJosh Blum <josh@joshknows.com>2010-06-26 23:06:47 -0700
commita34f930a79a0c626706a5f7532d8f692446d3c35 (patch)
treea5361d106c0f38187b3eb3e0b661f4a6d4c626cf
parent0a57031a8a2eee5c490350484b32ac3ccb000b2f (diff)
downloaduhd-a34f930a79a0c626706a5f7532d8f692446d3c35.tar.gz
uhd-a34f930a79a0c626706a5f7532d8f692446d3c35.tar.bz2
uhd-a34f930a79a0c626706a5f7532d8f692446d3c35.zip
uhd: removed hackery to set performance flags, use release mode.
The correct optimization flags are added when the build type is set to release. Made a change to set built type to release if not specified, and added build guide notes. For MSVC, one must set release mode from the visual studio IDE.
-rw-r--r--host/CMakeLists.txt13
-rw-r--r--host/docs/build.rst1
2 files changed, 8 insertions, 6 deletions
diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt
index 2979b4279..c60372fb9 100644
--- a/host/CMakeLists.txt
+++ b/host/CMakeLists.txt
@@ -55,6 +55,12 @@ MACRO(UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG flag have)
ENDIF(${have})
ENDMACRO(UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG)
+#select the release build type by default to get optimization flags
+IF(NOT CMAKE_BUILD_TYPE)
+ SET(CMAKE_BUILD_TYPE "Release")
+ MESSAGE(STATUS "Build type not specified: defaulting to release.")
+ENDIF(NOT CMAKE_BUILD_TYPE)
+
IF(CMAKE_COMPILER_IS_GNUCXX)
UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG(-Wall HAVE_WALL)
UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG(-Wextra HAVE_WEXTRA)
@@ -62,19 +68,14 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG(-ansi HAVE_ANSI)
#only export symbols that are declared to be part of the uhd api:
UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG(-fvisibility=hidden HAVE_VISIBILITY_HIDDEN)
- UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG(-O3 HAVE_O3) #have some optimizations
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
IF(MSVC)
- #Set the predefined cxx debug flags to have only the debug flags
- #because the default flags disable optimization which we want to have.
- #Setting CMAKE_BUILD_TYPE to "release" does not seem to fix this issue.
- SET(CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /MDd") #FIXME better way to do this?
ADD_DEFINITIONS(-D_WIN32_WINNT=0x0501) #minimum version required is windows xp
ADD_DEFINITIONS(-DNOMINMAX) #disables stupidity and enables std::min and std::max
ADD_DEFINITIONS(-D_SCL_SECURE_NO_WARNINGS) #avoid warnings from boost::split
ADD_DEFINITIONS(-DBOOST_ALL_DYN_LINK) #setup boost auto-linking in msvc
- ADD_DEFINITIONS(/arch:SSE2 /G7 /O2 /fp:fast) #optimization flags
+ ADD_DEFINITIONS(/arch:SSE2 /G7) #processor optimization flags
ENDIF(MSVC)
########################################################################
diff --git a/host/docs/build.rst b/host/docs/build.rst
index f5a8dac8d..a00cefabd 100644
--- a/host/docs/build.rst
+++ b/host/docs/build.rst
@@ -138,6 +138,7 @@ Generate the project with cmake
Build the project in MSVC
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Open the generated project file in MSVC.
+* Change the build type from "Debug" to "Release".
* Select the build all target, right click, and choose build.
* Select the install target, right click, and choose build.