|
@@ -28,6 +28,7 @@ CHECK_FUNCTION_EXISTS(dladdr HAVE_DLADDR)
|
|
|
CHECK_FUNCTION_EXISTS(nanosleep HAVE_NANOSLEEP)
|
|
|
|
|
|
IF(ENABLE_DEBUG STREQUAL ON)
|
|
|
+ # TODO: set platform debug flag (/Z7) for Windows.
|
|
|
SET(CMAKE_BUILD_TYPE Debug CACHE
|
|
|
STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
|
|
|
SET(CMAKE_CXX_FLAGS_DEBUG "-g -O0" CACHE STRING "compiler flags for debug" FORCE)
|
|
@@ -39,19 +40,32 @@ ELSE(ENABLE_DEBUG STREQUAL ON)
|
|
|
SET(CMAKE_C_FLAGS_DEBUG "-g -O2" CACHE STRING "compiler flags for debug" FORCE)
|
|
|
ENDIF(ENABLE_DEBUG STREQUAL ON)
|
|
|
|
|
|
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
|
|
|
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing")
|
|
|
+IF(NOT MSVC)
|
|
|
+ # Ignore no-strict-aliasing in windows.
|
|
|
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
|
|
|
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing")
|
|
|
+ENDIF(NOT MSVC)
|
|
|
|
|
|
IF(ENABLE_COVERAGE STREQUAL ON)
|
|
|
INCLUDE(CodeCoverage)
|
|
|
ENDIF(ENABLE_COVERAGE STREQUAL ON)
|
|
|
|
|
|
IF(ENABLE_FRAME_POINTER STREQUAL ON)
|
|
|
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer")
|
|
|
+ IF(MSVC)
|
|
|
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Oy-")
|
|
|
+ ELSE(MSVC)
|
|
|
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer")
|
|
|
+ ENDIF(MSVC)
|
|
|
ENDIF(ENABLE_FRAME_POINTER STREQUAL ON)
|
|
|
|
|
|
IF(ENABLE_SSE STREQUAL ON)
|
|
|
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2")
|
|
|
+ IF(MSVC)
|
|
|
+ # In Visual Studio 2013, this option will use SS4.2 instructions
|
|
|
+ # if available. Not sure about the behaviour in Visual Studio 2010.
|
|
|
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE2")
|
|
|
+ ELSE(MSVC)
|
|
|
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2")
|
|
|
+ ENDIF(MSVC)
|
|
|
ENDIF(ENABLE_SSE STREQUAL ON)
|
|
|
|
|
|
IF(NOT TEST_HDFS_PREFIX)
|
|
@@ -74,7 +88,17 @@ ENDIF(OS_LINUX)
|
|
|
SET(BOOST_ROOT ${CMAKE_PREFIX_PATH})
|
|
|
IF(ENABLE_BOOST STREQUAL ON)
|
|
|
MESSAGE(STATUS "using boost instead of native compiler c++0x support.")
|
|
|
- FIND_PACKAGE(Boost 1.53 REQUIRED)
|
|
|
+ IF(MSVC)
|
|
|
+ # Find boost libraries with flavor: mt-sgd (multi-thread, static, and debug)
|
|
|
+ SET(Boost_USE_STATIC_LIBS ON)
|
|
|
+ SET(Boost_USE_MULTITHREADED ON)
|
|
|
+ SET(Boost_USE_STATIC_RUNTIME ON)
|
|
|
+ FIND_PACKAGE(Boost 1.53 COMPONENTS thread chrono system atomic iostreams REQUIRED)
|
|
|
+ INCLUDE_DIRECTORIES("${Boost_INCLUDE_DIRS}")
|
|
|
+ LINK_DIRECTORIES("${Boost_LIBRARY_DIRS}")
|
|
|
+ ELSE(MSVC)
|
|
|
+ FIND_PACKAGE(Boost 1.53 REQUIRED)
|
|
|
+ ENDIF(MSVC)
|
|
|
SET(NEED_BOOST true CACHE INTERNAL "boost is required")
|
|
|
ELSE(ENABLE_BOOST STREQUAL ON)
|
|
|
SET(NEED_BOOST false CACHE INTERNAL "boost is required")
|
|
@@ -131,6 +155,8 @@ ELSEIF(CMAKE_COMPILER_IS_CLANG)
|
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
|
|
SET(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
|
|
|
ENDIF(ENABLE_LIBCPP STREQUAL ON)
|
|
|
+ELSEIF(MSVC)
|
|
|
+ SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
|
|
|
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
|
|
|
|
|
|
TRY_COMPILE(STRERROR_R_RETURN_INT
|