summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorDaniel Wirtz <dcode@dcode.io>2020-09-07 06:21:09 +0200
committerGitHub <noreply@github.com>2020-09-06 21:21:09 -0700
commit775363a98002a14c64bdc4f8d591c6f37b1e1604 (patch)
tree8242313bccf7e8ace43d6aae021f3f6613a5d0c2 /CMakeLists.txt
parent8b436ba3046deb69e5b736a6cef003b8b0dde0c0 (diff)
downloadbinaryen-775363a98002a14c64bdc4f8d591c6f37b1e1604.tar.gz
binaryen-775363a98002a14c64bdc4f8d591c6f37b1e1604.tar.bz2
binaryen-775363a98002a14c64bdc4f8d591c6f37b1e1604.zip
Upgrade to C++17 (#3103)
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt12
1 files changed, 8 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 829ac3733..a4e216fe6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,6 +2,10 @@ cmake_minimum_required(VERSION 3.1.3)
project(binaryen LANGUAGES C CXX VERSION 96)
include(GNUInstallDirs)
+# The C++ standard whose features are required to build Binaryen.
+# Keep in sync with scripts/test/shared.py cxx_standard
+set(CXX_STANDARD 17)
+
if(NOT CMAKE_BUILD_TYPE)
message(STATUS "No build type selected, default to Release")
set(CMAKE_BUILD_TYPE "Release")
@@ -188,7 +192,7 @@ else()
set(THREADS_PREFER_PTHREAD_FLAG ON)
set(CMAKE_THREAD_PREFER_PTHREAD ON)
find_package(Threads REQUIRED)
- add_cxx_flag("-std=c++14")
+ add_cxx_flag("-std=c++${CXX_STANDARD}")
if(NOT EMSCRIPTEN)
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
# wasm doesn't allow for x87 floating point math
@@ -312,7 +316,7 @@ function(binaryen_add_executable name sources)
add_executable(${name} ${sources})
target_link_libraries(${name} ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries(${name} binaryen)
- set_property(TARGET ${name} PROPERTY CXX_STANDARD 14)
+ set_property(TARGET ${name} PROPERTY CXX_STANDARD ${CXX_STANDARD})
set_property(TARGET ${name} PROPERTY CXX_STANDARD_REQUIRED ON)
binaryen_setup_rpath(${name})
install(TARGETS ${name} DESTINATION ${CMAKE_INSTALL_BINDIR})
@@ -354,7 +358,7 @@ if(EMSCRIPTEN)
target_link_libraries(binaryen_wasm optimized "--closure-args \"--language_in=ECMASCRIPT6 --language_out=ECMASCRIPT6\"")
target_link_libraries(binaryen_wasm optimized "--llvm-lto 1")
target_link_libraries(binaryen_wasm debug "--profiling")
- set_property(TARGET binaryen_wasm PROPERTY CXX_STANDARD 14)
+ set_property(TARGET binaryen_wasm PROPERTY CXX_STANDARD ${CXX_STANDARD})
set_property(TARGET binaryen_wasm PROPERTY CXX_STANDARD_REQUIRED ON)
install(TARGETS binaryen_wasm DESTINATION ${CMAKE_INSTALL_BINDIR})
@@ -379,7 +383,7 @@ if(EMSCRIPTEN)
target_link_libraries(binaryen_js optimized "--llvm-lto 1")
target_link_libraries(binaryen_js debug "--profiling")
target_link_libraries(binaryen_js debug "-s ASSERTIONS")
- set_property(TARGET binaryen_js PROPERTY CXX_STANDARD 14)
+ set_property(TARGET binaryen_js PROPERTY CXX_STANDARD ${CXX_STANDARD})
set_property(TARGET binaryen_js PROPERTY CXX_STANDARD_REQUIRED ON)
install(TARGETS binaryen_js DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()