Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/llvm/llvm-project.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTue Ly <lntue@google.com>2022-02-03 08:03:27 +0300
committerTue Ly <lntue@google.com>2022-02-04 17:59:21 +0300
commit700aebaf745f8b0a7c514ca452de1f60779816a1 (patch)
tree4cf8bf4c3eb2181219f85c616e33c7c26e304be5 /libc/cmake/modules/LLVMLibCObjectRules.cmake
parentd4e4ef2e81e03246e29e9b6eaa2929ebd4e77784 (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.cmake22
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