From abcbed92a3f5d7272cce9e793049b03682c4c16b Mon Sep 17 00:00:00 2001 From: ToruNiina Date: Sun, 16 Jun 2024 13:12:12 +0900 Subject: [PATCH] chore: add options required to use MSVC to use utf-8 file and to use standard-compliant preprocessor --- src/CMakeLists.txt | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3c37c8b..43c8636 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -95,14 +95,41 @@ if(TOML11_PRECOMPILE) $ $ ) + + # required options to use toml11 with MSVC + if(MSVC) + target_compile_options(toml11 PUBLIC "/utf-8") + if(MSVC_VERSION LESS 1910) + message(STATUS "MSVC < 1910. DEFINE_CONVERSION_NON_INTRUSIVE is disabled") + target_compile_definitions(toml11 PUBLIC -DTOML11_WITHOUT_DEFINE_NON_INTRUSIVE) + elseif(MSVC_VERSION LESS 1920) # MSVC 2017 + target_compile_options(toml11 PUBLIC "/experimental:preprocessor") + else() # MSVC 2019 + target_compile_options(toml11 PUBLIC "/Zc:preprocessor") + endif() + endif() else() add_library(toml11 INTERFACE) target_include_directories(toml11 INTERFACE $ $ ) + + # required options to use toml11 with MSVC + if(MSVC) + target_compile_options(toml11 INTERFACE "/utf-8") + if(MSVC_VERSION LESS 1910) + message(STATUS "MSVC < 1910. DEFINE_CONVERSION_NON_INTRUSIVE is disabled") + target_compile_definitions(toml11 PUBLIC -DTOML11_WITHOUT_DEFINE_NON_INTRUSIVE) + elseif(MSVC_VERSION LESS 1920) # MSVC 2017 + target_compile_options(toml11 INTERFACE "/experimental:preprocessor") + else() # MSVC 2019 + target_compile_options(toml11 INTERFACE "/Zc:preprocessor") + endif() + endif() endif() + if(TOML11_INSTALL) include(CMakePackageConfigHelpers)