aboutsummaryrefslogtreecommitdiffstats
path: root/host/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'host/CMakeLists.txt')
-rw-r--r--host/CMakeLists.txt70
1 files changed, 60 insertions, 10 deletions
diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt
index 12cb91645..d6b91fc4c 100644
--- a/host/CMakeLists.txt
+++ b/host/CMakeLists.txt
@@ -31,6 +31,55 @@ ENABLE_TESTING()
list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/Modules)
########################################################################
+# Check Compiler Version
+########################################################################
+# Full C++11 came with GCC 4.7.
+SET(GCC_MIN_VERSION "4.8.0")
+# for c++0x or c++11 support, require:
+# Apple Clang >= 500
+# or
+# Clang >= 3.3.0
+SET(CLANG_MIN_VERSION "3.3.0")
+SET(APPLECLANG_MIN_VERSION "500")
+
+IF(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
+ IF(DEFINED CMAKE_CXX_COMPILER_VERSION)
+ IF(${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS ${GCC_MIN_VERSION})
+ MESSAGE(WARNING "\nThe compiler selected to build UHD (GCC version ${CMAKE_CXX_COMPILER_VERSION} : ${CMAKE_CXX_COMPILER}) is older than that officially supported (${GCC_MIN_VERSION} minimum). This build may or not work. We highly recommend using a more recent GCC version.")
+ ENDIF()
+ ELSE()
+ MESSAGE(WARNING "\nCannot determine the version of the compiler selected to build UHD (GCC : ${CMAKE_CXX_COMPILER}). This build may or not work. We highly recommend using GCC version ${GCC_MIN_VERSION} or more recent.")
+ ENDIF()
+ELSEIF(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
+ EXECUTE_PROCESS(COMMAND
+ ${CMAKE_CXX_COMPILER} -v
+ RESULT_VARIABLE res ERROR_VARIABLE err
+ ERROR_STRIP_TRAILING_WHITESPACE)
+ IF(${res} STREQUAL "0")
+ # output is in error stream
+ STRING(REGEX MATCH "^Apple.*" IS_APPLE ${err})
+ IF("${IS_APPLE}" STREQUAL "")
+ SET(MIN_VERSION ${CLANG_MIN_VERSION})
+ SET(APPLE_STR "")
+ # retrieve the compiler's version from it
+ STRING(REGEX MATCH "clang version [0-9.]+" CLANG_OTHER_VERSION ${err})
+ STRING(REGEX MATCH "[0-9.]+" CLANG_VERSION ${CLANG_OTHER_VERSION})
+ ELSE()
+ SET(MIN_VERSION ${APPLECLANG_MIN_VERSION})
+ SET(APPLE_STR "Apple ")
+ # retrieve the compiler's version from it
+ STRING(REGEX MATCH "(clang-[0-9.]+)" CLANG_APPLE_VERSION ${err})
+ STRING(REGEX MATCH "[0-9.]+" CLANG_VERSION ${CLANG_APPLE_VERSION})
+ ENDIF()
+ IF(${CLANG_VERSION} VERSION_LESS "${MIN_VERSION}")
+ MESSAGE(WARNING "\nThe compiler selected to build UHD (${APPLE_STR}Clang version ${CLANG_VERSION} : ${CMAKE_CXX_COMPILER}) is older than that officially supported (${MIN_VERSION} minimum). This build may or not work. We highly recommend using Apple Clang version ${APPLECLANG_MIN_VERSION} or more recent, or Clang version ${CLANG_MIN_VERSION} or more recent.")
+ ENDIF()
+ ELSE()
+ MESSAGE(WARNING "\nCannot determine the version of the compiler selected to build UHD (${APPLE_STR}Clang : ${CMAKE_CXX_COMPILER}). This build may or not work. We highly recommend using Apple Clang version ${APPLECLANG_MIN_VERSION} or more recent, or Clang version ${CLANG_MIN_VERSION} or more recent.")
+ ENDIF()
+ENDIF()
+
+########################################################################
# Packaging Variables
########################################################################
@@ -134,7 +183,8 @@ SET(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING "")
#force UHD_RELEASE_MODE to be a string for cmake-gui
SET(UHD_RELEASE_MODE "${UHD_RELEASE_MODE}" CACHE STRING "UHD Release Mode")
-IF(CMAKE_COMPILER_IS_GNUCXX)
+IF(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU" OR
+ ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
IF(STRIP_BINARIES)
IF(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s")
@@ -151,7 +201,7 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG(-fvisibility=hidden HAVE_VISIBILITY_HIDDEN)
UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG(-fvisibility-inlines-hidden HAVE_VISIBILITY_INLINES_HIDDEN)
ENDIF(NOT WIN32)
-ENDIF(CMAKE_COMPILER_IS_GNUCXX)
+ENDIF()
IF(MSVC)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/cmake/msvc)
@@ -213,9 +263,9 @@ ENDIF(MSVC)
SET(Boost_ADDITIONAL_VERSIONS
"1.46.0" "1.46" "1.47.0" "1.47" "1.48.0" "1.48" "1.48.0" "1.49" "1.50.0" "1.50"
"1.51.0" "1.51" "1.52.0" "1.52" "1.53.0" "1.53" "1.54.0" "1.54" "1.55.0" "1.55"
- "1.56.0" "1.56"
+ "1.56.0" "1.56" "1.57" "1.57" "1.58" "1.59" "1.60"
)
-FIND_PACKAGE(Boost 1.46 COMPONENTS ${BOOST_REQUIRED_COMPONENTS})
+FIND_PACKAGE(Boost 1.53 COMPONENTS ${BOOST_REQUIRED_COMPONENTS})
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
@@ -235,8 +285,8 @@ INCLUDE(UHDGlobalDefs)
INCLUDE(UHDPython)
PYTHON_CHECK_MODULE(
- "Python version 2.6 or greater"
- "platform" "platform.python_version() >= '2.6'"
+ "Python version 2.7 or greater"
+ "platform" "platform.python_version() >= '2.7'"
HAVE_PYTHON_PLAT_MIN_VERSION
)
@@ -274,8 +324,8 @@ UHD_INSTALL(FILES
#{{{IMG_SECTION
# This section is written automatically by /images/create_imgs_package.py
# Any manual changes in here will be overwritten.
-SET(UHD_IMAGES_MD5SUM "c33b36a74d82198c8cfede64d8775c46")
-SET(UHD_IMAGES_DOWNLOAD_SRC "uhd-images_003.009.004-release.zip")
+SET(UHD_IMAGES_MD5SUM "d82c4b8bb779c1d5a810f0204815b84d")
+SET(UHD_IMAGES_DOWNLOAD_SRC "uhd-images_003.010.git-197-g053111dc.zip")
#}}}
########################################################################
@@ -428,7 +478,7 @@ ENDIF(LIBUHD_PKG)
UHD_PRINT_COMPONENT_SUMMARY()
IF(UHD_VERSION_DEVEL)
MESSAGE(STATUS "******************************************************")
- IF(UHD_VERSION_PATCH STREQUAL "git")
+ IF(UHD_GIT_BRANCH STREQUAL "master")
MESSAGE(STATUS "* You are building the UHD development master branch.")
MESSAGE(STATUS "* For production code, we recommend our stable,")
MESSAGE(STATUS "* releases or using the release branch (maint).")
@@ -437,7 +487,7 @@ IF(UHD_VERSION_DEVEL)
MESSAGE(STATUS "* These branches are designed to provide early access")
MESSAGE(STATUS "* to UHD and USRP features, but should be considered")
MESSAGE(STATUS "* unstable and/or experimental!")
- ENDIF(UHD_VERSION_PATCH STREQUAL "git")
+ ENDIF(UHD_GIT_BRANCH STREQUAL "master")
MESSAGE(STATUS "******************************************************")
ENDIF(UHD_VERSION_DEVEL)
MESSAGE(STATUS "Building version: ${UHD_VERSION}${PRINT_APPEND}")