mirror of
https://github.com/fmtlib/fmt.git
synced 2025-12-08 09:47:51 +08:00
Merge branch 'master' of https://github.com/LiangHuDream/fmt
This commit is contained in:
commit
ff0e6c3b14
@ -99,6 +99,15 @@ function(add_module_library name)
|
||||
# `std` is affected by CMake options and may be higher than C++20.
|
||||
get_target_property(std ${name} CXX_STANDARD)
|
||||
|
||||
# Respect CMAKE_CXX_EXTENSIONS when forming the -std flag used to
|
||||
# precompile modules. A mismatch between -std=gnu++<ver> and -std=c++<ver>
|
||||
# can cause "configuration mismatch" errors when loading .pcm files.
|
||||
if (CMAKE_CXX_EXTENSIONS)
|
||||
set(std_flag "-std=gnu++${std}")
|
||||
else()
|
||||
set(std_flag "-std=c++${std}")
|
||||
endif()
|
||||
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
set(pcms)
|
||||
foreach (src ${sources})
|
||||
@ -115,9 +124,9 @@ function(add_module_library name)
|
||||
add_custom_command(
|
||||
OUTPUT ${pcm}
|
||||
COMMAND ${CMAKE_CXX_COMPILER}
|
||||
-std=c++${std} -x c++-module --precompile -c
|
||||
-o ${pcm} ${CMAKE_CURRENT_SOURCE_DIR}/${src}
|
||||
"-I$<JOIN:$<TARGET_PROPERTY:${name},INCLUDE_DIRECTORIES>,;-I>"
|
||||
${std_flag} -x c++-module --precompile -c
|
||||
-o ${pcm} ${CMAKE_CURRENT_SOURCE_DIR}/${src}
|
||||
"-I$<JOIN:$<TARGET_PROPERTY:${name},INCLUDE_DIRECTORIES>,;-I>"
|
||||
# Required by the -I generator expression above.
|
||||
COMMAND_EXPAND_LISTS
|
||||
DEPENDS ${src})
|
||||
@ -132,8 +141,9 @@ function(add_module_library name)
|
||||
set(sources ${sources} ${pcm} ${CMAKE_CURRENT_BINARY_DIR}/${obj})
|
||||
add_custom_command(
|
||||
OUTPUT ${obj}
|
||||
COMMAND ${CMAKE_CXX_COMPILER} $<TARGET_PROPERTY:${name},COMPILE_OPTIONS>
|
||||
-c -o ${obj} ${pcm}
|
||||
COMMAND ${CMAKE_CXX_COMPILER} ${std_flag} -c -o ${obj} ${pcm}
|
||||
"-I$<JOIN:$<TARGET_PROPERTY:${name},INCLUDE_DIRECTORIES>,;-I>"
|
||||
COMMAND_EXPAND_LISTS
|
||||
DEPENDS ${pcm})
|
||||
endforeach ()
|
||||
endif ()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user