aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarat Dukhan <marat@fb.com>2018-02-25 00:23:20 +0100
committerMarat Dukhan <marat@fb.com>2018-02-25 00:23:20 +0100
commitfb64e16839f3ba67e22d3da91ee220ad7afbe30c (patch)
tree52d210dcce2ebddf8fccc3cd299305d60a5cf364
parentc485bd7d77e5cc05dbb92ab0810db1351befcf3e (diff)
downloadFP16-fb64e16839f3ba67e22d3da91ee220ad7afbe30c.tar.gz
Avoid modifying global CMAKE_CXX_FLAGS
-rw-r--r--CMakeLists.txt32
1 files changed, 21 insertions, 11 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7bf05fb..156e691 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,6 +14,19 @@ IF(FP16_BUILD_TESTS)
ENABLE_TESTING()
ENDIF()
+MACRO(FP16_TARGET_ENABLE_CXX99 target)
+ IF(${CMAKE_VERSION} VERSION_LESS "3.1")
+ IF(NOT MSVC)
+ TARGET_COMPILE_OPTIONS(${target} PRIVATE -std=c++11)
+ ENDIF()
+ ELSE()
+ SET_TARGET_PROPERTIES(${target} PROPERTIES
+ CXX_STANDARD 11
+ CXX_STANDARD_REQUIRED YES
+ CXX_EXTENSIONS NO)
+ ENDIF()
+ENDMACRO()
+
# ---[ Download deps
SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps
CACHE PATH "Confu-style dependencies source directory")
@@ -50,11 +63,6 @@ IF(FP16_BUILD_BENCHMARKS AND NOT DEFINED GOOGLEBENCHMARK_SOURCE_DIR)
SET(GOOGLEBENCHMARK_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark" CACHE STRING "Google Benchmark source directory")
ENDIF()
-# ---[ Build flags
-IF(NOT MSVC)
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
-ENDIF()
-
# ---[ FP16 library
IF(${CMAKE_VERSION} VERSION_LESS "3.0")
ADD_LIBRARY(fp16 STATIC
@@ -140,28 +148,30 @@ IF(FP16_BUILD_BENCHMARKS)
# ---[ Build FP16 benchmarks
ADD_EXECUTABLE(ieee-element-bench bench/ieee-element.cc)
+ TARGET_COMPILE_DEFINITIONS(ieee-element-bench PRIVATE FP16_COMPARATIVE_BENCHMARKS=1)
+ TARGET_INCLUDE_DIRECTORIES(ieee-element-bench PRIVATE ${PROJECT_SOURCE_DIR})
TARGET_LINK_LIBRARIES(ieee-element-bench fp16 psimd benchmark)
ADD_EXECUTABLE(alt-element-bench bench/alt-element.cc)
TARGET_LINK_LIBRARIES(alt-element-bench fp16 psimd benchmark)
ADD_EXECUTABLE(from-ieee-array-bench bench/from-ieee-array.cc)
- TARGET_COMPILE_DEFINITIONS(from-ieee-array-bench PRIVATE "-DFP16_COMPARATIVE_BENCHMARKS=1")
+ FP16_TARGET_ENABLE_CXX99(from-ieee-array-bench)
+ TARGET_COMPILE_DEFINITIONS(from-ieee-array-bench PRIVATE FP16_COMPARATIVE_BENCHMARKS=1)
TARGET_INCLUDE_DIRECTORIES(from-ieee-array-bench PRIVATE ${PROJECT_SOURCE_DIR})
TARGET_LINK_LIBRARIES(from-ieee-array-bench fp16 psimd benchmark)
ADD_EXECUTABLE(from-alt-array-bench bench/from-alt-array.cc)
- TARGET_COMPILE_DEFINITIONS(from-alt-array-bench PRIVATE "-DFP16_COMPARATIVE_BENCHMARKS=1")
- TARGET_INCLUDE_DIRECTORIES(from-alt-array-bench PRIVATE ${PROJECT_SOURCE_DIR})
+ FP16_TARGET_ENABLE_CXX99(from-alt-array-bench)
TARGET_LINK_LIBRARIES(from-alt-array-bench fp16 psimd benchmark)
ADD_EXECUTABLE(to-ieee-array-bench bench/to-ieee-array.cc)
- TARGET_COMPILE_DEFINITIONS(to-ieee-array-bench PRIVATE "-DFP16_COMPARATIVE_BENCHMARKS=1")
+ FP16_TARGET_ENABLE_CXX99(to-ieee-array-bench)
+ TARGET_COMPILE_DEFINITIONS(to-ieee-array-bench PRIVATE FP16_COMPARATIVE_BENCHMARKS=1)
TARGET_INCLUDE_DIRECTORIES(to-ieee-array-bench PRIVATE ${PROJECT_SOURCE_DIR})
TARGET_LINK_LIBRARIES(to-ieee-array-bench fp16 psimd benchmark)
ADD_EXECUTABLE(to-alt-array-bench bench/to-alt-array.cc)
- TARGET_COMPILE_DEFINITIONS(to-alt-array-bench PRIVATE "-DFP16_COMPARATIVE_BENCHMARKS=1")
- TARGET_INCLUDE_DIRECTORIES(to-alt-array-bench PRIVATE ${PROJECT_SOURCE_DIR})
+ FP16_TARGET_ENABLE_CXX99(to-alt-array-bench)
TARGET_LINK_LIBRARIES(to-alt-array-bench fp16 psimd benchmark)
ENDIF()