diff options
author | Tue Ly <lntue@google.com> | 2022-02-03 08:03:27 +0300 |
---|---|---|
committer | Tue Ly <lntue@google.com> | 2022-02-04 17:59:21 +0300 |
commit | 700aebaf745f8b0a7c514ca452de1f60779816a1 (patch) | |
tree | 4cf8bf4c3eb2181219f85c616e33c7c26e304be5 /libc/cmake/modules/LLVMLibCObjectRules.cmake | |
parent | d4e4ef2e81e03246e29e9b6eaa2929ebd4e77784 (diff) |
[libc] Set default CXX_STANDARD to C++17 and let targets set their own standard if needed.
CMAKE_CXX_STANDARD 14 is set in the llvm-project/llvm folder overriding all COMPILE_OPTIONS -std=c++17. We need to override the CXX_STANDARD property of the target in order to set the correct C++ standard flags.
Reviewed By: gchatelet
Differential Revision: https://reviews.llvm.org/D118871
Diffstat (limited to 'libc/cmake/modules/LLVMLibCObjectRules.cmake')
-rw-r--r-- | libc/cmake/modules/LLVMLibCObjectRules.cmake | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/libc/cmake/modules/LLVMLibCObjectRules.cmake b/libc/cmake/modules/LLVMLibCObjectRules.cmake index 69ec2160f1c0..3ab05e0e8743 100644 --- a/libc/cmake/modules/LLVMLibCObjectRules.cmake +++ b/libc/cmake/modules/LLVMLibCObjectRules.cmake @@ -20,8 +20,8 @@ endfunction() function(add_object_library target_name) cmake_parse_arguments( "ADD_OBJECT" - "" # No option arguments - "" # Single value arguments + "" # No optional arguments + "CXX_STANDARD" # Single value arguments "SRCS;HDRS;COMPILE_OPTIONS;DEPENDS" # Multivalue arguments ${ARGN} ) @@ -53,6 +53,14 @@ function(add_object_library target_name) add_dependencies(${fq_target_name} ${fq_deps_list}) endif() + if(ADD_OBJECT_CXX_STANDARD) + set_target_properties( + ${fq_target_name} + PROPERTIES + CXX_STANDARD ${ADD_OBJECT_CXX_STANDARD} + ) + endif() + set_target_properties( ${fq_target_name} PROPERTIES @@ -80,7 +88,7 @@ function(add_entrypoint_object target_name) cmake_parse_arguments( "ADD_ENTRYPOINT_OBJ" "ALIAS;REDIRECTED" # Optional argument - "NAME" # Single value arguments + "NAME;CXX_STANDARD" # Single value arguments "SRCS;HDRS;DEPENDS;COMPILE_OPTIONS" # Multi value arguments ${ARGN} ) @@ -184,6 +192,14 @@ function(add_entrypoint_object target_name) target_include_directories(${fq_target_name} PRIVATE ${include_dirs}) add_dependencies(${fq_target_name} ${full_deps_list}) + if(ADD_ENTRYPOINT_OBJ_CXX_STANDARD) + set_target_properties( + ${fq_target_name} ${internal_target_name} + PROPERTIES + CXX_STANDARD ${ADD_ENTRYPOINT_OBJ_CXX_STANDARD} + ) + endif() + set_target_properties( ${fq_target_name} PROPERTIES |