From 3cd38ad298a8f29b1be3cc49288d1a0e594d9d01 Mon Sep 17 00:00:00 2001 From: Olga Andreeva Date: Thu, 20 Jul 2023 14:30:58 -0700 Subject: [PATCH 1/5] Bump cxx version --- CMakeLists.txt | 24 +++++++++++++++++++++++- src/CMakeLists.txt | 7 ++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 87b58aa13..9097db591 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,26 @@ project(tritoncore LANGUAGES C CXX) # TRITON_CORE_HEADERS_ONLY=OFF to also build libtritonserver.so. option(TRITON_CORE_HEADERS_ONLY "Build only headers and stub" ON) +# +# C++ standard +# + +set(TRITON_MIN_CXX_STANDARD 17 CACHE STRING "The minimum C++ standard whose features are requested to build this target.") + +# Unset CMAKE_CXX_STANDARD if it's too low and in the CMakeCache.txt +if($CACHE{CMAKE_CXX_STANDARD} AND $CACHE{CMAKE_CXX_STANDARD} LESS ${TRITON_MIN_CXX_STANDARD}) + message(WARNING "Resetting cache value for CMAKE_CXX_STANDARD to ${TRITON_MIN_CXX_STANDARD}") + unset(CMAKE_CXX_STANDARD CACHE) +endif() + +# Allow manually specified CMAKE_CXX_STANDARD if it's greater than the minimum +# required C++ version +if(DEFINED CMAKE_CXX_STANDARD AND CMAKE_CXX_STANDARD LESS ${TRITON_MIN_CXX_STANDARD}) + message(FATAL_ERROR "Requested CMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} which is less than the minimum C++ standard ${TRITON_MIN_CXX_STANDARD}") +endif() + +set(CMAKE_CXX_STANDARD ${TRITON_MIN_CXX_STANDARD} CACHE STRING "C++ standard to conform to") +set(CMAKE_CXX_STANDARD_REQUIRED ON) # # Triton Server API @@ -121,7 +141,6 @@ add_library( TritonCore::triton-core-serverstub ALIAS triton-core-serverstub ) -target_compile_features(triton-core-serverstub PRIVATE cxx_std_11) if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") message("Using MSVC as compiler, default target on Windows 10. " "If the target system is not Windows 10, please update _WIN32_WINNT " @@ -337,6 +356,9 @@ if(NOT TRITON_CORE_HEADERS_ONLY) -DTRITON_ENABLE_AZURE_STORAGE:BOOL=${TRITON_ENABLE_AZURE_STORAGE} -DTRITON_ENABLE_S3:BOOL=${TRITON_ENABLE_S3} -DTRITON_ENABLE_ENSEMBLE:BOOL=${TRITON_ENABLE_ENSEMBLE} + -DTRITON_MIN_CXX_STANDARD:STRING=${TRITON_MIN_CXX_STANDARD} + -DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD} + -DCMAKE_CXX_STANDARD_REQUIRED:BOOL=${CMAKE_CXX_STANDARD_REQUIRED} -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH=${TRITON_INSTALL_PREFIX} -DTRITON_VERSION:STRING=${TRITON_VERSION} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index dc11d745d..0fceee725 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -28,6 +28,12 @@ cmake_minimum_required(VERSION 3.18) project(libtritonserver LANGUAGES C CXX) +# C++ standard +# +if(DEFINED CMAKE_CXX_STANDARD AND CMAKE_CXX_STANDARD) + message(STATUS "C++ standard for core libraries: ${CMAKE_CXX_STANDARD}") +endif() + if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif() @@ -246,7 +252,6 @@ add_library( TritonCore::triton-core ALIAS triton-core ) -target_compile_features(triton-core PRIVATE cxx_std_11) if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") message("Using MSVC as compiler, default target on Windows 10. " "If the target system is not Windows 10, please update _WIN32_WINNT " From 291538c8e658291131e4e4216cb7bc4ac74e9d63 Mon Sep 17 00:00:00 2001 From: oandreeva-nv Date: Tue, 19 Dec 2023 14:48:19 -0800 Subject: [PATCH 2/5] Clarifying cmake standard setting --- CMakeLists.txt | 21 ++++++--------------- src/CMakeLists.txt | 7 +------ 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9097db591..8b291ce06 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,26 +34,16 @@ project(tritoncore LANGUAGES C CXX) option(TRITON_CORE_HEADERS_ONLY "Build only headers and stub" ON) # -# C++ standard +# Setting C++ standard # - set(TRITON_MIN_CXX_STANDARD 17 CACHE STRING "The minimum C++ standard whose features are requested to build this target.") -# Unset CMAKE_CXX_STANDARD if it's too low and in the CMakeCache.txt -if($CACHE{CMAKE_CXX_STANDARD} AND $CACHE{CMAKE_CXX_STANDARD} LESS ${TRITON_MIN_CXX_STANDARD}) - message(WARNING "Resetting cache value for CMAKE_CXX_STANDARD to ${TRITON_MIN_CXX_STANDARD}") - unset(CMAKE_CXX_STANDARD CACHE) -endif() - -# Allow manually specified CMAKE_CXX_STANDARD if it's greater than the minimum -# required C++ version -if(DEFINED CMAKE_CXX_STANDARD AND CMAKE_CXX_STANDARD LESS ${TRITON_MIN_CXX_STANDARD}) - message(FATAL_ERROR "Requested CMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} which is less than the minimum C++ standard ${TRITON_MIN_CXX_STANDARD}") +if (NOT DEFINED CMAKE_CXX_STANDARD OR CMAKE_CXX_STANDARD LESS ${TRITON_MIN_CXX_STANDARD}) + set(CORE_CMAKE_CXX_STANDARD ${TRITON_MIN_CXX_STANDARD}) +else() + set(CORE_CMAKE_CXX_STANDARD ${CMAKE_CXX_STANDARD}) endif() -set(CMAKE_CXX_STANDARD ${TRITON_MIN_CXX_STANDARD} CACHE STRING "C++ standard to conform to") -set(CMAKE_CXX_STANDARD_REQUIRED ON) - # # Triton Server API # @@ -140,6 +130,7 @@ add_library( add_library( TritonCore::triton-core-serverstub ALIAS triton-core-serverstub ) +target_compile_features(triton-core-serverstub PRIVATE cxx_std_${CORE_CMAKE_CXX_STANDARD}) if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") message("Using MSVC as compiler, default target on Windows 10. " diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0fceee725..076f67b3e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -28,12 +28,6 @@ cmake_minimum_required(VERSION 3.18) project(libtritonserver LANGUAGES C CXX) -# C++ standard -# -if(DEFINED CMAKE_CXX_STANDARD AND CMAKE_CXX_STANDARD) - message(STATUS "C++ standard for core libraries: ${CMAKE_CXX_STANDARD}") -endif() - if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif() @@ -252,6 +246,7 @@ add_library( TritonCore::triton-core ALIAS triton-core ) +target_compile_features(triton-core PRIVATE cxx_std_${CORE_CMAKE_CXX_STANDARD}) if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") message("Using MSVC as compiler, default target on Windows 10. " "If the target system is not Windows 10, please update _WIN32_WINNT " From 4a08f0d12d88f8e4f0ae798ef113f4288f7b6fe4 Mon Sep 17 00:00:00 2001 From: oandreeva-nv Date: Tue, 19 Dec 2023 17:45:05 -0800 Subject: [PATCH 3/5] Removed explicitly setting CMAKE_CXX_STANDARD --- CMakeLists.txt | 4 +--- src/CMakeLists.txt | 3 ++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b291ce06..bbe5776a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -347,9 +347,7 @@ if(NOT TRITON_CORE_HEADERS_ONLY) -DTRITON_ENABLE_AZURE_STORAGE:BOOL=${TRITON_ENABLE_AZURE_STORAGE} -DTRITON_ENABLE_S3:BOOL=${TRITON_ENABLE_S3} -DTRITON_ENABLE_ENSEMBLE:BOOL=${TRITON_ENABLE_ENSEMBLE} - -DTRITON_MIN_CXX_STANDARD:STRING=${TRITON_MIN_CXX_STANDARD} - -DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD} - -DCMAKE_CXX_STANDARD_REQUIRED:BOOL=${CMAKE_CXX_STANDARD_REQUIRED} + -DCORE_CMAKE_CXX_STANDARD:STRING=${CORE_CMAKE_CXX_STANDARD} -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH=${TRITON_INSTALL_PREFIX} -DTRITON_VERSION:STRING=${TRITON_VERSION} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 076f67b3e..5a5e7993c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -241,12 +241,13 @@ add_library( triton-core SHARED ${SERVER_SRCS} ${SERVER_HDRS} ) +target_compile_features(triton-core PRIVATE cxx_std_${CORE_CMAKE_CXX_STANDARD}) add_library( TritonCore::triton-core ALIAS triton-core ) -target_compile_features(triton-core PRIVATE cxx_std_${CORE_CMAKE_CXX_STANDARD}) +message(WARNING "CXX_STANDARD is set to ${CORE_CMAKE_CXX_STANDARD}") if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") message("Using MSVC as compiler, default target on Windows 10. " "If the target system is not Windows 10, please update _WIN32_WINNT " From c1c6696c5d90926388e2edc89b6452d220a02c3b Mon Sep 17 00:00:00 2001 From: oandreeva-nv Date: Tue, 19 Dec 2023 17:51:36 -0800 Subject: [PATCH 4/5] Removed msg print --- src/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5a5e7993c..076f67b3e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -241,13 +241,12 @@ add_library( triton-core SHARED ${SERVER_SRCS} ${SERVER_HDRS} ) -target_compile_features(triton-core PRIVATE cxx_std_${CORE_CMAKE_CXX_STANDARD}) add_library( TritonCore::triton-core ALIAS triton-core ) -message(WARNING "CXX_STANDARD is set to ${CORE_CMAKE_CXX_STANDARD}") +target_compile_features(triton-core PRIVATE cxx_std_${CORE_CMAKE_CXX_STANDARD}) if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") message("Using MSVC as compiler, default target on Windows 10. " "If the target system is not Windows 10, please update _WIN32_WINNT " From 5d2f4e8e5af533ecd3d5f9e9218dd7898f9506a6 Mon Sep 17 00:00:00 2001 From: oandreeva-nv Date: Tue, 19 Dec 2023 18:05:50 -0800 Subject: [PATCH 5/5] Cleaned up --- CMakeLists.txt | 14 ++++---------- src/CMakeLists.txt | 2 +- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bbe5776a2..c43e3af11 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,15 +34,9 @@ project(tritoncore LANGUAGES C CXX) option(TRITON_CORE_HEADERS_ONLY "Build only headers and stub" ON) # -# Setting C++ standard +# Specifying min required C++ standard # -set(TRITON_MIN_CXX_STANDARD 17 CACHE STRING "The minimum C++ standard whose features are requested to build this target.") - -if (NOT DEFINED CMAKE_CXX_STANDARD OR CMAKE_CXX_STANDARD LESS ${TRITON_MIN_CXX_STANDARD}) - set(CORE_CMAKE_CXX_STANDARD ${TRITON_MIN_CXX_STANDARD}) -else() - set(CORE_CMAKE_CXX_STANDARD ${CMAKE_CXX_STANDARD}) -endif() +set(TRITON_MIN_CXX_STANDARD 17 CACHE STRING "The minimum C++ standard which features are requested to build this target.") # # Triton Server API @@ -130,7 +124,7 @@ add_library( add_library( TritonCore::triton-core-serverstub ALIAS triton-core-serverstub ) -target_compile_features(triton-core-serverstub PRIVATE cxx_std_${CORE_CMAKE_CXX_STANDARD}) +target_compile_features(triton-core-serverstub PRIVATE cxx_std_${TRITON_MIN_CXX_STANDARD}) if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") message("Using MSVC as compiler, default target on Windows 10. " @@ -347,7 +341,7 @@ if(NOT TRITON_CORE_HEADERS_ONLY) -DTRITON_ENABLE_AZURE_STORAGE:BOOL=${TRITON_ENABLE_AZURE_STORAGE} -DTRITON_ENABLE_S3:BOOL=${TRITON_ENABLE_S3} -DTRITON_ENABLE_ENSEMBLE:BOOL=${TRITON_ENABLE_ENSEMBLE} - -DCORE_CMAKE_CXX_STANDARD:STRING=${CORE_CMAKE_CXX_STANDARD} + -DTRITON_MIN_CXX_STANDARD:STRING=${TRITON_MIN_CXX_STANDARD} -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH=${TRITON_INSTALL_PREFIX} -DTRITON_VERSION:STRING=${TRITON_VERSION} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 076f67b3e..fab624d49 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -246,7 +246,7 @@ add_library( TritonCore::triton-core ALIAS triton-core ) -target_compile_features(triton-core PRIVATE cxx_std_${CORE_CMAKE_CXX_STANDARD}) +target_compile_features(triton-core PRIVATE cxx_std_${TRITON_MIN_CXX_STANDARD}) if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") message("Using MSVC as compiler, default target on Windows 10. " "If the target system is not Windows 10, please update _WIN32_WINNT "