From 2c3723d321ae000dfc9dfab064076799a90c322e Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Fri, 7 Jun 2024 07:07:00 -0500 Subject: [libc] Correctly pass the C++ standard to NVPTX internal builds Summary: The NVPTX build wasn't getting the `C++20` standard necessary for a few files. --- libc/cmake/modules/LLVMLibCObjectRules.cmake | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'libc/cmake') diff --git a/libc/cmake/modules/LLVMLibCObjectRules.cmake b/libc/cmake/modules/LLVMLibCObjectRules.cmake index 134c514..1f80e7f 100644 --- a/libc/cmake/modules/LLVMLibCObjectRules.cmake +++ b/libc/cmake/modules/LLVMLibCObjectRules.cmake @@ -44,6 +44,10 @@ function(create_object_library fq_target_name) message(FATAL_ERROR "'add_object_library' rule requires SRCS to be specified.") endif() + if(NOT ADD_OBJECT_CXX_STANDARD) + set(ADD_OBJECT_CXX_STANDARD ${CMAKE_CXX_STANDARD}) + endif() + set(internal_target_name ${fq_target_name}.__internal__) set(public_packaging_for_internal "-DLIBC_COPT_PUBLIC_PACKAGING") @@ -75,6 +79,9 @@ function(create_object_library fq_target_name) target_include_directories(${internal_target_name} PRIVATE ${LIBC_SOURCE_DIR}) target_compile_options(${internal_target_name} PRIVATE ${compile_options} -fno-lto -march=${LIBC_GPU_TARGET_ARCHITECTURE}) + set_target_properties(${internal_target_name} + PROPERTIES + CXX_STANDARD ${ADD_OBJECT_CXX_STANDARD}) endif() if(SHOW_INTERMEDIATE_OBJECTS) @@ -92,9 +99,6 @@ function(create_object_library fq_target_name) target_link_libraries(${fq_target_name} PUBLIC ${fq_deps_list}) endif() - if(NOT ADD_OBJECT_CXX_STANDARD) - set(ADD_OBJECT_CXX_STANDARD ${CMAKE_CXX_STANDARD}) - endif() set_target_properties( ${fq_target_name} PROPERTIES -- cgit v1.1